脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - 浅谈numpy生成数组的零值问题

浅谈numpy生成数组的零值问题

2021-04-18 00:28易水晓寒 Python

今天小编就为大家分享一篇浅谈numpy生成数组的零值问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

今天在用numpy写sinc函数时偶然发现在x=0时函数居然能取到1,觉得很不可思议,按理来说在x=0时函数无意义,研究了一下,发现竟然时numpy在生成数组时自动用一个很小的数代替了0。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
In[2]: import numpy as np
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-161.00000000e-01,
     2.00000000e-013.00000000e-014.00000000e-01,
     5.00000000e-016.00000000e-017.00000000e-01,
     8.00000000e-019.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-161.00000000e-01,
     2.00000000e-013.00000000e-014.00000000e-01,
     5.00000000e-016.00000000e-017.00000000e-01,
     8.00000000e-019.00000000e-01])

其中arange和linspace两个函数在本应该为0的地方用一个e-16的非常小的数代替了。

以上这篇浅谈numpy生成数组的零值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/u014528556/article/details/70187490

延伸 · 阅读

精彩推荐