import numpy as np
mat = np.random.randint(2, size=(100000,100))
我希望遍历这个矩阵,如果每个row
完全包含1或0,我希望将state
变量更改为该值。state
的初始值为0。
state = 0
for row in mat:
if set(row) == {1}:
state = 1
elif set(row) == {0}:
state = 0
else:
row[:] = state
谁能告诉我如何利用numpy
来向量化这个循环并加速它?
因此,对于示例输入
array([[0, 1, 0],
[0, 0, 1],
[1, 1, 1],
[0, 0, 1],
[0, 0, 1]])
在这种情况下,预期输出将是
array([[0, 0, 0],
[0, 0, 0],
[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
https://stackoverflow.com/questions/56757804
复制相似问题