直接上代碼吧~
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 20 10]
[50 90 60]]
(array([0, 0, 0, 1, 1, 1, 2, 2, 2], dtype=int64), array([0, 1, 2, 0, 1, 2, 0, 1, 2], dtype=int64))
第一個array為x軸 第二個array為y軸
補充:【Numpy學習】python查找矩陣中不為0元素的索引(np.nonzero())
在用矩陣分解方法做模型時,需要對模型的結(jié)果做驗證。
在驗證過程中需要mask訓練集、驗證集和測試集。
這時候就需要原矩陣S SS中不為0元素和為0元素的索引值,這個方法在matlab中是find方法,在用python實現(xiàn)時就需要np.nonzero()。
下面看一段代碼:
import numpy as np
a = np.arange(12).reshape(3, 4)
print(a)
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
print(np.nonzero(a))
(array([0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]))
值得注意的是np.nonzero(a)輸出的是兩個array第一個array中的值指的是行,第二個指的是列。
如0,1表明第0行第一列的值不為0。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 淺談python numpy中nonzero()的用法
- 關(guān)于numpy中np.nonzero()函數(shù)用法的詳解
- 講解Python3中NumPy數(shù)組尋找特定元素下標的兩種方法