我有一个大的 ndarray X
(大致为 (1e3, 1e3, 1e3)),我想在其中进行X
包含和不包含第 0 轴的特定元素(对于第 1 轴和第 2 轴的每个元素)的操作。即有 (1e3, 1e3) 元素,我想(有时)屏蔽或屏蔽。
最简单的做法是构造一个掩码数组,例如,
Z = np.zeros_like(X, dtype=bool)
# assume `inds` is some indexing array which will target
# the particular (1e3 x 1e3) elements I'm interested in
Z[inds] = True
Y = np.ma.masked_array(X, mask=Z)
但这仅为掩码数组使用了额外的千兆字节内存。有没有办法在不构造第二个10^9
掩码元素数组的情况下做到这一点?例如,是否可以为掩码构造一个稀疏矩阵?