Python / Numpy:将值设置为索引范围

时间:2013-12-28 09:07:39

标签: python arrays numpy

使用Numpy,我可以像这样创建一个5维数组:

>>> faces = numpy.zeros((3, 3, 3, 6, 3))

我希望(all indexes, all indexes, 0, 4)设置为(1., 1., 1.)。这只能使用Numpy(没有Python循环)吗?

2 个答案:

答案 0 :(得分:3)

以下两种方法都可以:

faces[:,:,0,4] = 1

faces[:,:,0,4] = (1, 1, 1)

第一个使用NumPy将1广播到正确尺寸的所有三个值相同的事实。

第二个更为通用,因为你可以为这三个元素分配不同的值。

答案 1 :(得分:2)

Numpy slice notation支持直接执行此操作

f[:,:,0,4] = 1.0