python之NAN和INF值處理方式
一、NAN和INF值處理
首先我們要知道這兩個(gè)英文單詞代表的什么意思:
NAN
:Not A number,不是一個(gè)數(shù)字的意思,但是他是屬于浮點(diǎn)類型的,所以想要進(jìn)行數(shù)據(jù)操作的時(shí)候需要注意他的類型。INF
:Infinity,代表的是無(wú)窮大的意思,也是屬于浮點(diǎn)類型。np.inf表示正無(wú)窮大,-np.inf表示負(fù)無(wú)窮大,一般在出現(xiàn)除數(shù)為0的時(shí)候?yàn)闊o(wú)窮大。比如2/0。
二、NAN一些特點(diǎn)
- NAN和NAN不相等。比如np.NAN != np.NAN這個(gè)條件是成立的。
- NAN和任何值做運(yùn)算,結(jié)果都是NAN。
有些時(shí)候,特別是從文件中讀取數(shù)據(jù)的時(shí)候,經(jīng)常會(huì)出現(xiàn)一些缺失值。缺失值的出現(xiàn)會(huì)影響數(shù)據(jù)的處理。因此我們?cè)谧鰯?shù)據(jù)分析之前,先要對(duì)缺失值進(jìn)行一些處理。處理的方式有多種,需要根據(jù)實(shí)際情況來(lái)做。一般有兩種處理方式:刪除缺失值,用其他值進(jìn)行填充。
三、兩種處理方式:刪除缺失值,用其他值進(jìn)行填充
3.1刪除缺失值
3.1.1 將數(shù)組中的NAN刪掉,那么我們可以換一種思路,就是只提取不為NAN的值
3.1.2 刪除NAN所在的行(刪除后還是二維數(shù)組)
3.2用其他值進(jìn)行填充
有些時(shí)候我們不想直接刪掉,比如有一個(gè)成績(jī)表,分別是數(shù)學(xué)和英語(yǔ),但是因?yàn)槟硞€(gè)人在某個(gè)科目上沒(méi)有成績(jī),那么此時(shí)就會(huì)出現(xiàn)NAN的情況,這時(shí)候就不能直接刪掉了,就可以使用某些值進(jìn)行替代。
假如有以下表格:
數(shù)學(xué) | 英語(yǔ) |
---|---|
59 | 89 |
90 | 32 |
78 | 45 |
34 | NAN |
NAN | 56 |
23 | 56 |
如果想要求每門成績(jī)的總分,以及每門成績(jī)的平均分,那么就可以采用某些值替代。比如求總分,那么就可以把NAN替換成0,如果想要求平均分,那么就可以把NAN替換成其他值的平均值。示例代碼如下:
總結(jié)
1.NAN: Not A Number的簡(jiǎn)寫,不是一個(gè)數(shù)字,但是他是屬于浮點(diǎn)類型。
2.INF:無(wú)窮大,在除數(shù)為0的情況下會(huì)出現(xiàn)INF。
3.NAN和所有的值進(jìn)行計(jì)算結(jié)果都是等于NAN
4.NAN != NAN
5.可以通過(guò)np.isnan來(lái)判斷某個(gè)值是不是NAN。
6.處理值的時(shí)候,可以通過(guò)刪除NAN的形式進(jìn)行處理,也可以通過(guò)值的替換進(jìn)行處理。
7.np.delete比較特殊,他通過(guò)axis=0來(lái)代表行,而其他大部分函數(shù)是通過(guò)axis=1來(lái)代表行。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 對(duì)象真假值的實(shí)例(哪些視為False)
這篇文章主要介紹了python 對(duì)象真假值的實(shí)例(哪些視為False),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12關(guān)于python中time和datetime的區(qū)別與用法
這篇文章主要介紹了關(guān)于python中time和datetime的區(qū)別與用法,Python中封裝了很多實(shí)用的函數(shù),那么關(guān)于時(shí)間的函數(shù)time和datetime有什么區(qū)別和作用,讓我們來(lái)看看吧2023-03-03python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5選項(xiàng)卡控件QTabWidget詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5選項(xiàng)卡控件QTabWidget詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03淺談Python描述數(shù)據(jù)結(jié)構(gòu)之KMP篇
這篇文章主要介紹了Python描述數(shù)據(jù)結(jié)構(gòu)之KMP篇,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python?Django源碼運(yùn)行過(guò)程解析
這篇文章主要介紹了Python?Django源碼運(yùn)行過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08Python+random模塊實(shí)現(xiàn)隨機(jī)抽樣
python的random庫(kù),提供了很多隨機(jī)抽樣方法。本文將通過(guò)幾個(gè)示例為大家詳細(xì)講講random模塊實(shí)現(xiàn)隨機(jī)抽樣的方法,需要的可以參考一下2022-09-09Python中zip()函數(shù)的簡(jiǎn)單用法舉例
這篇文章主要給大家介紹了關(guān)于Python中zip()函數(shù)的簡(jiǎn)單用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Python判斷字符串是否為字母或者數(shù)字(浮點(diǎn)數(shù))的多種方法
本文給大家?guī)?lái)三種方法基于Python判斷字符串是否為字母或者數(shù)字(浮點(diǎn)數(shù)),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-08-08