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

Numpy判斷數(shù)組是否全0的三種方法

 更新時(shí)間:2024年12月08日 11:26:52   作者:笨牛慢耕  
本文介紹了三種判斷NumPy數(shù)組是否全為零的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

0 概要

簡(jiǎn)單介紹幾種用于判斷numpy數(shù)組是否全零的測(cè)試方法。

1 numpy.any()

numpy.any()函數(shù)用于檢查一個(gè)numpy數(shù)字是否存在任何一個(gè)非0元素,因此將numpy.any()的結(jié)果取反即得“numpy數(shù)組是否全0”的結(jié)果。例如:      

import numpy as np

print('Using numpy.any()...')
a_1D = np.zeros(5)
print('Is a_1D all zeros?: ', not(np.any(a_1D)))
print('Is a_1D all zeros?: ', ~(np.any(a_1D)))
a_1D[2] = -1
print('Is a_1D all zeros?: ', not(np.any(a_1D)))

a_2D = np.zeros((2,3))
print(a_2D)
print('Is a_2D all zeros?: ', not(np.any(a_2D)))
a_2D[1,2] = 0.1
print('Is a_2D all zeros?: ', not(np.any(a_2D)))

輸出結(jié)果:

Using numpy.any()...
Is a_1D all zeros?:  True
Is a_1D all zeros?:  True
Is a_1D all zeros?:  False
[[0. 0. 0.]
[0. 0. 0.]]
Is a_2D all zeros?:  True
Is a_2D all zeros?:  False

注意,python中邏輯取反可以用"~"也可以用"not",但是不能用“!”(“!=”是比較運(yùn)算符--comparison operator, 只能用于比如說"b!=c"這樣)。另外,"~"和"not"也是有區(qū)別的,參見以下第4節(jié)。

2 numpy.count_nonzero()

numpy.count_nonzero()用于對(duì)數(shù)組的0元素個(gè)數(shù)進(jìn)行計(jì)數(shù),因此也可以用來執(zhí)行是否全0的判斷。用法如下:

print('Using numpy.nonzero()...')
a = np.array([1,2,3,0,0,1])
print('Number of zeros in a = ',np.count_nonzero(a))
print('Is a all zeros?: ', np.count_nonzero(a)==0)
a[:] = 0 # Force a to all-zeros array
print('Is a all zeros?: ', np.count_nonzero(a)==0)
print('Is a all zeros?: ', not np.count_nonzero(a))

Using numpy.nonzero()...
Number of zeros in a =  4
Is a all zeros?:  False
Is a all zeros?:  True
Is a all zeros?:  True 

3 numpy.all()  

用numpy.all()也可以實(shí)現(xiàn)這一功能。以下例子利用了python內(nèi)部會(huì)自動(dòng)進(jìn)行0--False, 1--True的轉(zhuǎn)換。

print('')
print('Using numpy.all()...')
a = np.zeros(10)
print('Is a all zeros?: ', np.all(a==0))

Using numpy.all()...
Is a all zeros?:  True 

4. 多維數(shù)組可以分axis進(jìn)行判斷

對(duì)于多維數(shù)組(這正是numpy正真發(fā)揮強(qiáng)悍實(shí)力的地方)以上函數(shù)在缺省情況下是對(duì)整個(gè)數(shù)組進(jìn)行統(tǒng)一判斷,但是也可以通過axis參數(shù)指定沿指定軸分別處理。如下例所示:

print('')
print('Judge according to the specified axis')
a_2D = np.zeros((2,3))
a_2D[1,2] = 0.1
print(a_2D)
print('Is each col of a_2D all zeros?: ', ~(np.any(a_2D, axis=0)))
print('Is each row of a_2D all zeros?: ', ~(np.any(a_2D, axis=1)))

Judge according to the specified axis
[[0.  0.  0. ]
 [0.  0.  0.1]]
Is each col of a_2D all zeros?:  [ True  True False]
Is each row of a_2D all zeros?:  [ True False]

當(dāng)指定axis=0時(shí)相當(dāng)于對(duì)2維數(shù)組按列判斷是否全0,指定axis=1時(shí)相當(dāng)于對(duì)2維數(shù)組按行判斷是否全0。當(dāng)然,這里所說的行和列的概念是從傳統(tǒng)的2維數(shù)組或者矩陣?yán)锢^承而來的概念,當(dāng)考慮更高維數(shù)組的時(shí)候,行和列這個(gè)概念就不再適用了。關(guān)于高維數(shù)組(也稱:Tensor,張量)的axis將另文介紹。

另外,前面提到表示邏輯取反的“~”和“not”是有所不同的。具體來說就是,not只接受一個(gè)操作數(shù),因此以上這個(gè)例子如果將"~"改為not的話會(huì)報(bào)錯(cuò),如下所示:

print('Is each col of a_2D all zeros?: ', not(np.any(a_2D, axis=0)))
print('Is each row of a_2D all zeros?: ', not(np.any(a_2D, axis=1)))

報(bào)錯(cuò)如下: 

而“~”是所謂的Bitwise NOT operator.

如果"~"的輸入是一個(gè)整數(shù)的的話,它會(huì)將輸入數(shù)的所有比特都取反。如果是一個(gè)numpy 數(shù)組的話,則會(huì)對(duì)其中每一個(gè)數(shù)執(zhí)行按位邏輯取反操作。如果是一個(gè)numpy布爾類型(True, False)數(shù)組的話,則會(huì)對(duì)其中每一個(gè)布爾數(shù)執(zhí)行邏輯取反操作--以上例子中正是這種用法。

到此這篇關(guān)于Numpy判斷數(shù)組是否全0的三種方法的文章就介紹到這了,更多相關(guān)Numpy判斷數(shù)組是否全0內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用PyQtGraph繪制精美的股票行情K線圖的示例代碼

    使用PyQtGraph繪制精美的股票行情K線圖的示例代碼

    這篇文章主要介紹了使用PyQtGraph繪制精美的股票行情K線圖的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python中的占位符pass用法

    Python中的占位符pass用法

    在 Python 中,pass 是一個(gè)空操作語句,表示“什么都不做”,它通常用作占位符,用于在語法上需要語句但實(shí)際不需要執(zhí)行任何操作的場(chǎng)景,本文給大家介紹Python中的占位符pass用法,感興趣的朋友一起看看吧
    2025-04-04
  • python中base64編碼簡(jiǎn)介

    python中base64編碼簡(jiǎn)介

    Base64是一種任意二進(jìn)制到文本字符串的編碼方法,常用于在URL、Cookie、網(wǎng)頁中傳輸少量二進(jìn)制數(shù)據(jù),Base64是一種用64個(gè)字符來表示任意二進(jìn)制數(shù)據(jù)的方法,這篇文章主要介紹了python中base64編碼,需要的朋友可以參考下
    2022-12-12
  • python裝飾器底層原理詳解

    python裝飾器底層原理詳解

    這篇文章主要介紹了python裝飾器底層原理講解,被裝飾對(duì)象加上裝飾器,被裝飾對(duì)象獲得了更強(qiáng)大的功能,更多相關(guān)內(nèi)容,需要的朋友可以參考一下
    2022-07-07
  • pandas使用之寬表變窄表的實(shí)現(xiàn)

    pandas使用之寬表變窄表的實(shí)現(xiàn)

    這篇文章主要介紹了pandas使用之寬表變窄表的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 基于Pygame實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲

    基于Pygame實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲

    Pygame是一個(gè)專門用來開發(fā)游戲的Python模塊,主要用于開發(fā)、設(shè)計(jì)?2D?電子游戲。本文主要為大家介紹了通過Pygame制作一個(gè)簡(jiǎn)單的貪吃蛇游戲,感興趣的同學(xué)可以關(guān)注一下
    2021-12-12
  • PyCharm 配置遠(yuǎn)程python解釋器和在本地修改服務(wù)器代碼

    PyCharm 配置遠(yuǎn)程python解釋器和在本地修改服務(wù)器代碼

    這篇文章主要介紹了PyCharm 配置遠(yuǎn)程python解釋器和在本地修改服務(wù)器代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • numpy.linalg.eig() 計(jì)算矩陣特征向量方式

    numpy.linalg.eig() 計(jì)算矩陣特征向量方式

    今天小編就為大家分享一篇numpy.linalg.eig() 計(jì)算矩陣特征向量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 淺析Python中g(shù)etattr和getattribute的調(diào)用

    淺析Python中g(shù)etattr和getattribute的調(diào)用

    在Python中,getattr和getattribute是兩個(gè)用于屬性訪問的重要函數(shù),它們可以在運(yùn)行時(shí)動(dòng)態(tài)地獲取對(duì)象的屬性或自定義屬性訪問行為,下面我們就來學(xué)習(xí)一下它們的具體用法吧
    2023-11-11
  • pytest接口測(cè)試之fixture傳參數(shù)request的使用

    pytest接口測(cè)試之fixture傳參數(shù)request的使用

    本文主要介紹了pytest接口測(cè)試之fixture傳參數(shù)request的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評(píng)論

扎鲁特旗| 玛纳斯县| 绥滨县| 鄂托克旗| 新巴尔虎左旗| 台南市| 瓮安县| 五河县| 武隆县| 井陉县| 纳雍县| 定结县| 永济市| 开原市| 滦平县| 宝坻区| 鄂伦春自治旗| 潮安县| 九寨沟县| 石嘴山市| 呼和浩特市| 温泉县| 乌鲁木齐市| 娱乐| 彭泽县| 吉木乃县| 广宁县| 新化县| 韶关市| 平原县| 木兰县| 英超| 来凤县| 宁安市| 皮山县| 鞍山市| 濮阳市| 天长市| 津南区| 东阿县| 广州市|