Я получаю сообщение об ошибке в заголовке кода ниже, но у меня нет отрицательных значений или NaN в моем массиве.
Есть ли что-нибудь еще, что я должен проверить?
Я не получаю сообщения об ошибке для небольших массивов, которые можно скопировать сюда. Я получаю его только в своих массивах размером примерно 100000 x 1000
def norm2(A,B):
"""numpy.ndarray A shape (m1,d), B shape (m2,d)
Returns ndarray of shape (m1, m2) dists_{i,j} = ||A_i - B_j||
"""
print("A.shape: ", A.shape)
print("B.shape: ", B.shape)
sums = np.sum(np.square(A[:,None,:] - B[None,:,:]),
axis = 2
)
print("sums.shape: ", sums.shape)
negs = np.sum(sums < 0)
nans = np.sum(np.isnan(sums))
warn = "There are " + str(negs) + " negative numbers and " + str(nans) + " NaNs."
dists = np.sqrt(sums) # dists_{i,j} = || A_i - B_j ||
return dists, warn
Вывод операторов печати:
A.shape: (100000, 1000)
B.shape: (100000, 1000)
sums.shape: (100000, 100000)
Возвращаемое warn
: 'There are 0 negative numbers and 0 NaNs.'
Что еще я могу проверить?
Другие похожие вопросы были вызваны отрицательными числами: Numpy, RuntimeWarning: недопустимое значение в sqrt
Я проверил руководство , но ничего не смог найти о предупреждении времени выполнения https://numpy.org/doc/stable/reference/generated/numpy.sqrt.html
Я попытался проверить исходный код, но не смог понять, где находится код для sqrt: https://github.com/numpy/numpy/tree/master/numpy/lib