【发布时间】:2013-12-28 09:07:38
【问题描述】:
使用 Numpy,我可以像这样创建一个 5 维数组:
>>> faces = numpy.zeros((3, 3, 3, 6, 3))
我希望将(all indexes, all indexes, 0, 4) 设置为(1., 1., 1.)。仅使用 Numpy(无 Python 循环)是否可以做到这一点?
【问题讨论】:
使用 Numpy,我可以像这样创建一个 5 维数组:
>>> faces = numpy.zeros((3, 3, 3, 6, 3))
我希望将(all indexes, all indexes, 0, 4) 设置为(1., 1., 1.)。仅使用 Numpy(无 Python 循环)是否可以做到这一点?
【问题讨论】:
以下两个都可以:
faces[:,:,0,4] = 1
faces[:,:,0,4] = (1, 1, 1)
第一个通过让 NumPy 将 1 广播到正确的维度来使用所有三个值相同的事实。
第二个更通用一点,您可以为三个元素分配不同的值。
【讨论】:
slice(None), slice(None), 0, 4
Numpy slice notation 支持直接这样做
f[:,:,0,4] = 1.0
【讨论】: