奇怪的RuntimeWarning:在sqrt中遇到无效的值
我正在执行一项任务,其中我从hdf5文件中获取大量粒子(128 ** 3)的位置,然后计算它们之间的相对距离。
运行代码,我在sqrt函数中检测到意外的RuntimeWarning。处理代码后,我在以下几行中找出了问题所在:
#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)
我不太了解这种麻烦的性质。您能帮我更好地理解吗?