Как я последовательно сглаживаю массив numpy? - PullRequest
0 голосов
/ 21 мая 2018
from numpy import array, eye, matrix

x = array([1, 0])
A = eye(2)
print(A.dot(x))

отпечатки [1. 0.].

С другой стороны,

B = matrix([[1, 0], [0, 1]])
print(B.dot(x))

печатает [[1 0]], что является массивом 1 на 2.Кроме того,

print(B.dot(x).flatten())

также печатает [[1 0]].

Это довольно раздражает.Почему сгладить здесь не удается, и как еще я могу получить это в 1-й форме?

1 Ответ

0 голосов
/ 21 мая 2018

Прекратить использование matrix.numpy.matrix.flatten возвращает матрицу из 1 строки, потому что она такая же плоская, как у matrix экземпляров.Если по какой-то причине вы не можете использовать matrix, преобразуйте в ndarray с matrix.A перед выравниванием:

flat = whatever_matrix.A.flatten()

или просто используйте A1, чтобы получить плоский ndarrayнапрямую:

flat = whatever_matrix.A1
...