1

我有一个大小为 N 的 numpy 数组 X,用 0 和 1 填充。

我生成大小为 M 的样本 S

我想从样本 S 的每个位置恢复 X 的元素。

我想问这是否可能不使用循环,而是使用 numpy 掩码模块中的一些原子操作。

我想要任何类型的循环,比如

for i in sample:
    X[i] = 1-X[i]

并用 pylab 中的一次调用替换它。

可能的 ?

4

1 回答 1

2

使用X[sample] = 1 - X[sample].

例如:

>>> import numpy as np
>>> X = np.array([1, 1, 0, 1, 1])
>>> sample = [1,2,3]
>>> X[sample]
array([1, 0, 1])
>>> X[sample] = 1 - X[sample]
>>> X
array([1, 0, 1, 0, 1])
于 2013-10-09T08:53:51.213 回答