2013-12-18 16 views
2

想要選擇1和4之間的數據,並將其他數據轉換爲np.nan 但是,解決方案是什麼?從numpy數組中選擇所需的數據

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

Traceback (most recent call last): 
    File "C:/Users/fe/Desktop/t.py", line 3, in <module> 
    selected = np.where(1<data<4, data, np.nan) 
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 

回答

4

你非常接近,你只需要一個不同的方式來選擇data中的相關指數。嘗試:

>>> selected = np.where((data < 4) & (data > 1), data, np.nan) 
>>> selected 
array([ nan, 2., 3., nan, nan]) 

(data < 4) & (data > 1)發現data的指數,它們都< 4>1