如何基于上下边界的numpy数组中的NaN元素

时间:2018-07-12 04:41:22

标签: python-3.x numpy

我有一个0-10个元素的numpy数组。

a = np.arange(0,11)
np.random.shuffle(a)
a
array([ 1,  7,  8,  0,  2,  3,  4, 10,  9,  5,  6])

如果元素在4到8之间,我想将其转换为NaN。 第一步,我尝试使用np.where来获取数组,如下所示:

np.where([a > 4] & [a < 8])

但是出现错误。有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

您需要:

import numpy as np 

a = np.arange(0,11)
np.random.shuffle(a)

print(a)
# [ 7  4  2  3  6 10  1  9  5  0  8]

a = np.where((a > 4) & (a < 8), np.nan, a)

print(a)
# [nan  4.  2.  3. nan 10.  1.  9. nan  0.  8.]

如果您想了解np.where()的工作原理,请参考numpy.where() detailed, step-by-step explanation / examples