最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

numpy中的nonzero()的用法

当使用布尔数组直接作为下标对象或者元组下标对象中有布尔数组时,都相当于用nonzero()将布尔数组转换成一组整数数组,然后使用整数数组进行下标运算。

函数的作用

nonzero(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。

class A:
  def __nonzero__(self):
    print 'A._nonzero__()'
    return Trueprint 'A is not zero' if A() else 'A is zero'print bool(A())1234567

输入值:数组或矩阵 
返回输入值中非零元素的信息(以矩阵的形式) 
这些信息中包括 两个矩阵, 包含了相应维度上非零元素所在的行标号,与列标标号。 
例如:a=mat([ [1,0,0],[0,0,0],[0,0,0]]) 
则 nonzero(a) 
返回值为两个矩阵:(matrix([[0]], dtype=int32), matrix([[0]], dtype=int32)) , 
表示输入矩阵a只有1个非零值, 第一个matrix([[0]], dtype=int32)表示非零元素在第0行, 第二个matrix([[0]], dtype=int32)表示在第0行的第0列。

案例

案例1

b1=np.array([True,False,True,False])print(np.nonzero(b1))
(array([0, 2], dtype=int64),)123

例如对于一维布尔数组b1,nonzero(b1)所得到的是一个长度为1的元组,因为矩阵有两个非0值。它表示b1[0]和b1[2]的值不为0(False)。

案例2

b2=np.array([[True,False,True],[True,False,False]])print(np.nonzero(b2))
(array([0, 0, 1], dtype=int64), array([0, 2, 0], dtype=int64))123

对于二维数组b2,nonzero(b2)所得到的是一个长度为2的元组。因为矩阵b2只有3个非零值,它的第0个元素是数组a中值不为0的元素的第0轴的下标,第1个元素则是第1轴的下标,因此从下面的结果可知b2[0,0]、b[0,2]和b2[1,0]的值不为0:

案例3

当布尔数组直接做为numpy数组下标时,相当于使用由nonzero()转换之后的元组作为下标对象:

a = np.arange(3*4*5).reshape(3,4,5)print(a)print(a[np.nonzero(b2)])123

[[[ 0 1 2 3 4] 
[ 5 6 7 8 9] 
[10 11 12 13 14] 
[15 16 17 18 19]]

[[20 21 22 23 24] 
[25 26 27 28 29] 
[30 31 32 33 34] 
[35 36 37 38 39]]

[[40 41 42 43 44] 
[45 46 47 48 49] 
[50 51 52 53 54] 
[55 56 57 58 59]]]


[[ 0 1 2 3 4] 
[10 11 12 13 14] 
[20 21 22 23 24]]

案例4

为了观察变化,下面有一个例子:

from numpy.ma import nonzero, array
dataSet=array(    [[1,0,0,0],
    [0,1,0,0],
    [0,1,0,0],
    [0,0,0,1]])
a=dataSet[:,1]>0.5print(a)print('--------------')print(nonzero(a))print('--------------')print(nonzero(a)[0])print('--------------')print(dataSet[nonzero(a)[0],:])1234567891011121314

output:

[False  True  True False]--------------(array([1, 2], dtype=int64),)--------------[1 2]--------------[[0 1 0 0]
 [0 1 0 0]]12345678

案例五

推荐算法直通车


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消