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

yipeiwu_com5年前Python基础

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

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-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生成数组的零值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python算法演练_One Rule 算法(详解)

这样某一个特征只有0和1两种取值,数据集有三个类别。当取0的时候,假如类别A有20个这样的个体,类别B有60个这样的个体,类别C有20个这样的个体。所以,这个特征为0时,最有可能的是类别...

详解Django模版中加载静态文件配置方法

1、settings.INSTALLED_APPS下添加:django.contrib.staticfiles 2、settings.py下添加:STATIC_URL = '/stati...

python 不以科学计数法输出的方法

其实很简单只需两个语句: import numpy as np np.set_printoptions(suppress=True) 这样就可以搞定 以上这篇python 不以科学...

Python中用于计算对数的log()方法

 log()方法返回x的自然对数,对于x>0。 语法 以下是log()方法的语法: import math math.log( x ) 注意:此函数是无法直接...

dataframe设置两个条件取值的实例

如下所示: >>> import pandas as pd >>> import numpy as np >>> from pa...