Матрица Python Numpy - вернуть значение, содержащееся в матрице? - PullRequest
1 голос
/ 05 февраля 2011

У меня есть матрица 1x1, которая содержит значение. Я хочу только значение.

матрица ([[- 0,16666667 + 0.66666667j]])

Я хочу комплексное число внутри этой матрицы. Как мне это получить?

Ответы [ 2 ]

8 голосов
/ 05 февраля 2011
>>> 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

[Отредактировано для исправления разницы в знаках между моим номером и ОП. Ничего не меняет, но не мог смотреть на это, как только заметил ...]

5 голосов
/ 05 февраля 2011

Следующий фрагмент кода 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...