np.repeat 与 np.tile

1.Numpy的 tile() 函数,就是将原矩阵横向、纵向地复制。tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。

举个例子,原矩阵:

import numpy as np
mat = np.array([[1,2], [3, 4]])

横向:

print(np.tile(mat,(1, 4)))
#等同于
print(np.tile(mat, 4))
[[1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]]
[[1 2 1 2 1 2 1 2]
 [3 4 3 4 3 4 3 4]]

  

纵向:

np.tile(mat, (3, 1))
array([[1, 2],
       [3, 4],
       [1, 2],
       [3, 4],
       [1, 2],
       [3, 4]])

  

横向 + 纵向

np.tile(mat, (3, 4))
array([[1, 2, 1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4, 3, 4],
       [1, 2, 1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4, 3, 4],
       [1, 2, 1, 2, 1, 2, 1, 2],
       [3, 4, 3, 4, 3, 4, 3, 4]])

  

 

2. repeat函数功能:对数组中的元素进行连续重复复制 

用法有两种:

1) numpy.repeat(a, repeats, axis=None)

2) a.repeats(repeats, axis=None)   

 

参数:

: array_like 输入数组。

repeats: int或int数组 每个元素的重复次数。 广播重复以适合给定轴的形状。

axis : int,可选  沿其重复值的轴。默认情况下,使用展平的输入数组,并返回一个平面输出数组。

返回: repeated_array : ndarray  输出阵列,其具有相同的形状作为一个,除了沿给定轴。

 

 

from numpy import *
repeat(7.,4)
==> array([7., 7., 7., 7.]

a=array([10,20])
a.repeat([3,2])
==>array([10, 10, 10, 20, 20])


repeat(a,[3,2])
==>array([10, 10, 10, 20, 20])

a=array([[10,20],[30,40]])
a.repeat([3,2],axis=0)
==>
array([[10, 20],
       [10, 20],
       [10, 20],
       [30, 40],
       [30, 40]])


a.repeat([3,2],axis=1)
==>
array([[10, 10, 10, 20, 20],
           [30, 30, 30, 40, 40]])

 

  

 

posted @ 2018-12-02 22:39  nxf_rabbit75  阅读(2101)  评论(0编辑  收藏  举报