how to change element in 2D array in python
我打算将二维布尔数组的值从"真"更改为"假",但代码不起作用。即使我使用语句b[r]=false,输出结果也是一样的。有人能帮我一下吗,谢谢。
1 2 3 4 5 6 7 8 9 | import numpy as np b = np.array([[True for j in range(5)] for i in range(5)]) print(b) for r in b: for c in r: b[r][c] = False print(b) |
您需要使用
1 2 3 4 5 6 7 8 9 | import numpy as np b = np.array([[True for j in range(5)] for i in range(5)]) print(b) for i, r in enumerate(b): for j, c in enumerate(r): b[i,j] = False print(b) |
你可以在麻木中使用广播。(适用于没有for循环的所有元素。)
1 2 3 | a =np.array([True]*25).reshape(5,5) b = a * False print(b) |
true的计算结果为1,false的计算结果为0所以1×0是…零
你要找的是:
1 | b[r, c] = False |
numpy数组最适合使用numpy的访问方法。另一种方法是创建数组的视图,您将修改视图。
编辑:同样,R,C也需要是数字,而不是其他答案所说的真/真。我对这个问题的理解比别人问的要多。