функция массива numpy под названием «Индексирование с логическими массивами» - PullRequest
0 голосов
/ 13 июня 2018

рассмотрим следующее выражение:

dZ [Z <= 0] = 0 </p>

Это означает, что как Z <= 0, тогда dz = 0 Означает ли это, когда Z> 0, что dz = 1

1 Ответ

0 голосов
/ 13 июня 2018

Это не так.Это означает, что все элементы 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.

...