Python Numpy 矩阵 - 如何返回矩阵中的值?

2 投票
2 回答
17801 浏览
提问于 2025-04-16 11:16

我有一个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

[编辑过,修正了我这个数字和提问者的数字之间的符号差异。虽然这并不影响结果,但一旦我注意到就忍不住想改正..]

撰写回答