收藏本站 收藏本站
積木網首頁 - 軟件測試 - 常用手冊 - 站長工具 - 技術社區
首頁 > python > 正文

首頁 - PHP - 數據庫 - 操作系統 - 游戲開發 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell編程 - DOS命令 - jQuery - CSS樣式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

關于numpy中np.nonzero()函數用法的詳解

np.nonzero函數是numpy中用于得到數組array中非零元素的位置(數組索引)的函數。一般來說,通過help(np.nonzero)能夠查看到該函數的解析與例程。但是,由于例程為英文縮寫,閱讀起來還是很費勁,因此,本文將其英文解釋翻譯成中文,便于理解。

解釋

nonzero(a)

返回數組a中非零元素的索引值數組。

(1)只有a中非零元素才會有索引值,那些零值元素沒有索引值;

(2)返回的索引值數組是一個2維tuple數組,該tuple數組中包含一維的array數組。其中,一維array向量的個數與a的維數是一致的。

(3)索引值數組的每一個array均是從一個維度上來描述其索引值。比如,如果a是一個二維數組,則索引值數組有兩個array,第一個array從行維度來描述索引值;第二個array從列維度來描述索引值。

(4) 該np.transpose(np.nonzero(x))

函數能夠描述出每一個非零元素在不同維度的索引值。

(5)通過a[nonzero(a)]得到所有a中的非零值

#a是1維數組
a = [0,2,3]
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)

結果:
2
(array([1, 2], dtype=int64),)

說明:索引1和索引2的位置上元素的值非零。

#a是2維數組
a = np.array([[0,0,3],[0,0,0],[0,0,9]])
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)
print(np.transpose(np.nonzero(a)))

結果:
2
(array([0, 2], dtype=int64), array([2, 2], dtype=int64))
[[0 2]
[2 2]]

說明:

(1)a中有2個非零元素,因此,索引值tuple中array的長度為2。因為,只有非零元素才有索引值。

(2)索引值數組是2 維的。實際上,無論a的維度是多少,索引值數組一定是2維的tuple,但是tuple中的一維array個數和a的維數一致。

(3)第1個array([0, 2])是從row值上對3和9進行的描述。第2個array([2, 2])是從col值上對3和9的描述。這樣,從行和列上兩個維度上各用一個數組來描述非零索引值。

(4)通過調用np.transpose()函數,得出3的索引值是[0 2],即第0行,第2列。


#a是3維數組

a = np.array([[[0,0],[1,0]],[[0,0],[1,0]],[[0,0],[1,0]]])
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)

結果:

2
(array([0, 1, 2], dtype=int64), array([1, 1, 1], dtype=int64), array([0, 0, 0], dtype=int64))

說明:由于a是3維數組,因此,索引值數組有3個一維數組。

注:數組索引值從0開始。

以上這篇關于numpy中np.nonzero()函數用法的詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持積木網。

Python處理文本文件中控制字符的方法
控制字符控制字符(ControlCharacter),或者說非打印字符,出現于特定的信息文本中,表示某一控制功能的字符,如控制符:LF(換行)、CR(回車)、FF

python3使用PyMysql連接mysql數據庫實例
python語言的3.x完全不向前兼容,導致我們在python2.x中可以正常使用的庫,到了python3就用不了了.比如說mysqldb目前MySQLdb并不支持python3.x,Python3.x連接MySQL的方

詳解python中字典的循環遍歷的兩種方式
開發中經常會用到對于字典、列表等數據的循環遍歷,但是python中對于字典的遍歷對于很多初學者來講非常陌生,今天就來講一下python中字典的循環遍

本周排行

更新排行

強悍的草根IT技術社區,這里應該有您想要的! 友情鏈接:b2b電子商務
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP備05050695號
手游棋牌游戏运营
福彩快乐十分app 竞彩波胆 山东群英会开奖走势 3d独胆必下 三肖期期开奖 澳门最厉害的扒仔心经 吉林快3开奖结果走势图 中国福老时时网 快乐12直选前3 时时彩计自由的百科天堂 牌九大小 今天广西快乐双彩开奖号码是什么 重庆时时露珠网址 白小姐开奖免费下载 安徽时时 梭哈广东话怎么说