# python numpy-tile函数

##### Python版本：3.6.2

``````Help on function tile in module numpy.lib.shape_base:

tile(A, reps)
Construct an array by repeating A the number of times given by reps.

If `reps` has length ``d``, the result will have dimension of
``max(d, A.ndim)``.

If ``A.ndim < d``, `A` is promoted to be d-dimensional by prepending new
axes. So a shape (3,) array is promoted to (1, 3) for 2-D replication,
or shape (1, 1, 3) for 3-D replication. If this is not the desired
behavior, promote `A` to d-dimensions manually before calling this
function.

If ``A.ndim > d``, `reps` is promoted to `A`.ndim by pre-pending 1's to it.
Thus for an `A` of shape (2, 3, 4, 5), a `reps` of (2, 2) is treated as
(1, 1, 2, 2).

Note : Although tile may be used for broadcasting, it is strongly
recommended to use numpy's broadcasting operations and functions.

Parameters
----------
A : array_like
The input array.
reps : array_like
The number of repetitions of `A` along each axis.

Returns
-------
c : ndarray
The tiled output array.

--------
repeat : Repeat elements of an array.

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

##### 例1
``````a = array([0, 1, 2])
b = tile(a, 2)
print(b)

//结果为
[0, 1, 2, 0, 1, 2]
``````

## tile怎么执行的，有两个要点

（1）比较数组维度d和元组维度reps，如果d<reps，�在需要时对数组补中括号 [] 来增加维度。
（2）元组数字从右到左，数组维度从最深维度到最低维度。�假设元组为（a,b,c,d,e,f），则数组最深维度重复f次；然后次深维度重复e次；接着次次深维度重复d次；再然后次次次深维度重复c次…… 以此类推，直到对最低维度重复a次，结束，得到结果

``````[0, 1, 2, 0, 1, 2]
``````

``````[0, 1, 2]
``````
##### 例2
``````a = array([0, 1, 2])
b = tile(a, (2, 1))
print(b)

//结果为
[[0, 1, 2],
[0, 1, 2]]
``````

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

①tile(a, (2, 2))

②tile(a, (2, 1, 1))

③tile(a, (2, 2, 1))

Numbers作图

Numbers作图

Numbers作图

Python