2013-08-21 3 views
2

У меня есть сценарий, написанный там, где список создается из столбца файла. Внутри этого списка есть много натовских записей, помещенных случайным образом. Как я могу удалить эти записи? Heres мой код:Как удалить nans из моего кода python

#import astropy.io.ascii as asciitable 
import numpy as np 
import pylab as plt 

#x=asciitable.read('protected.txt', guess=False,delimiter='\t',fill_values=[('', '-999')]) 
#x=np.genfromtxt('protected.txt', comments='#', delimiter=' ', skiprows=0, skip_header=0, skip_footer=0, converters=None, missing='', missing_values='', filling_values=-999, usecols=None, names=None, excludelist=None, deletechars=None, replace_space='_', autostrip=False, case_sensitive=True, defaultfmt='f%i', unpack=None, usemask=False, loose=True, invalid_raise=True) 
x=np.load('EC/EC_data') 
# Convert columns to float values 
BMI=map(float,x['bmiEC']) 
print BMI 

Херес отслеживающий:

TypeError         Traceback (most recent call last) 

/example_bmiEC.py in <module>() 
     8 # Convert columns to float values 

     9 BMI=map(float,x['bmiEC']) 
---> 10 BMI=BMI[~np.isnan(BMI)] 
    11 print BMI 



TypeError: only integer arrays with one element can be converted to an index 
WARNING: Failure executing file: <example_bmiECFSPR.py> 
+0

Не могли бы вы объяснить, что такое 'nan entry'?/И почему половина вашего кода прокомментирована? Что именно вы спрашиваете? Что вы пробовали? –

+0

Возможный дубликат [Как проверить NaN в python?] (Http://stackoverflow.com/questions/944700/how-to-check-for-nan-in-python) –

+0

Вы хотите удалить NaNs из результирующий список, или вы хотите его исправить, чтобы они не отображались там в первую очередь? – JJJ

ответ

3
>>> import numpy as np 
>>> a = np.array([1, 2, 3., np.nan, 4, np.nan]) 
>>> a = a[~np.isnan(a)] 
>>> a 
array([ 1., 2., 3., 4.]) 
+0

такой красивый кусок кода. –

+1

симпатично к '' 'оператору вы можете использовать' a [np.logical_not (np.isnan (a))] ' –

+0

@SaulloCastro ни один из них не работает для меня, я получаю сообщение об ошибке« только целые массивы с одним элементом » преобразуется в индекс « – blablabla