numpy nonzero 使用和簡單的索引方式

2021-08-18 15:15:56 字數 1646 閱讀 6902

test_array = np.asarray([[1,2,3],[4,5,6],[7,8,9]])
print(test_array>5)
輸出結果是
[[false false false]

[false false true]

[ true true true]]

print(np.nonzero(test_array>5))
結果是
(array([1, 2, 2, 2], dtype=int32), array([2, 0, 1, 2], dtype=int32))

也就是生成乙個tuple, 有兩個陣列構成。第乙個陣列是非零(false)的元素的行索引。第二個陣列是非零(false)的元素的列索引。也就是(1,2),(2,0),(2,1),(2,2)位置對應的元素非零的

索引從第0列開始,如果只比較第1列上的值:

print(test_array[:,1]>5)
[false false  true]

print(np.nonzero(test_array[:,1]>5))
(array([2], dtype=int32),)

nonzero返回的還是乙個tuple元組,但是只有乙個元素

比較常用的是有兩個陣列。 根據乙個條件判斷其中乙個陣列的元素, 根據判斷結果,提取另乙個陣列的元素。這兩個陣列可以是相同的。

test_array = np.asarray([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
index_array = np.asarray([[0, 2, 0],
[0, 0, 0],
[0, 2, 2]])
例子a:找到index_array中所有第1列不為0的行,找到第0行和第2行,
從test_array中提取對應的行。
condition_index= np.nonzero( index_array [:,1] !=0 )

print(condition_index)

print( test_array[condition_index] )

輸出:
(array([0, 2], dtype=int32),)

[[1 2 3]

[7 8 9]]

另乙個例子:找到index_array中所有不為0的元素,找到(0,1),(2,1),(2,2). 從

test_array中提取對應行列的元素

condition_index= np.nonzero( index_array != 0 )  

print(condition_index)

print( test_array[condition_index] )

輸出:
(array([0, 2, 2], dtype=int32), array([1, 1, 2], dtype=int32))

[2 8 9]

使用numpy nonzero 找出非0元素

import numpy as np a np.array 30,40,70 80,20,10 50,90,60 print a print np.nonzero a 30 40 70 80 2jdtgsnlpnz0 10 50 90程式設計客棧 60 array 0,0,0,1,1,1,2,2,2...

CASpringAnimation使用和屬性解析

caspringanimation ios9 才引入的動畫類,它繼承於 cabaseanimation 用於製作彈簧動畫效果。首先來看乙個簡單的例子,鐘擺 如果沒有阻力,將一直搖擺下去,如下圖 如果是無摩擦力情況下,那麼就會類似於下圖的運動軌跡 在真實的世界中,系統將由於摩擦力的存在而缺少動力並最終...

mac使用和linux命令使用

command n快速開啟當前 1.cd 你的資料夾路徑的上一級目錄。2.sudo chmod r 777 你的資料夾名。3.輸入密碼。4.成功which git ren png jpg 重新命名檔案 touch nash 建立檔案 cp test test2 複製檔案 cp rv textcopt...