gpt4 book ai didi

python - 多维度的 NumPy PolyFit 和 PolyVal?

转载 作者:太空狗 更新时间:2023-10-29 22:26:37 24 4
gpt4 key购买 nike

假设一个 n 维观察数组被 reshape 为一个二维数组,每行是一个观察集。使用这种 reshape 方法,np.polyfit 可以计算整个 ndarray(矢量化)的二阶拟合系数:

fit = np.polynomial.polynomialpolyfit(X, Y, 2)

其中 Y 是形状 (304000, 21),X 是向量。这会产生一个 (304000,3) 系数数组,fit。

使用迭代器可以为每一行调用 np.polyval(fit, X)。当可能存在矢量化方法时,这是低效的。 fit 结果是否可以在不迭代的情况下应用于整个观察数组?如果是,怎么办?

这与 this SO 的思路一致问题。

最佳答案

np.polynomial.polynomial.polyval 采用多维系数数组:

>>> x = np.random.rand(100)
>>> y = np.random.rand(100, 25)
>>> fit = np.polynomial.polynomial.polyfit(x, y, 2)
>>> fit.shape # 25 columns of 3 polynomial coefficients
(3L, 25L)
>>> xx = np.random.rand(50)
>>> interpol = np.polynomial.polynomial.polyval(xx, fit)
>>> interpol.shape # 25 rows, each with 50 evaluations of the polynomial
(25L, 50L)

当然还有:

>>> np.all([np.allclose(np.polynomial.polynomial.polyval(xx, fit[:, j]),
... interpol[j]) for j in range(25)])
True

关于python - 多维度的 NumPy PolyFit 和 PolyVal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com