如何一致地压扁numpy阵列?

时间:2018-05-21 17:11:49

标签: python numpy-ndarray

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

这很烦人。为什么flatten在这里失败,我怎么能把它变成一维形状呢?

1 个答案:

答案 0 :(得分:2)

停止使用matrixnumpy.matrix.flatten返回1行矩阵,因为它与matrix个实例一样平坦。如果由于某种原因您已经开始使用matrix,请在展平之前使用matrix.A转换为ndarray:

flat = whatever_matrix.A.flatten()

或只是使用A1直接获得平面ndarray:

flat = whatever_matrix.A1