Python 关于数组矩阵变换函数numpy.nonzero(),numpy.multiply()用法

Posted 樟樟22

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 关于数组矩阵变换函数numpy.nonzero(),numpy.multiply()用法相关的知识,希望对你有一定的参考价值。

1.numpy.nonzero(condition),返回参数condition(为数组或者矩阵)中非0元素的索引所形成的ndarray数组,同时也可以返回condition中布尔值为True的值索引,其中,数值0为False,其余的都为True。

 1 >>>b=np.mat(np.arange(10)).T
 2 >>>b
 3 matrix([[0],
 4         [1],
 5         [2],
 6         [3],
 7         [4],
 8         [5],
 9         [6],
10         [7],
11         [8],
12         [9]])
13 >>>np.nonzero(b>2)
14 (array([3, 4, 5, 6, 7, 8, 9], dtype=int64),
15  array([0, 0, 0, 0, 0, 0, 0], dtype=int64))
16 >>>np.nonzero((b.A>2)*(b.A<8))
17  (array([3, 4, 5, 6, 7], dtype=int64), array([0, 0, 0, 0, 0], dtype=int64))
 1 >>> x = np.eye(3)
 2 >>> x
 3 array([[ 1.,  0.,  0.],
 4        [ 0.,  1.,  0.],
 5        [ 0.,  0.,  1.]])
 6 >>> np.nonzero(x)
 7 (array([0, 1, 2]), array([0, 1, 2]))
 8 >>>
 9 >>> x[np.nonzero(x)]
10 array([ 1.,  1.,  1.])
11 >>> np.transpose(np.nonzero(x))
12 array([[0, 0],
13        [1, 1],
14        [2, 2]]

其中np.nonzero((b.A>2)*(b.A<8))是返回数组b的值在范围2<b<8的索引。并且必须要求参数时数组,如果是矩阵会报错。

A common use for nonzero is to find the indices of an array, where a condition is True. Given an array a, the condition a > 3 is a boolean array and since False is interpreted as 0, np.nonzero(a > 3) yields the indices of the a where the condition is true.这个功能和numpy.where()的一种用法一样。

>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a > 3
array([[False, False, False],
       [ True,  True,  True],
       [ True,  True,  True]], dtype=bool)
>>> np.nonzero(a > 3)
(array([1, 1, 1, 2, 2, 2]), array([0, 1, 2, 0, 1, 2]))

  

2numpy.multiply()

 

以上是关于Python 关于数组矩阵变换函数numpy.nonzero(),numpy.multiply()用法的主要内容,如果未能解决你的问题,请参考以下文章

请教一道矩阵理论的题目,关于Givens变换和Householder变换的,题目如图所示?

计算机图形学关于旋转变换矩阵的问题

python-opencv几何变换--仿射变换透视变换

NumPy常用函数——构造数组函数及代码示例

Python科学计算类库

numpy的矩阵乘法