Numpy中的tile函数用法

0、引言

 在看机器学习实战这本书时,遇到numpy.tile(A,B)函数,开始没太明白这个函数用法,网上帖子也不太详细,经过一番试验后基本搞明白基本用法,分享给大家。

1、函数定义

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类型。
 

2、函数运行原理:

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]
 

3、函数用法举例:

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]]]

4、更多函数用法示例:

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]])






原文地址:https://www.cnblogs.com/yxdz-hit/p/8128021.html