Python Numpy 矩阵 - 如何返回矩阵中的值?
我有一个1x1的矩阵,里面包含一个值。我只想要这个值。
这个矩阵看起来是这样的:matrix([[-0.16666667+0.66666667j]])
我想要这个矩阵里的复数。请问我该怎么拿到它呢?
2 个回答
6
下面这个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)
9
>>> 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)
或者,顺便提一下:
>>> m.tolist()[0][0] # seldom useful, though
(-0.16666666666666666+0.6666666666666666j)
>>> m.flat[0] # more frequently useful
(-0.16666666666666666+0.66666666666666663j)
为了让提问者相信上面的内容其实是一个复数 :^) --
>>> 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
[编辑过,修正了我这个数字和提问者的数字之间的符号差异。虽然这并不影响结果,但一旦我注意到就忍不住想改正..]