浅谈numpy生成数组的零值问题
今天在用numpy写sinc函数时偶然发现在x=0时函数居然能取到1,觉得很不可思议,按理来说在x=0时函数无意义,研究了一下,发现竟然时numpy在生成数组时自动用一个很小的数代替了0。
In[2]:importnumpyasnp In[3]:np.arange(-1,1,0.1) Out[3]: array([-1.00000000e+00,-9.00000000e-01,-8.00000000e-01, -7.00000000e-01,-6.00000000e-01,-5.00000000e-01, -4.00000000e-01,-3.00000000e-01,-2.00000000e-01, -1.00000000e-01,-2.22044605e-16,1.00000000e-01, 2.00000000e-01,3.00000000e-01,4.00000000e-01, 5.00000000e-01,6.00000000e-01,7.00000000e-01, 8.00000000e-01,9.00000000e-01]) In[4]:np.linspace(-1,0.9,20) Out[4]: array([-1.00000000e+00,-9.00000000e-01,-8.00000000e-01, -7.00000000e-01,-6.00000000e-01,-5.00000000e-01, -4.00000000e-01,-3.00000000e-01,-2.00000000e-01, -1.00000000e-01,-1.11022302e-16,1.00000000e-01, 2.00000000e-01,3.00000000e-01,4.00000000e-01, 5.00000000e-01,6.00000000e-01,7.00000000e-01, 8.00000000e-01,9.00000000e-01])
其中arange和linspace两个函数在本应该为0的地方用一个e-16的非常小的数代替了。
以上这篇浅谈numpy生成数组的零值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。