小编s_h*_*key的帖子

加速scipy griddata用于两个不规则网格之间的多个插值

我有几个值在同一个不规则网格上定义(x, y, z),我想插入到新网格上(x1, y1, z1).即,我有f(x, y, z), g(x, y, z), h(x, y, z),我想计算f(x1, y1, z1), g(x1, y1, z1), h(x1, y1, z1).

目前我正在使用这个scipy.interpolate.griddata并且效果很好.但是,因为我必须单独执行每个插值并且有很多点,所以它很慢,在计算中有很多重复(即找到哪些点最接近,设置网格等等).

有没有办法加快计算速度并减少重复计算?即沿着定义两个网格的线条,然后更改插值的值?

python interpolation numpy scipy qhull

22
推荐指数
2
解决办法
7260
查看次数

matplotlib 与另一个图中的 y 轴共享 x 轴

如果我想将两个独立轴的 x 轴和 y 轴连接在一起,以便它们一起缩放,我通常会这样做:

fig = plt.figure()
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122,sharex=ax1, sharey=ax1)
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将一个图的 x 轴与另一个图的 y 轴共享。例如,一个图的 x 轴是“时间”,我想与另一个也代表“时间”的图的 y 轴共享它。像这样的东西(这不起作用......):

ax2 = fig.add_subplot(122,sharex=ax1.yaxis, sharey=ax1.xaxis)
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

制作图后,Matplotlib图变化为出版物

我一直遇到在Matplotlib中生成出版物"完美"图像的问题(即更改字体大小,标记大小,图形大小,刻度数等...).

基本上,我想做这里描述的内容:http://www.scipy.org/Cookbook/Matplotlib/LaTeX_Examples,除非图已经完成.即我想创建一个接受Figure对象的函数,并进行所有必要的更改,其中一些可用作输入参数.这样,当我决定在论文中使用数字时,我不必总是修改我的脚本.

有没有一种有效的方法来实现这一目标?

注意我通常使用Ipython.

python numpy matplotlib scipy

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

在Python中将大的不规则网格插入到另一个不规则网格中

我试图使用Python将复杂值从一个不规则网格插入另一个不规则网格.网格是2D的,有103,113个数据点.我使用的是Python 2.6.6,Scipy 0.7.2,Numpy 1.3.0,Matplotlib 0.99.3

在使用griddata的Matlab中,这可以在大约5秒内完成.

BnGRID2  = griddata(R_GRID1,Z_GRID1,BnGRID1,R_GRID2,Z_GRID2) (MATLAB)
Run Code Online (Sandbox Code Playgroud)

(注意所有阵列都是201 x 513)

但是,如果我尝试使用matplotlib.mlab.griddata,即使我尝试仅使用真实部分,我也会得到一个memoryError:

mlab.griddata(R_GRID1.flatten(),Z_GRID1.flatten(),num.real(BnGRID1.flatten()),R_GRID2.flatten(),Z_GRID2.flatten())
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用interp2d,我会遇到分段错误,Python会退出:

a = interp.interp2d(R_GRID1,Z_GRID1,num.real(BnGRID1))
Run Code Online (Sandbox Code Playgroud)

我尝试使用KDTree,这似乎工作正常,但是,与Matlab的几秒相比,它需要几分钟,但我还没有太多探索这个选项.

想知道是否有人有任何想法我怎么能像Matlab一样快地完成这项工作?我注意到Scipy的新版本也有griddata,有谁知道这是否可以处理大的不规则网格?

python interpolation numpy matplotlib scipy

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

Python默认参数和参数名称

我想知道'a = a'和'b = b'是否会导致问题/意外行为?代码在示例中工作正常.

def add_func(a=2,b=3):
   return a+b

a=4
b=5
answer = add_func(a=a, b=b)
Run Code Online (Sandbox Code Playgroud)

谢谢

python

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

标签 统计

python ×5

matplotlib ×3

numpy ×3

scipy ×3

interpolation ×2

qhull ×1