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
, это, вероятно, является причиной ошибки выполнения.