小编Tob*_*ias的帖子

scipy.interp2d警告和离网大错误

我正在尝试对二维函数进行插值,并且通过scipy.interpolate.interp2d遇到了我认为怪异的行为。我不明白问题是什么,我很乐意提供帮助或提示。

import numpy as np
from scipy.interpolate import interp2d

x = np.arange(10)
y = np.arange(20)
xx, yy = np.meshgrid(x, y, indexing = 'ij')
val = xx + yy
f = interp2d(xx, yy, val, kind = 'linear')
Run Code Online (Sandbox Code Playgroud)

运行此代码时,出现以下警告:

scipy / interpolate / fitpack.py:981:RuntimeWarning:由于B样条系数的数量已经超过数据点m的数量,因此无法添加更多的结。可能的原因:s或m太小。(fp> s)kx,ky = 1,1 nx,ny = 18,15 m = 200 fp = 0.000000 s = 0.000000
warnings.warn(RuntimeWarning(_iermess2 [ierm] [0] + _mess))

我不明白为什么interp2d告诉我它应该进行线性插值,为什么会使用任何样条曲线。当我继续并在网格上评估f时,一切都很好:

>>> f(1,1)
array([ 2.])
Run Code Online (Sandbox Code Playgroud)

当我脱离网格对其进行评估时,即使该函数显然是线性的,也会出现很大的错误。

>>> f(1.1,1)
array([ 2.44361975])
Run Code Online (Sandbox Code Playgroud)

我有点困惑,我不确定是什么问题。有人遇到过类似的问题吗?我以前使用过matlab,这几乎是我在那做1:1的方式,但是也许我做错了。

当我使用矩形网格(即y = np.arange(10))时,一切都可以正常工作,但这不是我所需要的。当我使用三次插值而不是线性插值时,误差变小(由于函数是线性的,所以也没有太大意义),但误差仍然很大。

python interpolation numpy scipy

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

Mongoexport 到多个 csv 文件

我有一个很大的 mongoDB 集合。我想将此集合导出为 CSV,以便我可以将其导入到统计包中以进行数据分析。

该集合中有大约 15 GB 的文档。我想将集合拆分为约 100 个大小相同的 CSV 文件。有没有办法使用 mongoexport 实现这一目标?我还可以在 pymongo 中查询整个集合,将其拆分并手动写入 csv 文件,但我想这会更慢并且需要更多的编码。

感谢您的意见。

csv mongodb export-to-csv mongoexport

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