【发布时间】:2016-04-08 18:58:57
【问题描述】:
我有一个大小为 (2,3,4,4) 的 4D 数组“a”,其中填充了零。
import numpy as np
a = np.zeros((2,3,4,4))
我还有一个大小为 (2,3,4) 的 3D 数组“b”,它带有一些索引值(都在 0 和 3 之间)。
我想要做的是用 1 替换 'a' 中每个最后一个数组的元素('a' 的第 4 维),它对应于 'b' 中的索引。
我可以用 3 个 for 循环来做到这一点,如下所示:
for i in a.shape[0]:
for j in a.shape[1]:
for z in a.shape[2]:
a[i,j,z][b[i,j,z]] = 1
但我想知道是否有办法完全避免循环。类似于:
a[b] = 1
【问题讨论】:
标签: python arrays numpy vectorization