在Numpy数组中替换子数组

3

我试图用一个形状相同的数组替换Numpy数组中的子数组,使得两个数组中的任何更改都会同时反映在其中。我已经在IDLE中运行了以下代码。

import numpy
a=numpy.zeros((2,1))

a
array([[0.],
       [0.]])

b=numpy.zeros((1))
b
array([0.])

a[0]=b
b[0]=1

b
array([1.])

在这个例子中,我希望a的输出结果是:

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

但是我得到了:

a
array([[0.],
       [0.]])

我一直在尝试阅读关于切片和索引的内容,但是我并不清楚我在这里做错了什么,或者是否有可能得到我想要的结果。所以我希望有人能告诉我如何做到这一点。


a[0]=bb 的值赋给了 a,但并没有改变对象。如果 a 是一个列表,那么这个操作是可行的,但对于数值数组则不行。 - hpaulj
1个回答

1
你可以将b初始化为a的切片,然后修改b也会同时修改a,即:
import numpy as np

a=np.zeros((2,1))
b=a[0]
b[0]=1

a
array([[1.],
       [0.]])

希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接