我对Python 2中的NumPy模块有一个相当基本的问题,特别是trinket.io上的版本。无论方法如何,我都没有看到如何在多维数组中替换多个数组中的值。这是一个例子:
a = numpy.array([1,2,3])
a[0] = 0
print a
a = numpy.array([[1,2,3],[1,2,3]])
a[0][0] = a[1][0] = 0
print a
结果:
array([0, 2, 3], '<class 'int'>')
array([[1, 2, 3], [1, 2, 3]], '<class 'int'>')
我需要能够更改单个值,我的具体代码是:
a = numpy.empty(shape = (8,8,2),dtype = str)
for row in range(a.shape[0]):
for column in range(a.shape[1]):
a[row][column][1] = 'a'
感谢您的时间和任何帮助。
答案 0 :(得分:1)
要更改单个值,您可以执行以下操作:
a[1,2] = 'b'
如果要更改所有阵列,可以执行以下操作:
a[:,:] = 'c'
使用逗号(array[a,b]
)代替(array[a][b]
)
答案 1 :(得分:0)
使用numpy版本1.11.0
,我得到了
[[0 2 3]
[0 2 3]]
当我运行你的代码时。我想你的numpy版本更新更好。
正如user3408085所说,正确的做法是a[0,0] = 0
更改一个元素或a[:,0]=0
如果你真的想要将整个第一列归零。
a[0][0]=0
不修改(至少在你的numpy版本中)的原因是a [0]是一个新数组。如果将命令a[0][0]=0
分为两行:
b=a[0]
b[0]=0
然后,这修改a的事实是违反直觉的。