向量化np.arange或等效

我是S。

我有一个很长的一维数组。我想创建一个数组,该数组是np.arange()应用到数组中每个值加上一些常量的结果。例如,如果常量= 3并且我的数组看起来像

[1,2,3,4,5]

我想得到

[[1,2,3]
 [2,3,4]
 [3,4,5]
 [4,5,6]
 [5,6,7]]

np.arange()仅接受标量作为参数。我玩np.vectorize()了一点也没有成功。显然,我可以使用循环或列表来执行此操作,然后转换为数组,但是我想知道是否有一个很好的仅基于numpy的解决方案。

亚历克斯·赖利

您可以使用加法和广播:

>>> x = np.array([1,2,3,4,5])
>>> constant = 3
>>> x[:,None] + np.arange(constant)
array([[1, 2, 3],
       [2, 3, 4],
       [3, 4, 5],
       [4, 5, 6],
       [5, 6, 7]])

这也可以写成np.add.outer(x, np.arange(constant))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章