我有一个大小为N的numpy数组X,填充0和1。
我生成一个大小为M的样本S.
我想从样本S恢复每个位置的X元素。
我想问一下,如果不使用循环,是否可以这样做,而是使用numpy mask模块中的一些原子操作。
我想要任何类型的循环,如
for i in sample:
X[i] = 1-X[i]
并用pylab中的单个调用替换它。
可能?
答案 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])