最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 實現(xiàn)使用空值進(jìn)行賦值 None

 更新時間:2020年03月12日 15:16:23   作者:shangyj17  
這篇文章主要介紹了Python 實現(xiàn)使用空值進(jìn)行賦值 None,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

0.摘要

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

1.賦值為None

對于一般數(shù)據(jù),可以直接為其賦值為None。

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

2.numpy類型

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

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

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

如果打印np.nan的類型,會發(fā)現(xiàn)np.nan是float類型的。

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

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

而打印None類型,會發(fā)現(xiàn)None沒有類型。

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

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

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

a = np.arange(10, dtype=float)
a[2] = np.nan
a[3] = None
print(a)

從最終結(jié)果上看,不論是np.nan,還是None,在numpy中都以nan的形式出現(xiàn)。

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

一、類型變量

type

#判斷是否為整數(shù)
type(varObj) is types.IntType 

 StringType 
 FloatType 
 DictType 
 TupleType 
 ListType 
 BooleanType

isinstance

isinstance(aaa,str)

type與isinstance區(qū)別

class A:
  pass
class B(A):
  pass
isinstance(A(), A)  # returns True
type(A()) == A    # returns True
isinstance(B(), A)  # returns True
type(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里調(diào)用才會捕獲異常,所以采用字符串參數(shù)。

命名空間

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

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

三、None與空字符串

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

type(None)
<class 'NoneType'>

type('')
<class ''str'>

>>> None == 0     //(int)
False
>>> None == ' '   //(str)
False
>>> None == False  //(boolean)
False

四、is和==區(qū)別

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

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

>>> d = {"a":1}
>>> dd = d.copy()
>>> d is dd
False
>>> d == dd
True

五、nan inf

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

>>> inf = float("inf")
>>> ninf = float("-inf")
>>> nan = float("nan")
>>> inf is inf
True
>>> ninf is ninf
True
>>> nan is nan
True
>>> inf == inf
True
>>> ninf == ninf
True
>>> nan == nan  // nan對象時本身對象nan
False
>>> 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 實現(xiàn)使用空值進(jìn)行賦值 None就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在python3中使用shuffle函數(shù)要注意的地方

    在python3中使用shuffle函數(shù)要注意的地方

    今天小編就為大家分享一篇在python3中使用shuffle函數(shù)要注意的地方,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • OpenCV繪制圓角矩形的方法實例

    OpenCV繪制圓角矩形的方法實例

    我們在輪廓截取出來時一般需要是矩形的圖像,所以下面這篇文章主要給大家介紹了關(guān)于OpenCV繪制圓角矩形的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-08-08
  • Python使用minidom讀寫xml的方法

    Python使用minidom讀寫xml的方法

    這篇文章主要介紹了Python使用minidom讀寫xml的方法,實例分析了使用minidom模塊操作XML文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • python實現(xiàn)把兩個二維array疊加成三維array示例

    python實現(xiàn)把兩個二維array疊加成三維array示例

    今天小編就為大家分享一篇python實現(xiàn)把兩個二維array疊加成三維array示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 使用python檢測主機(jī)存活端口及檢查存活主機(jī)

    使用python檢測主機(jī)存活端口及檢查存活主機(jī)

    這篇文章主要介紹了使用python檢測主機(jī)存活端口及檢查存活主機(jī)的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • Python集合pop()函數(shù)使用方法詳解

    Python集合pop()函數(shù)使用方法詳解

    這篇文章主要介紹了Python 集合 pop()函數(shù)的使用方法,文中有詳細(xì)的代碼實例,講解的非常清楚,具有一定的參考價值,需要的朋友可以參考下
    2023-07-07
  • Python常見類型轉(zhuǎn)換的小結(jié)

    Python常見類型轉(zhuǎn)換的小結(jié)

    本文主要介紹了Python常見類型轉(zhuǎn)換的小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖

    python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖

    這篇文章主要為大家詳細(xì)介紹了python matplotlib畫圖庫學(xué)習(xí)繪制常用的圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • Python中的特殊方法以及應(yīng)用詳解

    Python中的特殊方法以及應(yīng)用詳解

    這篇文章主要給大家介紹了關(guān)于Python中特殊方法以及應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Python利用pynput實現(xiàn)劃詞復(fù)制功能

    Python利用pynput實現(xiàn)劃詞復(fù)制功能

    這篇文章主要為大家想詳細(xì)介紹了Python如何利用pynput實現(xiàn)劃詞復(fù)制功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05

最新評論

大丰市| 蒲城县| 循化| 九龙坡区| 襄垣县| 南华县| 乌兰察布市| 昭觉县| 巴马| 东莞市| 康定县| 汕尾市| 开封县| 塘沽区| 邻水| 茶陵县| 朔州市| 梁河县| 中牟县| 林周县| 磴口县| 岑溪市| 碌曲县| 漳州市| 阿合奇县| 丰都县| 涞水县| 浏阳市| 德格县| 浦县| 营山县| 墨竹工卡县| 瑞丽市| 江北区| 汨罗市| 阿拉善右旗| 洞头县| 密山市| 台北县| 和平县| 兴海县|