numpy.tile(A, reps)
文档原文是这么写的:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.tile.html
我翻译了一下,这函数意思就是:
1、通过重复reps次A来构造出一个新数组。
例如:
>>> import numpy as np
>>> a = np.array([0, 1, 2])
>>> np.tile(a, 2)
array([0, 1, 2, 0, 1, 2])
2、如果参数reps存在长度 d = len(reps) 的话,那么函数返回的新数组的维数就是 max(d, A.ndim)。
即:
如果
A.ndim < d的话,A就会通过加上新的轴来提升到d维,因此,一个shape为(3,)的数组就会被提升到(1, 3)成为2维复制品,或者被提升到(1, 1, 3)成为3维复制品。如果这不是期望的行为,那就在调用这个函数之前手动把A提升到d维。如果
A.ndim > d的话,reps就会通过在最前面加多个1来提升到A.ndim维。因此,当A的shape为(2, 3, 4, 5)时,为(2, 2)的reps就会被处理成(1, 1, 2, 2)然后再参与函数计算,返回的新数组的shape应该是(2, 3, 8, 10)。
举个例子:
>>> 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]]])
>>> np.tile(a, (2,3,4))
array([[[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2],
[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2],
[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]],
[[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2],
[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2],
[0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2]]])
#x是一个一维数组
>>> x = array([3])
>>> x.shape
(1,)
#x.ndim < d,x的维度小于reps的长度,所以y应该是一个4维的数组
>>> y = tile(x, (2,3,4,5))
>>> y.shape
(2, 3, 4, 5)
#y.ndim > d,y的维度小于reps的长度,所以z应该是一个4维的数组
>>> z = tile(y, (2,2))
>>>z.shape
(2, 3, 8, 10)
下面我们说一下函数参数,参数就俩,A和reps。A和reps都是array_like。
A的类型众多,几乎所有类型都可以:array, list, tuple, dict, matrix以及基本数据类型int, string, float以及bool类型。
reps的类型也很多,可以是tuple,list, dict, array, int, bool.但不可以是float, string, matrix类型。

本文详细介绍了numpy库中tile函数的功能及使用方法。该函数通过重复输入数组构建新数组,支持多维数组操作,并能根据输入参数调整数组维度。
2712

被折叠的 条评论
为什么被折叠?



