首先我們要知道這兩個英文單詞代表的什麼意思:
<code>NAN</code>:<code>Not A number</code>,不是一個數字的意思,但是他是屬于浮點類型的,是以想要進行資料操作的時候需要注意他的類型。
<code>INF</code>:<code>Infinity</code>,代表的是無窮大的意思,也是屬于浮點類型。<code>np.inf</code>表示正無窮大,<code>-np.inf</code>表示負無窮大,一般在出現除數為0的時候為無窮大。比如<code>2/0</code>。
NAN和NAN不相等。比如<code>np.NAN != np.NAN</code>這個條件是成立的。
NAN和任何值做運算,結果都是NAN。
有些時候,特别是從檔案中讀取資料的時候,經常會出現一些缺失值。缺失值的出現會影響資料的處理。是以我們在做資料分析之前,先要對缺失值進行一些處理。處理的方式有多種,需要根據實際情況來做。一般有兩種處理方式:删除缺失值,用其他值進行填充。
有時候,我們想要将數組中的<code>NAN</code>删掉,那麼我們可以換一種思路,就是隻提取不為<code>NAN</code>的值。示例代碼如下:
有些時候我們不想直接删掉,比如有一個成績表,分别是數學和英語,但是因為某個人在某個科目上沒有成績,那麼此時就會出現NAN的情況,這時候就不能直接删掉了,就可以使用某些值進行替代。假如有以下表格:
數學
英語
59
89
90
32
78
45
34
NAN
56
23
如果想要求每門成績的總分,以及每門成績的平均分,那麼就可以采用某些值替代。比如求總分,那麼就可以把NAN替換成0,如果想要求平均分,那麼就可以把NAN替換成其他值的平均值。示例代碼如下:
輸出:
1、 NAN:Not A Number的簡寫,不是一個數字,但是他是屬于浮點類型。
2、INF:無窮大,在除數為0的情況下會出現INF。
3、NAN和所有的值進行計算結果都是等于NAN
4、NAN != NAN
5、可以通過np.isnan來判斷某個值是不是NAN。
6、處理值的時候,可以通過删除NAN的形式進行處理,也可以通過值的替換進行處理。
7、np.delete比較特殊,他通過axis=0來代表行,而其他大部分函數是通過axis=1來代表行。