如何在python中更改2D数组中的元素

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)

您需要使用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也需要是数字,而不是其他答案所说的真/真。我对这个问题的理解比别人问的要多。