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

yipeiwu_com6年前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中kmeans聚类实现代码

k-means算法思想较简单,说的通俗易懂点就是物以类聚,花了一点时间在python中实现k-means算法,k-means算法有本身的缺点,比如说k初始位置的选择,针对这个有不少人提出...

Numpy 改变数组维度的几种方法小结

来自 《Python数据分析基础教程:Numpy 学习指南(第2版)》 Numpy改变数组维度的方法有: reshape() ravel() flatten() 用元组设置维度...

python异常和文件处理机制详解

本文实例讲述了python异常和文件处理机制。分享给大家供大家参考,具体如下: 1 异常处理 Python的异常用 try except finally 来处理. 并且except后还可...

python基于socket实现网络广播的方法

本文实例讲述了python基于socket实现网络广播的方法。分享给大家供大家参考。具体实现方法如下: import socket, sys dest = ('<broadca...

linux环境下Django的安装配置详解

1. 下载安装Django pip install Django==1.6.5 测试是否安装成功 >>> import django>>>...