在看機器學習實戰這本書時,遇到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 最常見的矩陣就...