python numpy 重复_重复numpy数组的每个元素5次

In [1]: data = np.arange(-50,50,10)

要重复每个元素5次,请使用np.repeat:In [3]: np.repeat(data, 5)

Out[3]:

array([-50, -50, -50, -50, -50, -40, -40, -40, -40, -40, -30, -30, -30,

-30, -30, -20, -20, -20, -20, -20, -10, -10, -10, -10, -10, 0,

0, 0, 0, 0, 10, 10, 10, 10, 10, 20, 20, 20, 20,

20, 30, 30, 30, 30, 30, 40, 40, 40, 40, 40])

要重复数组5次,请使用np.tile:In [2]: np.tile(data, 5)

Out[2]:

array([-50, -40, -30, -20, -10, 0, 10, 20, 30, 40, -50, -40, -30,

-20, -10, 0, 10, 20, 30, 40, -50, -40, -30, -20, -10, 0,

10, 20, 30, 40, -50, -40, -30, -20, -10, 0, 10, 20, 30,

40, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40])

但是,请注意,有时您可以利用NumPy broadcasting而不是使用重复的元素创建更大的数组。

例如,如果z = np.array([1, 2])

v = np.array([[3], [4], [5]])

然后将这些数组添加到[[4 5]

[5 6]

[6 7]]

不需要使用平铺:In [12]: np.tile(z, (3,1))

Out[12]:

array([[1, 2],

[1, 2],

[1, 2]])

In [13]: np.tile(v, (1,2))

Out[13]:

array([[3, 3],

[4, 4],

[5, 5]])

In [14]: np.tile(z, (3,1)) + np.tile(v, (1,2))

Out[14]:

array([[4, 5],

[5, 6],

[6, 7]])

相反,NumPy将为您广播阵列:In [15]: z + v

Out[15]:

array([[4, 5],

[5, 6],

[6, 7]])

你可能感兴趣的:(python,numpy,重复)