Вы можете изменить код в источнике бесконечности, чтобы он никогда не был добавлен в ваш список:
distances = np.array ([0, .3,4])
def _distance_weights(self, distances):
return np.array([(1 if y == 0 else 1/y,y) for d, y in np.ndenumerate(distances)])
Если вы никогда раньше не видели такой синтаксис if
, воткак это работает: 1 if y == 0 else 1/y
будет оцениваться до 1
, если y == 0
, в противном случае он будет оцениваться до 1/y
.
Является ли 1
лучшим выбором для замены на infinity
?Я бы, наверное, сам использовал -1
, тем более что я не думаю, что ваши расстояния никогда не будут отрицательными.