我可以使用列表来寻址 numpy 数组吗?

Can I use a list to address a numpy array?

我想为列表寻址的 numpy 数组的元素赋值。这可能吗?这似乎是你应该能够做的事情。

我试过了:

q = np.zeros((2,2,2))
index = [0,0,0]
print(index)


q[index]=4.3
print(q)

哪个没报错,哪个有希望,但是q现在是:

[[[ 4.3  4.3]
  [ 4.3  4.3]]

 [[ 0.   0. ]
  [ 0.   0. ]]]

相对于:

[[[ 4.3  0. ]
  [ 0.   0.]]

 [[ 0.   0. ]
  [ 0.   0. ]]]

正如我所希望的那样。

在此先感谢您的帮助。

您不能使用 list 来索引单个元素 - 它必须是 tuple:

import numpy as np

q = np.zeros((2,2,2))
index = [0,0,0]
print(index)


q[tuple(index)]=4.3
print(q)
[0, 0, 0]
[[[ 4.3  0. ]
  [ 0.   0. ]]

 [[ 0.   0. ]
  [ 0.   0. ]]]