這個問題源于在訓(xùn)練機(jī)器學(xué)習(xí)的一個模型時(shí),使用訓(xùn)練數(shù)據(jù)時(shí)提示prepare的數(shù)據(jù)中存在np.nan
報(bào)錯信息如下:
ValueError: np.nan is an invalid document, expected byte or unicode string.
剛開始不知道為什么會有這個,后來發(fā)現(xiàn)是list中存在nan值
下面是找到nan值的方法:
簡單找到:
import numpy as npx = np.array([2,3,np.nan,5, np.nan,5,2,3])for item in x: if np.isnan(item): print('yes')
拿到index數(shù)組:
x = np.array([[1,2,3,4], [2,3,np.nan,5], [np.nan,5,2,3]])print(np.argwhere(np.isnan(x)))
output: array([[1, 2], [2, 0]])
然而實(shí)際上,有些時(shí)候,如果是用pandas讀出的數(shù)據(jù),在list中print時(shí)提示為nan,但用isnan方法卻并不能正確判斷,會提示TypeError,此時(shí)需要用pandas.isnull()判斷該值是否為空
下面是numpy.isnan()的文檔
以上這篇Python Numpy:找到list中的np.nan值方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點(diǎn)
疑難解答
圖片精選