草庐IT

scipy-optimize

全部标签

python - 使用 scipy.optimize.curve_fit 传递附加参数?

我正在用Python编写一个程序,它将高斯和洛伦兹形状拟合到一些给定的共振数据。我最初开始使用scipy.optimize.leastsq,但在从协方差矩阵中检索优化参数中的错误时遇到困难后改为使用optimize.curve_fit。我已经定义了一个函数来拟合高斯和洛伦兹的总和:defmix(x,*p):ng=numgp1=p[:3*ng]p2=p[3*ng:]a=sumarray(gaussian(x,p1),lorentzian(x,p2))returna其中p是拟合参数的初始猜测数组。这是使用curve_fit调用它的实例:leastsq,covar=opt.curve_fit

python - 在 Numpy/Scipy 中切片数组

我有一个像这样的数组:a=array([[1,2,3],[3,4,5],[4,5,6]])从中切出只有“a”的前两列的1x2数组的最有效方法是什么?即array([[2,3],[4,5],[5,6]])inthiscase. 最佳答案 二维numpy数组使用a[i,j](不是a[i][j])进行索引,但您可以使用相同的切片符号numpy数组和矩阵,就像在python中使用普通矩阵一样(只需将它们放在一个[]中):>>>fromnumpyimportarray>>>a=array([[1,2,3],[3,4,5],[4,5,6]])>

Python:根据 Scipy 的 3D Delaunay 三角剖分计算 Voronoi Tesselation

我有大约50,000个3D数据点,我从新的scipy(我使用的是0.10)运行了scipy.spatial.Delaunay,这给了我一个非常有用的三角测量。基于:http://en.wikipedia.org/wiki/Delaunay_triangulation(“与Voronoi图的关系”部分)...我想知道是否有一种简单的方法可以得到这个三角剖分的“对偶图”,即VoronoiTesselation。有什么线索吗?我对此的搜索似乎没有显示任何预建的scipy函数,我觉得这很奇怪!谢谢,爱德华 最佳答案 邻接信息可以在Delau

python - scipy.linalg.eig 返回协方差矩阵的复杂特征值?

协方差矩阵的特征值应该是实数且非负,因为协方差矩阵是对称的和半正定的。但是,请看下面的scipy实验:>>>a=np.random.random(5)>>>b=np.random.random(5)>>>ab=np.vstack((a,b)).T>>>C=np.cov(ab)>>>eig(C)7.90174997e-01+0.00000000e+00j,2.38344473e-17+6.15983679e-17j,2.38344473e-17-6.15983679e-17j,-1.76100435e-17+0.00000000e+00j,5.42658040e-33+0.0000000

python - 如何使用 scipy.ndimage.interpolation.affine_transform 围绕其中心旋转图像?

我对scipy.ndimage.interpolation.affine_transform的API感到困惑.并根据thisissue判断我不是唯一一个。我实际上想用affine_transform做更多有趣的事情不仅仅是旋转图像,但对于初学者来说旋转会有所帮助。(是的,我很清楚scipy.ndimage.interpolation.rotate,但弄清楚如何驾驶affine_transform是我感兴趣的地方)。当我想在像OpenGL这样的系统中做这种事情时,我会考虑计算应用2x2旋转矩阵的变换R关于中心c,因此思考点p正在改造(p-c)R+c=pR+c-cR,这给出了c-cR用作转

python - Python scipy/numpy/pandas 中时间序列的分层聚类?

我有一个包含一些时间序列的DataFrame。我从这些时间序列创建了一个相关矩阵,我想在这个相关矩阵上创建一个层次聚类。我怎样才能做到这一点?##let'tpretendthisDataFramecontainssometimeseries#df=pd.DataFrame((np.random.randn(150)).reshape(10,15))012131400.3697460.093882-0.656211....-0.59693600.09596010.6414571.120405-0.468639....-2.0708021-1.25415920.360756-0.22255

python - 在 Python 的 numpy/scipy 中计算数组中唯一元素的有效方法

我有一个scipy数组,例如a=array([[0,0,1],[1,1,1],[1,1,1],[1,0,1]])我想计算数组中每个唯一元素出现的次数。例如,对于上面的数组a,我想找出[0,0,1]出现1次,[1,1,1]出现2次,[1,0,1]出现1次。我想到的一种方法是:fromcollectionsimportdefaultdictd=defaultdict(int)foreltina:d[elt]+=1有没有更好/更有效的方法?谢谢。 最佳答案 如果坚持使用Python2.7(或3.1)不是问题,并且您可以使用这两个Pytho

python - Numpy/Scipy 中的卷积计算

分析我正在做的一些计算工作表明,我的程序中的一个瓶颈是基本上完成此操作的函数(np是numpy,sp是scipy):defmix1(signal1,signal2):spec1=np.fft.fft(signal1,axis=1)spec2=np.fft.fft(signal2,axis=1)returnnp.fft.ifft(spec1*spec2,axis=1)两个信号的形状都是(C,N),其中C是数据集的数量(通常小于20),N是每组中的样本数(大约5000)。每个集合(行)的计算完全独立于任何其他集合。我认为这只是一个简单的卷积,所以我尝试将其替换为:defmix2(signa

Python/Scipy 二维插值(非均匀数据)

这是我之前帖子的后续问题:Python/ScipyInterpolation(map_coordinates)假设我想在二维矩形区域上进行插值。我的变量“z”包含如下所示的数据。每一列的值都是恒定的,但是,数组的每一行可能具有不同的值,如下面的评论所示。fromscipyimportinterpolatefromnumpyimportarrayimportnumpyasnp##0.0000,0.1750,0.8170,1.0000z=array([[-2.2818,-2.2818,-0.9309,-0.9309],#0.0000,0.0000,0.0000,0.0000[-2.2818

python - 了解 scipy 反卷积

我正在努力理解scipy.signal.deconvolve.从数学的角度来看,卷积只是傅立叶空间中的乘法,所以我期望对于两个函数f和g:反卷积(卷积(f,g),g)==f在numpy/scipy中,情况并非如此,或者我遗漏了重要的一点。尽管已经有一些与SO上的反卷积相关的问题(如here和here),但它们并未解决这一点,其他问题仍不清楚(this)或未得到解答(here)。SignalProcessingSE上还有两个问题(this和this),其答案对理解scipy的反卷积函数的工作原理没有帮助。问题是:如何从卷积信号重建原始信号f,假设你知道卷积函数g.?或者换句话说:这个伪代