首页 > 解决方案 > 如何始终展平一个 numpy 数组?

问题描述

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

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

标签: pythonnumpy-ndarray

解决方案


停止使用matrixnumpy.matrix.flatten返回一个 1 行矩阵,因为它与matrix实例一样平坦。如果由于某种原因你死心塌地 using matrix,在展平之前转换为 ndarray matrix.A

flat = whatever_matrix.A.flatten()

或直接A1用于获取平面 ndarray:

flat = whatever_matrix.A1

推荐阅读