Python中文
首页
教程
问答
标签
搜索
登录
注册
如何修复产生不精确结果的numpy floatingpoint操作?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我需要从知道样本大小的相对频率中重建绝对频率。在</p> <p>这应该很容易,但是绝对频率和样本大小是<code>numpy.int64</code>,相对频率是<code>numpy.float64</code>。在</p> <p>我知道浮点十进制值通常没有精确的二进制表示,我们可能会遇到一些精度损失。似乎是这样,浮点运算产生了意想不到的结果,我不能相信重建的绝对频率。在</p> <p>复制错误的示例代码:</p> <pre><code>import pandas as pd import numpy as np absolutes = np.arange(100000, dtype=np.int64) #numpy.int64 sample_size = absolutes.sum() # numpy.int64 relatives = absolutes / sample_size #float64 # Rebuilding absolutes from relatives rebuilt_float = relatives * sample_size #float64 rebuilt_int = rebuilt_float.astype(np.int64) df = pd.DataFrame({'absolutes': absolutes, 'relatives': relatives, 'rebuilt_float': rebuilt_float, 'rebuilt_int': rebuilt_int}) df['check_float'] = df['absolutes'] == df['rebuilt_float'] df['check_int'] = df['absolutes'] == df['rebuilt_int'] print('Failed FLOATS: ', len(df[df['check_float'] == False])) print('Failed INTS:', len(df[df['check_int'] == False])) print('Sum of FLOATS:', df['rebuilt_float'].sum()) print('Sum of INTS:', df['rebuilt_int'].sum()) </code></pre> <p>有没有可能不用把每个数字都转换成十进制数就可以用numpy来解决这个问题?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果在转换为整数之前对重新生成的值进行四舍五入,则会得到零个失败的整数。也就是说,使用</p> <pre><code>rebuilt_int = np.round(rebuilt_float).astype(np.int64) </code></pre> <p>然后输出</p> ^{pr2}$
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
文本导入时标题行中的特殊字符
8 回答
文本小部件:在没有输入时更新并在循环后保持空闲
7 回答
文本小部件tkin
5 回答
文本小部件tkinter中的标签更改或文本外观更改是否有撤消功能?
9 回答
文本小部件tkinter复制图像选项
5 回答
文本小部件上的Python Tkinter ttk滚动条未缩放
10 回答
文本小部件上的滚动条可能需要根据制表符ord显示前进行滚动
1 回答
文本小部件不显示lis中的内容
8 回答
文本小部件不显示Unicode字符
10 回答
文本小部件中写入的行间距
6 回答
文本小部件中的文本作为变量
2 回答
文本小部件中的滚动条仅显示在底部
2 回答
文本小部件中的选项卡键空间计数
9 回答
文本小部件作为Lis
3 回答
文本小部件在主框架中扩展列宽
1 回答
文本小部件未使用删除功能清除
10 回答
文本小部件滚动动画(Tkinter、Python)
8 回答
文本居中。格式正确吗?
7 回答
文本差分算法
7 回答
文本已知时音频文件中的单词索引
9 回答