Numpy中的tile函式用法

2022-08-13 23:06:16 字數 1913 閱讀 2298

在看機器學習實戰這本書時,遇到numpy.tile(a,b)函式,開始沒太明白這個函式用法,網上帖子也不太詳細,經過一番試驗後基本搞明白基本用法,分享給大家。

tile函式是模板numpy.lib.shape_base中的函式。

函式形式:tile(a,rep) 

功能:重複a的各個維度 

引數型別:

- a: array類的都可以 

- rep:a沿著各個維度重複的次數,從低維向高維重複

-a的型別眾多,幾乎所有型別都可以:array, list, tuple, dict, matrix以及基本資料型別int, string, float以及bool型別。

-reps的型別也很多,可以是tuple,list, dict, array, int,bool.但不可以是float, string, matrix型別。

a=[a1,a2,...,am]

rep=[r1,r2,...,rn]

c=tile(a, rep)

rep重複a的順序是由後往前依次重複上一次的結果,每次重複維度都提高一級。

step1:c1=[(a1,a2,...,am)1,(a1,a2,...,am)2,...,(a1,a2,...,am)rn]

step2:c2=[(c1)1,(c1)2,...,(c1)rn-1]

...stepm:cm=[(cm-1)1,(cm-1)2,...,(cm-1)rn-m+1]

a=[0,1]

rep=(2,3,4)

c=tile(a,rep)

step1:

c1=[0,1,0,1,0,1,0,1]

step2:

c2=[[0 1 0 1 0 1 0 1]

[0 1 0 1 0 1 0 1]

[0 1 0 1 0 1 0 1]]

step3:

c3=[[[0 1 0 1 0 1 0 1]

[0 1 0 1 0 1 0 1]

[0 1 0 1 0 1 0 1]]

[[0 1 0 1 0 1 0 1]

[0 1 0 1 0 1 0 1]

[0 1 0 1 0 1 0 1]]]

examples

--------

>>> a = np.array([0, 1, 2])

>>> np.tile(a, 2)

array([0, 1, 2, 0, 1, 2])

>>> np.tile(a, (2, 2))

array([[0, 1, 2, 0, 1, 2],

[0, 1, 2, 0, 1, 2]])

>>> np.tile(a, (2, 1, 2))

array([[[0, 1, 2, 0, 1, 2]],

[[0, 1, 2, 0, 1, 2]]])

>>> b = np.array([[1, 2], [3, 4]])

>>> np.tile(b, 2)

array([[1, 2, 1, 2],

[3, 4, 3, 4]])

>>> np.tile(b, (2, 1))

array([[1, 2],

[3, 4],

[1, 2],

[3, 4]])

>>> c = np.array([1,2,3,4])

>>> np.tile(c,(4,1))

array([[1, 2, 3, 4],

[1, 2, 3, 4],

[1, 2, 3, 4],

[1, 2, 3, 4]])

numpy中的tile函式

在看機器學習實戰這本書時,遇到numpy.tile a,b 函式,愣是沒看懂怎麼回事,裝了numpy模組後,實驗了幾把,原來是這樣子 重複a,b次,這裡的b可以時int型別也可以是遠組型別。python view plain copy import numpy numpy.tile 0,0 5 在列...

numpy中的tile函式

在看機器學習實戰這本書時,遇到numpy.tile a,b 函式,愣是沒看懂怎麼回事,裝了numpy模組後,實驗了幾把,原來是這樣子 重複a,b次,這裡的b可以時int型別也可以是遠組型別。import numpy numpy.tile 0,0 5 在列方向上重複 0,0 5次,預設行1次 arra...

Numpy中的tile方法

在講tile方法之前,先要講一下numpy陣列中的幾個概念。在numpy中,陣列這一類又被稱為ndarray。1 ndarray.ndim 指數組的維度,即陣列軸 axes 的個數,其數量等於秩 rank 通俗地講,我們平時印象中的陣列就是一維陣列,維度為1 軸的個數為1 秩也等於1 最常見的矩陣就...