索引numpy.matrix的行,列,元素

我不了解访问numpy.matrix中的元素,行和列的规则。这是一个示例:

import numpy as np
m = np.matrix( [ [ 0,1,2 ] ] )
print( "m:",m )
print( "m[0]:",m[ 0 ] )
print( "m[0,]",m[ 0,] )
print( "m[0,:]",: ] )
print( "m[0,i]",0 ],1 ],2 ] )

这是它的打印内容:

m: [[0 1 2]]
m[0]: [[0 1 2]]
m[0,] [[0 1 2]]
m[0,:] [[0 1 2]]
m[0,i] 0 1 2

似乎numpy.matrix的工作方式不同于numpy.array或Python 2D列表。有人可以指出关于numpy.matrix的索引工作方式的简要说明吗?而且,是否有比最后一行代码更简洁的方式来提取(1,n)numpy.matrix的所有元素,就像是一维容器一样?

wqqweqe 回答:索引numpy.matrix的行,列,元素

矩阵始终为2d。行索引(您的大多数示例正在执行)仍返回2d数组。

In [1]: m = np.matrix([[ 0,1,2]])                                               
In [2]: m                                                                       
Out[2]: matrix([[0,2]])
In [3]: m[0]                                                                    
Out[3]: matrix([[0,2]])      # note the 'matrix' display

索引元素:

In [4]: m[0,1]                                                                  
Out[4]: 1

矩阵作为常规数组:

In [6]: m.A                                                                     
Out[6]: array([[0,2]])      # still 2d

列表:

In [7]: m.tolist()                                                              
Out[7]: [[0,2]]

m作为一维数组:

In [8]: m.A1                                                                    
Out[8]: array([0,2])           # in effect m.A.ravel()

您不必使用np.matrix,尤其是在令人困惑的情况下。正在淘汰中。

本文链接:https://www.f2er.com/3143088.html

大家都在问