小编Ale*_*is 的帖子

当系数是非常大的整数时,poly1d 会给出错误的系数

我正在 ubuntu 16.04.2 LTS 和 NumPy 1.12.1 中使用 python 3.5.2。当我使用 poly1d 函数获取 coeffs 时,计算出现错误:

>>> from numpy import poly1d
>>> from math import fabs
>>> pol = poly1d([2357888,459987,78123455],True)
>>>[int(x) for x in pol.coeffs]
[1, -80941330, 221226728585581, -84732529566356586496]
Run Code Online (Sandbox Code Playgroud)

正如您在此列表中看到的,最后一个元素不正确。当我使用 Wolfram Alpha 构建多项式时,我得到:

x^3 - 80941330 x^2 + 221226728585581 x - 84732529566356580480
Run Code Online (Sandbox Code Playgroud)

最后一个系数与使用 poly1d 时不同(第一个系数以 ...496 结尾,另一个以 ...480 结尾)。我必须假设正确的系数是最后一次计算(由 WolframAlpha 制作)。

这是一个错误还是有什么我没有考虑到的?我用低绝对值的根进行了探索;在这种情况下,计算是正确的。但当我使用“大根”时,差异就很明显了。

python numpy polynomials

3
推荐指数
1
解决办法
823
查看次数

给定scipy.stats.binned_statistic函数...如何使用不同大小的垃圾箱?

我很抱歉这个问题是否存在并得到澄清(我已经搜索过,最终找不到答案)。

因此,我有一个整数数组a = [1,2,2,2,3,4],我想使用bins = [0,1.5)获得每个间隔的统计信息(在这种情况下是平均值);[1.5,2.5);[2.5,5)。

如您所见,没有相同长度的间隔。我尝试这样做:

from scipy.stats import binned_statistic
data = [1,2,2,2,3,4]
bin_means = binned_statistic(data, data, bins=3, range=(0, 5))
Run Code Online (Sandbox Code Playgroud)

在“ bin_means”中存储以下内容:

BinnedStatisticResult(statistic=array([1.  , 2.25, 4.  ]), bin_edges=array([0.        , 1.66666667, 3.33333333, 5.        ]), binnumber=array([1, 2, 2, 2, 2, 3], dtype=int32))
Run Code Online (Sandbox Code Playgroud)

我了解什么?垃圾箱是:[0,1.66..7);[1.66..7,3.33 ..);[3.33 ...,5)不是我想要的间隔。
我不希望这些长度相同。有人可以解释我该怎么做吗?再加上有人可以解释stats.binned_statics的两个主要参数(“ x”和“ values”)吗?这将是有用的。提前致谢。

python statistics scipy

1
推荐指数
1
解决办法
943
查看次数

标签 统计

python ×2

numpy ×1

polynomials ×1

scipy ×1

statistics ×1