作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题与我之前的问题How to use numpy interpolation to increase a vector size相关,但这次我正在寻找一种增加二维数组大小而不是向量的方法。
这个想法是,我有几个坐标(x;y)
,并且我想用所需数量的(x;y)
对来平滑直线
对于矢量解决方案,我使用@AGML 用户的答案,效果非常好
from scipy.interpolate import UnivariateSpline
def enlargeVector(vector, size):
old_indices = np.arange(0,len(a))
new_length = 11
new_indices = np.linspace(0,len(a)-1,new_length)
spl = UnivariateSpline(old_indices,a,k=3,s=0)
return spl(new_indices)
最佳答案
您可以使用函数map_coordinates
来自 scipy.ndimage.interpolation
模块。
import numpy as np
from scipy.ndimage.interpolation import map_coordinates
A = np.random.random((10,10))
new_dims = []
for original_length, new_length in zip(A.shape, (100,100)):
new_dims.append(np.linspace(0, original_length-1, new_length))
coords = np.meshgrid(*new_dims, indexing='ij')
B = map_coordinates(A, coords)
关于python - numpy 插值以增加数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32973766/
我是一名优秀的程序员,十分优秀!