python - 循环遍历 numpy 矩阵

标签 python python-3.x numpy for-loop matrix

为什么下面的代码不起作用?

import numpy

grid = numpy.matrix([[1,0,1,1],[1,1,0,0],[1,0,1,0],[0,0,0,1]])
i = 0
for line in grid:
    for block in line:
        if block == 1:
            i += 1    
print("Grid has " + str(i) + " times number 1")

我认为它会首先循环遍历每一行,然后循环该行的每个元素并将其与 1 进行比较,但我收到此错误:

Traceback (most recent call last):
File "python", line 7, in <module>
ValueError: The truth value of an array with more than one element is 
ambiguous. Use a.any() or a.all()

最佳答案

迭代 numpy.matrix 矩阵会生成 1 行 numpy.matrix 矩阵,每一行一个。

迭代 1 行 numpy.matrix 矩阵会生成 1 行 numpy.matrix 矩阵,而不是单个单元格。

不要使用numpy.matrix。这根本不值得。另外,如果可以的话,根本不要循环 NumPy 对象:

grid = numpy.array([[1,0,1,1],[1,1,0,0],[1,0,1,0],[0,0,0,1]])
i = grid.sum()

关于python - 循环遍历 numpy 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47780180/

相关文章:

python - numpy:沿新轴扩展数组?

python - 使用 QWebView 请求的 POST 请求

python - 使用三元运算符解压列表

python - 如何在 Tornado 中实现可中断的 time.sleep?

python - python中逆ERF函数的命令

用于在 Azure 中创建订阅的 Python 代码

python - 如何在python 3.7中安装金字塔arima

python - (Python : discord. py)错误 : Could not build wheels for multidict, 使用 PEP 517 且无法直接安装的 yarl

python - 在 Pandas/Numpy 中,如何使用 2 个不同的列在每个 block 内实现滚动功能?

python - 神经网络优化失败(使用 Scipy fmin_cg)