Python:使用数组作为另一个数组的条件

时间:2018-09-03 17:03:14

标签: python arrays numpy scipy

是否可以简单地使用像这样的数组:

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数组,其中包含许多数字,所以可以将其展平。

1 个答案:

答案 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])