欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

0 概要

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

1 numpy.any()

numpy.any()函數(shù)用于檢查一個numpy數(shù)字是否存在任何一個非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",但是不能用“!”(“!=”是比較運算符--comparison operator, 只能用于比如說"b!=c"這樣)。另外,"~"和"not"也是有區(qū)別的,參見以下第4節(jié)。

2 numpy.count_nonzero()

numpy.count_nonzero()用于對數(shù)組的0元素個數(shù)進(jìn)行計數(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()也可以實現(xiàn)這一功能。以下例子利用了python內(nèi)部會自動進(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)行判斷

對于多維數(shù)組(這正是numpy正真發(fā)揮強悍實力的地方)以上函數(shù)在缺省情況下是對整個數(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時相當(dāng)于對2維數(shù)組按列判斷是否全0,指定axis=1時相當(dāng)于對2維數(shù)組按行判斷是否全0。當(dāng)然,這里所說的行和列的概念是從傳統(tǒng)的2維數(shù)組或者矩陣?yán)锢^承而來的概念,當(dāng)考慮更高維數(shù)組的時候,行和列這個概念就不再適用了。關(guān)于高維數(shù)組(也稱:Tensor,張量)的axis將另文介紹。

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

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)))

報錯如下: 

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

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

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

相關(guān)文章

  • Python中pandas庫的常用操作實例

    Python中pandas庫的常用操作實例

    這篇文章主要介紹了Python中pandas庫的常用操作實例,Pandas 庫是一個免費、開源的第三方 Python 庫,是 Python 數(shù)據(jù)分析必不可少的工具之一,它為 Python 數(shù)據(jù)分析提供了高性能,且易于使用的數(shù)據(jù)結(jié)構(gòu),即 Series 和 DataFrame,需要的朋友可以參考下
    2023-07-07
  • Pytorch使用VGG16模型進(jìn)行預(yù)測貓狗二分類實戰(zhàn)

    Pytorch使用VGG16模型進(jìn)行預(yù)測貓狗二分類實戰(zhàn)

    VGG16是Visual Geometry Group的縮寫,它的名字來源于提出該網(wǎng)絡(luò)的實驗室,本文我們將使用PyTorch來實現(xiàn)VGG16網(wǎng)絡(luò),用于貓狗預(yù)測的二分類任務(wù),我們將對VGG16的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行適當(dāng)?shù)男薷?以適應(yīng)我們的任務(wù),需要的朋友可以參考下
    2023-08-08
  • Django框架教程之中間件MiddleWare淺析

    Django框架教程之中間件MiddleWare淺析

    這篇文章主要給大家介紹了關(guān)于Django框架教程之中間件MiddleWare的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Django框架具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python獲取中國節(jié)假日數(shù)據(jù)記錄入JSON文件

    Python獲取中國節(jié)假日數(shù)據(jù)記錄入JSON文件

    項目系統(tǒng)內(nèi)置的日歷應(yīng)用為了提升用戶體驗,特別設(shè)置了在調(diào)休日期顯示“休”的UI圖標(biāo)功能,那么問題是這些調(diào)休數(shù)據(jù)從哪里來呢?我嘗試一種更為智能的方法:Python獲取中國節(jié)假日數(shù)據(jù)記錄入JSON文件
    2025-04-04
  • python3 使用函數(shù)求兩個數(shù)的和與差

    python3 使用函數(shù)求兩個數(shù)的和與差

    這篇文章主要介紹了python3 使用函數(shù)求兩個數(shù)的和與差,具有很好的參考價值,希望對大家有所幫助。
    2021-05-05
  • Python合并Excel中sheet表的示例代碼

    Python合并Excel中sheet表的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)將Excel中的五個表合成一個表,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • python 字典有序并寫入json文件過程解析

    python 字典有序并寫入json文件過程解析

    這篇文章主要介紹了python 字典有序并寫入json文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • python3圖片轉(zhuǎn)換二進(jìn)制存入mysql

    python3圖片轉(zhuǎn)換二進(jìn)制存入mysql

    MYSQL是支持把圖片存入數(shù)據(jù)庫的,也相應(yīng)的有一個專門的字段BLOB (Binary Large Object),即較大的二進(jìn)制對象字段,看下面代碼
    2013-12-12
  • pytorch?tensor內(nèi)所有元素相乘實例

    pytorch?tensor內(nèi)所有元素相乘實例

    這篇文章主要介紹了pytorch?tensor內(nèi)所有元素相乘實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python+OpenCV實現(xiàn)基于顏色的目標(biāo)識別

    Python+OpenCV實現(xiàn)基于顏色的目標(biāo)識別

    這篇文章主要介紹了利用OpenCV實現(xiàn)基于顏色的目標(biāo)識別,即讓攝像頭識別到視野范圍內(nèi)的有顏色的氣球并返回每個氣球的中心點坐標(biāo),感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-01-01

最新評論