Python:将列表分配给多维数组元素

时间:2013-07-17 22:06:01

标签: python numpy

我想对多维数组进行赋值,其中数组的每个元素都是3个短整数:

a = ndarray([3,3,3], dtype='u2,u2,u2')
a[2,2,2] = [1,2,3]
  

追踪(最近一次通话):    文件“”,第1行,in      a [2,2,2] = [1,2,3]   TypeError:期望一个可读的缓冲区对象

我将使用一个大型数组,并希望直接索引到数组中以获得性能。在python中执行此操作的好方法是什么?

感谢您对如何做到这一点有任何见解?

1 个答案:

答案 0 :(得分:1)

dtype='u2,u2,u2'数组的元素是三个短片的元组,而不是三个短片的列表。所以:

a[2,2,2] = (1,2,3)

(parens当然不是必需的,但我用它们来表明这是一个元组。)

如果您愿意,也可以传递array

a[2,2,2] = np.array([1,2,3])

当然,这里的错误信息当然可能会更好......它实际上抱怨的是比你期望的更深的东西,它无助于你调试问题。