亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python 實現使用空值進行賦值 None

瀏覽:3日期:2022-08-02 14:23:03

0.摘要

在Python中,尤其是數組當中,對于一些異常值往往需要進行特殊處理。為了防止異常值與正常數據混淆,影響最終計算結果,常用的方法是將異常值置零或者置空。置零的方法較為簡單,本文主要介紹如果對python中的數據進行置空。

1.賦值為None

對于一般數據,可以直接為其賦值為None。

i = 1i = None # int 型數據置空s = 'string's = None # 字符串型數據置空l = [1,2,3,4]l[2] = None # 列表中元素置空print(i, s, l)

Python 實現使用空值進行賦值 None

2.numpy類型

numpy 中的數據較為特殊,如果將一個int 型元素賦值為None,或者np.nan都會產生報錯:

a = np.arange(10)a[2] = None

Python 實現使用空值進行賦值 None

a = np.arange(10)a[2] = np.nan

Python 實現使用空值進行賦值 None

如果打印np.nan的類型,會發現np.nan是float類型的。

>>> type(np.nan)<class ’float’>

在numpy數組中,將int型元素賦值為float類型,是不合法的。賦值語句不會報錯,但numpy會自動將float類型轉為int型。

而打印None類型,會發現None沒有類型。

>>> type(None)<class ’NoneType’>

賦值報錯的原因,個人認為是:numpy判斷類型不符,但也無法完成類型轉換,所以產生了報錯。

在numpy中,如果想將某一元素賦值為None或者這np.nan,可以先將數組轉換為float類型。

a = np.arange(10, dtype=float)a[2] = np.nana[3] = Noneprint(a)

Python 實現使用空值進行賦值 None

從最終結果上看,不論是np.nan,還是None,在numpy中都以nan的形式出現。

補充知識:Python 類型判斷 變量存在判斷 None與空字符串 is和==區別 nan inf判斷

一、類型變量

type

#判斷是否為整數type(varObj) is types.IntType StringType FloatType DictType TupleType ListType BooleanType

isinstance

isinstance(aaa,str)

type與isinstance區別

class A: passclass B(A): passisinstance(A(), A) # returns Truetype(A()) == A # returns Trueisinstance(B(), A) # returns Truetype(B()) == A # returns False

二、變量存在

異常捕獲

try: print self.fileReadOpen except Exception: pass else: del self.fileReadOpen

def isset(v): try : type (eval(v)) except : return 0 else : return 1

isset(’varname’) //變量只能在try里調用才會捕獲異常,所以采用字符串參數。

命名空間

’varname’ in locals().keys()’varname’ in dir()

dir()不帶參數時,返回當前范圍內的變量、方法和定義的類型列表;帶參數時,返回參數的屬性、方法列表。如果參數包含方法dir(),該方法將被調用。如果參數不包含dir(),該方法將最大限度地收集參數信息。

三、None與空字符串

有句話說的Python中萬物皆為對象。None也是對象。這就好理解None與空字符串NULL區別:

type(None)<class ’NoneType’>type(’’)<class ’’str’>>>> None == 0 //(int)False>>> None == ’ ’ //(str)False>>> None == False //(boolean)False

四、is和==區別

is判斷的是a對象是否就是b對象,是通過id來判斷的。

==判斷的是a對象的值是否和b對象的值相等,是通過value來判斷的。

>>> d = {'a':1}>>> dd = d.copy()>>> d is ddFalse>>> d == ddTrue

五、nan inf

記憶:對于is判斷,符合is的對象比較定義:對象is對象本身,對象不is新建對象。對于==判斷,除了nan,符合==的值比較的定義。對于nan在用==值比較時,可以認為,nan對象的值不==該nan對象的值,nan對象的值不==新建nan對象的值。

>>> inf = float('inf')>>> ninf = float('-inf')>>> nan = float('nan')>>> inf is infTrue>>> ninf is ninfTrue>>> nan is nanTrue>>> inf == infTrue>>> ninf == ninfTrue>>> nan == nan // nan對象時本身對象nanFalse>>> inf is float('inf')False>>> ninf is float('-inf')False>>> nan is float('nan')False>>> inf == float('inf')True>>> ninf == float('-inf')True>>> nan == float('nan') //前一個nan值不等于新建對象float('nan')的值False

判斷nan方法:

使用math模塊:

>>> import math>>> math.isinf(inf)True>>> math.isinf(ninf)True>>> math.isnan(nan)True>>> math.isinf(float('inf'))True>>> math.isinf(float('-inf'))True>>> math.isnan(float('nan'))True

利用自身判斷:

>>> def isnan(num): return num != num>>> isnan(float('nan'))True

使用numpy:

>>> import numpy as np>>> >>> np.isnan(np.nan)True>>> np.isnan(float('nan'))True>>> np.isnan(float('inf'))False

以上這篇Python 實現使用空值進行賦值 None就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 一区二区三区在线观看免费 | 97色婷婷成人综合在线观看 | 国产视频色 | 91精品国产综合成人 | 国产精品免费福利 | 黄色特一级片 | 久久成人综合 | 天天综合天天影视色香欲俱全 | 1024成线在人免费视频 | 亚洲小视频| 青青自拍视频一区二区三区 | www.自拍| 国产丰满主播丝袜勾搭秀 | 国产成人yy精品1024在线 | 黄色网页免费大全 | 久久91精品综合国产首页 | 老头毛片| 黄色大片国产 | 男女爱爱小视频在线观看 | 在线视频一二三区2021不卡 | 中文字幕乱码二三区免费 | 国产视频在线观看福利 | 鲁一鲁中文字幕久久 | 免费看三级全黄 | 欧美成人免费全部观看在线看 | 国产成人精品日本亚洲直接 | 国产精品一级二级三级 | 免费一级毛片女人图片 | 尤物视频在线观看免费 | 一级毛片一级片 | 亚洲视频综合 | 天天套图 | 玖玖爱在线观看 在线播放 玖玖草在线观看 | 成人免费看片网站 | 国产日韩精品一区二区在线观看播放 | 全免费一级毛片在线播放 | 色网综合 | 皇色在线视频 | 亚洲精品国产拍拍拍拍拍 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美一区二区三区 | 国产一级视频免费 |