开发者

Python Numpy Matrix - Return the value contained in the matrix?

开发者 https://www.devze.com 2023-02-09 05:09 出处:网络
I have a 1x1 matrix that contains a value. I want just the value. matrix([[-0.16666667+0.6666开发者_开发问答6667j]])

I have a 1x1 matrix that contains a value. I want just the value.

matrix([[-0.16666667+0.6666开发者_开发问答6667j]])

I want the complex number inside that matrix. How do I get it?


>>> 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)

or, while we're at it:

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

To convince the OP that the above is actually a complex number :^) --

>>> 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

[Edited to correct a sign difference between my number and the OP's. Doesn't change anything but couldn't stand looking at it once I noticed..]


The following Python snippet also seems to work, using the data in your example above.

import numpy

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

print m.item(0)

# the result of running the above is 
(-0.16666667+0.66666667j)
0

精彩评论

暂无评论...
验证码 换一张
取 消