gpt4 book ai didi

python - 同时平铺和修改 Numpy 数组

转载 作者:行者123 更新时间:2023-11-28 21:41:09 29 4
gpt4 key购买 nike

假设我有一个像这样的 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。

最佳答案

一种方法是使用 broadcasting -

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

sample 运行-

In [94]: a
Out[94]: array([10, 11, 12])

In [95]: a - np.arange(6)[:,None]
Out[95]:
array([[10, 11, 12],
[ 9, 10, 11],
[ 8, 9, 10],
[ 7, 8, 9],
[ 6, 7, 8],
[ 5, 6, 7]])

关于python - 同时平铺和修改 Numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45063841/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com