python - 如何始终展平一个 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]]
。
这很烦人。为什么扁平化在这里失败,我怎么能把它变成一维形状?
解决方案
停止使用matrix
。numpy.matrix.flatten
返回一个 1 行矩阵,因为它与matrix
实例一样平坦。如果由于某种原因你死心塌地 using matrix
,在展平之前转换为 ndarray matrix.A
:
flat = whatever_matrix.A.flatten()
或直接A1
用于获取平面 ndarray:
flat = whatever_matrix.A1
推荐阅读
- swift - 在 Realm 数据中保存和使用数据,Swift
- reactjs - FlatList 渲染数组的顺序错误
- javascript - 为什么浏览器允许设置一些没有 CORS 的标头,但不允许设置其他标头?试图避免预检
- php - 如何在wordpress中解码奇怪的HTML实体,如'?
- r - R对列表中具有不同维度的矩阵求和并返回一个矩阵
- google-app-engine - 如果自动扩缩功能无法创建新实例,App Engine 请求会发生什么情况?
- visual-studio-2019 - Nuget 提示凭据
- lua - 有没有办法让 lua 脚本不那么滞后?
- c++ - 我在循环函数时遇到问题
- python - 街机 python 库的字体名称是什么?