numpy数组中的元素选择

时间:2013-12-24 22:03:36

标签: python numpy scipy

如何将原始数组(数据)中的所需数组进行子集化,将其他元素转换为np.nan?

import numpy as np

data = np.array([1,1,1,2,2,2,3,3,3,4,4,4,5,5,5])

required = np.where((data <= 2) & (data >= 4),data,np.nan)

print (required)

必需的数组必须如下:

[1,1,1,2,2,2,nan,nan,nan,4,4,4,5,5,5]

1 个答案:

答案 0 :(得分:3)

我认为你想要or,而不是and(或者,|而不是&):

>>> import numpy as np
>>> data = np.array([1,1,1,2,2,2,3,3,3,4,4,4,5,5,5])
>>> required = np.where((data <= 2) | (data >= 4),data,np.nan)
>>> required
array([  1.,   1.,   1.,   2.,   2.,   2.,  nan,  nan,  nan,   4.,   4.,
         4.,   5.,   5.,   5.])