同时平铺和修改Numpy数组

时间:2017-07-12 17:09:31

标签: python arrays numpy

假设我有一个像这样的Numpy数组:

[10, 11, 12]

我想复制它几次以形成一个新数组,但每次复制时减去每个元素1,以产生:

[[10 11 12]
 [ 9 10 11]
 [ 8  9 10]
 [ 7  8  9]
 [ 6  7  8]
 [ 5  6  7]]

列表理解很简单:

import numpy as np
cycles = 6
a = np.array([10, 11, 12])

a = np.stack([a - i for i in range(cycles)])

然而,我想知道是否有一个Numpy命令可以做到这一点,或者是一个没有使用列表理解的更有效的方法。 我使用的是Python 2.7。

1 个答案:

答案 0 :(得分:5)

一种方法是使用broadcasting -

main.js

示例运行 -

a - np.arange(6)[:,None]