python - 有没有更简洁的方法可以用 numpy 遍历矩阵的列?
问题描述
我用它来遍历一个 numpy 矩阵的列:
import numpy as np
A = np.random.randn(4,3)
for c in A.T:
print c.shape # (4L,) => not a real column
c = np.array(c, ndmin=2).T
print c.shape # (4L, 1L) => OK
有没有更好的方法来迭代列,避免循环内的重新定义和 double transpose
:
for c in A.T:
c = np.array(c, ndmin=2).T
?
注意:我已经阅读了如何迭代矩阵的列?.
解决方案
您可以转置,然后在最右边添加一个维度
A.T[..., None]
或者,等效地,在最左边添加一个维度,然后转置
A[None].T
无论哪种情况,您都会得到一个 (3, 4, 1) 形状的数组,然后您可以对其进行迭代。
您可以在 numpy 文档https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html中阅读一般索引和省略号(“...”)文字
推荐阅读
- javascript - 不和谐机器人 | 不和谐.js | TypeError:无法读取未定义的属性“长度”
- ios - ios Flutter应用程序的webview中的键盘不显示
- google-cloud-platform - 使用 SSH 连接时,Google 计算引擎卡在连接上
- html - 输入文本字段与其包含的图标不同
- tekton - Tekton 如何控制任务中的步骤顺序?
- html - CSS3 动画:来回控制
- android - 数据未从 sqlite 获取到列表视图 - android
- python - 当 MySQL 连接器由于 Internet 或 wifi 掉线而失去连接时,Python 脚本会挂起
- c# - ASP.NET Core 中枚举的自定义验证器
- c# - 从 WPF 应用程序中的代码访问 xml 数据