Сингулярность в np.sqrt - PullRequest
1 голос
/ 24 марта 2019

Strange RuntimeWarning: недопустимое значение в sqrt

Я работаю над задачей, в которой я беру позиции огромного количества частиц (128 ** 3) из файла hdf5, а затем вычисляю относительное расстояние между ними.

Запустив код, я обнаружил неожиданное RuntimeWarning в функции sqrt. Работая над кодом, я выделяю проблему в следующих строках:

#This lines presented the problem
((Pos-Pos[0])[:,0]**2)
np.sqrt(((Pos-Pos[0])[:,0]**2))

#This lines do not present the problem
((Pos-Pos[0])[:,0]**2)[1:]
np.sqrt(((Pos-Pos[0])[1:,0]**2)[1:])

#This lines do not present the problem
((Pos-Pos[0])[:,0]**2)[:100]
np.sqrt(((Pos-Pos[0])[:,0]**2)[:100])

#My proposition to solve it
((Pos-Pos[0])[:,0]**2)
np.sqrt(((Pos-Pos[0])[:,0]**2)+1e-10)

Я не очень хорошо понимаю природу этой проблемы. Не могли бы вы помочь мне лучше понять это?

...