首先,我试图在谷歌和网站上搜索我的问题(我认为这是非常基本的)的答案,但没有任何结果。
我正在尝试从 numpy 矩阵中获取行,但我做不到。例如,如果我使用这个:
result = numpy.matrix([[11, 12, 13],
[21, 22, 23],
[31, 32, 33]])
for p in result:
print(p[0])
打印这个:
[[11 12 13]]
[[21 22 23]]
[[31 32 33]]
如果我只使用 p
我必须做什么才能访问每一行? numpy.nditer(result)
打印一个数组,我需要每一行来执行一些操作。
原文由 exsnake 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是您正在使用
np.matrix
。使用np.array
代替并简单地迭代而不索引:解释
您看到的是
numpy.matrix
要求每一 行 有 2 个维度的效果。这对于 NumPy 来说是不必要的和反模式的。背后有一段历史
numpy.matrix
。最初使用它是为了方便矩阵乘法运算符。但这不再是一个问题,因为@
是可能的(Python 3.5+)而不是嵌套的dot
调用。因此,默认情况下,使用numpy.array
。