gpt4 book ai didi

python - 将 0 插入二维数组

转载 作者:太空狗 更新时间:2023-10-29 17:27:21 25 4
gpt4 key购买 nike

我有一个数组x:

x = [0, -1, 0, 3]

我想要y:

y = [[0, -2, 0, 2],
[0, -1, 0, 3],
[0, 0, 0, 4]]

其中第一行是x-1,第二行是x,第三行是x+1。所有偶数列索引均为零。

我在做:

y=np.vstack(x-1, x, x+1)
y[0][::2] = 0
y[1][::2] = 0
y[2][::2] = 0

我在想可能有一行而不是 4 行来执行此操作。

最佳答案

两行

>>> x = np.array([0, -1, 0, 3])
>>> y = np.vstack((x-1, x, x+1))
>>> y[:,::2] = 0
>>> y
array([[ 0, -2, 0, 2],
[ 0, -1, 0, 3],
[ 0, 0, 0, 4]])

解释

y[:, ::2]

给出完整的第一维。即所有行和所有其他条目形成第二个维度,即列:

array([[-1, -1],
[ 0, 0],
[ 1, 1]])

这不同于:

y[:][::2]

因为这分两步进行。第一步:

y[:]

给出整个数组的 View :

array([[-1, -2, -1,  2],
[ 0, -1, 0, 3],
[ 1, 0, 1, 4]])

因此,第二步基本上是这样做的:

y[::2]
array([[-1, -2, -1, 2],
[ 1, 0, 1, 4]])

它沿着第一个维度运作。即行。

关于python - 将 0 插入二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34685084/

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