是否可以简单地使用像这样的数组:
import numpy as np
a = np.array([1,76,120,158,199]
作为另一个数组的条件数组?
例如,我有一个像这样的数组:
b=np.array([0,1,2,3,4,5,76,77,78,79,120,121,122,158,159,199,200,201])
数组b的所有数字也都位于数组a中,例如:
返回:
c=np.array([0,1,2,3,4,5,1,77,78,79,1,121,122,1,159,1,200,201])
有没有快速的numpy版本可以做到这一点。因为实际的数组是一个巨大的3d数组,其中包含许多数字,所以可以将其展平。
答案 0 :(得分:2)
使用numpy.in1d
和布尔索引:
b[np.in1d(b, a)] = 1
print(b)
array([ 0, 1, 2, 3, 4, 5, 1, 77, 78, 79, 1, 121, 122,
1, 159, 1, 200, 201])