在某些位置切换元素的值

时间:2013-10-09 08:43:06

标签: python numpy

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

我生成一个大小为M的样本S.

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

我想问一下,如果不使用循环,是否可以这样做,而是使用numpy mask模块中的一些原子操作。

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

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

并用pylab中的单个调用替换它。

可能?

1 个答案:

答案 0 :(得分: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])