這個(gè)問(wèn)題源于在訓(xùn)練機(jī)器學(xué)習(xí)的一個(gè)模型時(shí),使用訓(xùn)練數(shù)據(jù)時(shí)提示prepare的數(shù)據(jù)中存在np.nan
報(bào)錯(cuò)信息如下:
ValueError: np.nan is an invalid document, expected byte or unicode string.
剛開(kāi)始不知道為什么會(huì)有這個(gè),后來(lái)發(fā)現(xiàn)是list中存在nan值
下面是找到nan值的方法:
簡(jiǎn)單找到:
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方法卻并不能正確判斷,會(huì)提示TypeError,此時(shí)需要用pandas.isnull()判斷該值是否為空
下面是numpy.isnan()的文檔
以上這篇Python Numpy:找到list中的np.nan值方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選