直接上代码吧~
1
2
3
4
5
6
7
8
9
|
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())
在用矩阵分解方法做模型时,需要对模型的结果做验证。
在验证过程中需要mask训练集、验证集和测试集。
这时候就需要原矩阵S SS中不为0元素和为0元素的索引值,这个方法在matlab中是find方法,在用python实现时就需要np.nonzero()。
下面看一段代码:
1
2
3
4
5
6
7
8
|
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。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_35899407/article/details/89839635