Это не так.Это означает, что все элементы dz
, которые соответствуют позиции, где z <= 0
, будут установлены в 0. Например:
dz = np.array([[1, 4, 7],[2, 5, 8],[3, 6, 9]])
z = np.array([[1, 1, -1],[-1, 1, -1],[1, 1, -1]])
print(dz)
print(z)
приводит к:
[[1 4 7]
[2 5 8]
[3 6 9]]
[[ 1 1 -1]
[-1 1 -1]
[ 1 1 -1]]
и
dz[z<=0]=0
print(dz)
выход:
[[1 4 0]
[0 5 0]
[3 6 0]]
В массиве z
есть четыре позиции, где z <= 0
: (1,3)
, (2,1)
, (2,3)
и (3,3)
.Следовательно, элементы dz
в этих позициях установлены в 0. Как видите, на другие элементы это не влияет.
Вы, вероятно, путаете массив логических значений с массивом значений:
z <= 0
- это условие.Это массив логических значений (такого же размера, как z
) с 1 в позициях (i,j)
, где z(i,j) <= 0
и 0 в других местах.
dz[z<=0]
- это массив значений.Это массив значений dz
, где условие z <= 0
является истинным, следовательно, где в массиве логических значений есть 1 z <= 0
.