Python Numpy Matrix - 返回矩阵中包含的值?

the*_*ame 1 python numpy matrix

我有一个包含值的1x1矩阵.我只想要价值.

矩阵([[ - 0.16666667 + 0.66666667j]])

我想要那个矩阵里面的复数.我怎么得到它?

DSM*_*DSM 8

>>> m = matrix([[-1.0/6 + (2.0j/3)]])
>>> m
matrix([[-0.16666667+0.66666667j]])
>>> m.shape
(1, 1)
>>> m[0,0]
(-0.16666666666666666+0.66666666666666663j)
>>> m[(0,0)]
(-0.16666666666666666+0.66666666666666663j)
Run Code Online (Sandbox Code Playgroud)

或者,当我们在它时:

>>> m.tolist()[0][0] # seldom useful, though
(-0.16666666666666666+0.6666666666666666j)
>>> m.flat[0]  # more frequently useful
(-0.16666666666666666+0.66666666666666663j)
Run Code Online (Sandbox Code Playgroud)

为了说服OP,上述实际上是一个复数:^) -

>>> m[(0,0)]
(-0.16666666666666666+0.66666666666666663j)
>>> type(m[(0,0)])
<type 'numpy.complex128'>
>>> x = m[(0,0)]
>>> x + 3
(2.8333333333333335+0.66666666666666663j)
>>> abs(x)
0.68718427093627676
>>> x.real
-0.16666666666666666
>>> x.imag
0.66666666666666663
Run Code Online (Sandbox Code Playgroud)

[编辑纠正我的号码和OP之间的符号差异.一旦我注意到,没有改变任何东西但是看不到它......


Ric*_*uhr 5

以下Python代码段似乎也可以使用上面示例中的数据.

import numpy

m = numpy.matrix([[-0.16666667+0.66666667j]])

print m.item(0)

# the result of running the above is 
(-0.16666667+0.66666667j)
Run Code Online (Sandbox Code Playgroud)

  • 请注意,由于矩阵只有一个元素,因此不需要参数“0”,您可以简单地使用“m.item()” (2认同)