a = np.array([[-1,1,-1],[-1,1,1]])
我的数组仅包含两个不同的值:-1和1。但是,我想将所有1替换为0,而所有-1则替换为1。这肯定会起作用,但是我正在寻找一种更方便的方法。 我正在寻找某种
replace(old, new)
功能
您可以尝试以下方法:
import numpy as np
a = np.array([[-1,1,-1],[-1,1,1]])
# approach 1
a[a == 1] = 0
a[a == -1] = 1
# approach 2
mask = a == 1
a[mask] = 0
a[~mask] = 1
print(a)
[[1 0 1]
[1 0 0]]
正确答案是@tusamma sal sabil,速度 这对他的回应有所改善: Importnumpy asnp
a = np.array([[-1,1,-1],[-1,1,1]])
mask = a == 1
a[mask] = 0
a[~mask] = 1
#array([[1, 0, 1],
# [1, 0, 0]])
import numpy as np
sample_arr = np.ones((5,2))
print('Converting an array with ones to zero')
np.where(sample_arr==1, 0, sample_arr)
(a == -1 ).astype(np.int32)
可以做到这一点很容易a=np.arrey