我有一个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])
但是出现错误。有什么帮助吗?
答案 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