Numpy中的tile函數用法

0、引言

 在看機器學習實戰這本書時,遇到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=[a 1,a 2,...,a m]
rep=[r 1,r 2,...,r n]
C=tile(A, rep)
rep重複A的順序是由後往前依次重複上一次的結果,每次重複維度都提升一級。
Step1:C 1=[(a 1,a 2,...,a m) 1,(a 1,a 2,...,a m) 2,...,(a 1,a 2,...,a m) rn]
Step2:C 2=[(C 1) 1,(C 1) 2,...,(C 1) rn-1]
...
Stepm:C m=[(C m-1) 1,(C m-1) 2,...,(C m-1) rn-m+1]
 

三、函數用法舉例:

A=[0,1]
rep=(2,3,4)
C=tile(A,rep)
 
Step1:
C 1=[0,1,0,1,0,1,0,1]
 
Step2:
C 2=

[[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:
C 3=

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

[[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]])原理

相關文章
相關標籤/搜索