numpy: недопустимое значение, встречающееся в true divide

у меня есть два массива numpy, и я пытаюсь разделить один с другим, и в то же время я хочу убедиться, что записи, где делитель равен 0, должны быть заменены на 0.

Так, я делаю что-то вроде:

log_norm_images = np.where(b_0 > 0, np.divide(diff_images, b_0), 0)

Это дает мне предупреждение время:

RuntimeWarning: invalid value encountered in true_divide

Теперь я хотел посмотреть, что происходит, и я сделал следующее:

xx = np.isfinite(diff_images)
print (xx[xx == False])

xx = np.isfinite(b_0)
print (xx[xx == False])

однако оба эти возвращают пустые массивы, что означает, что все значения в массивы конечны. Таким образом, я не уверен, откуда берется недопустимое значение. Я предполагаю, что проверка b_0 > 0 в np.где функция заботится о делении на 0.

виде двух массивов (96, 96, 55, 64) и (96, 96, 55, 1)

1 ответов


вы можете NAN, INF или NINF плавает где-то. Попробуйте это:

np.isfinite(diff_images).all()
np.isfinite(b_0).all()

если один или оба из этих возвратов False, это, вероятно, является причиной ошибки выполнения.