nonzeros函数,python nonzero()[0]
当jmdkn数组直接作为下标对象或者元组下标对象中有jmdkn数组时,相当于把jmdkn数组转换成一组非零()的整数数组,然后用整数数组进行下标操作。
# # #函数的函数
非零(A)返回数组A中非零元素的下标,它的返回值是一个长度为a.ndim(数组A的轴数)的元组。元组的每个元素都是一个整数数组,它的值是对应轴上非零元素的下标的值。
Class: def _ _非零_ _ (self): print a. _非零_ _()返回true print a不为零 if a () else a为零 print bool (a ()) * *输入值:* *数组或矩阵
返回输入值中非零元素的信息(以矩阵的形式)
这些信息包括两个矩阵,包括相应维度中非零元素的行标签和列标签。
例如:a=mat ([[1,0,0],[0,0,0],[0,0,0]])
然后非零(a)返回值为两个矩阵: (matrix ([[0]],dtype=int32),matrix ([[0]],dtype=int32),
指示输入矩阵A只有一个非零值。第一个矩阵([[0]],dtype=int32)表示非零元素位于第0行,第二个矩阵([[0]],dtype=int32)表示非零元素位于第0行的第0列。
# # #案例
# # # #案例1
B1=NP。数组([真,假,真,假])打印(NP。非零(b1)) (array ([0,2),dtype=int64),)例如,对于一维jmdkn数组b1,非零(B1)得到一个长度为1的元组,因为该矩阵有两个非零值。表示b1[0]和b1[2]不为0(假)。
# # # #案例2
B2=NP。数组([真,假,真],[真,假,假]]) print (NP。非零(b2)) (array ([0,0,1),dtype=int64),array ([0,2,0),dtype=由于矩阵b2只有三个非零值,其第0个元素是数组A中非零元素的第0轴的下标,第1个元素是第1轴的下标,所以从下面的结果可以看出b2[0,0],b[0,2]和b2[1,0]的值都不为零:
# # # #案例3
当jmdkn数组直接作为numpy数组的下标时,相当于使用非零()转换的元组作为下标对象:
a=np.arange(3*4*5)。整形(3,4,5)打印(a)打印(a[np .非零(b2)]) [[[ 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非零,arraydataSet=array( [[1,0,0,0,0],[0,1,0,0],[0,0,0,0,1]])a=dataSet[:1]0.5print(a)print( - )print(非零(a))print( - )print(非零(a)[0])print(-)print(dataSet[非零(a)[0],]) output:
[false true true false] - (array ([1,2),dtype=int64),)-。
推荐算法直通车
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。