草庐IT

python - 使用 scipy.spatial 的数据类型问题

我想使用scipy.spatial的KDTree在二维数组(本质上是嵌套列表的维度为2的列表列表)中查找最近邻对。我生成我的列表列表,将其通过管道传输到numpy的数组中,然后创建KDTree实例。但是,每当我尝试对其运行“查询”时,我都不可避免地会得到奇怪的答案。例如,当我键入:tree=KDTree(array)nearest=tree.query(np.array[1,1])最近的输出(0.0,0)。目前,我使用的数组基本上是y=x范围(1,50),所以我希望我应该为(1,1)获得(2,2)的最近邻居scipy大师,我做错了什么?编辑:或者,如果有人可以向我指出他们用于对给定点进

python - Scipy:使用 optimize.leastsq 时拟合参数的界限

我正在使用optimize.leastsq来拟合数据。我想将拟合参数限制在一定范围内。使用optimize.leastsq时是否可以定义边界?边界在optimize.fmin_slsqp中实现,但我更愿意使用optimize.leastsq。 最佳答案 我认为处理边界的标准方法是在参数超过边界时使要最小化的函数(残差)非常大。importscipy.optimizeasoptimizedefresiduals(p,x,y):ifwithin_bounds(p):returny-model(p,x)else:return1e6p,co

python - 这个算法的名称,是否有它的 numpy/scipy 实现?

动机:我看过这个算法的描述,如果存在标准实现,我宁愿不重新发明轮子。我还了解到,如果有scipy/numpy实现,它通常比我自己用python实现的任何东西都要快得多。算法说明我在平面上有大量的点(几百万)。从一个包含所有点的大盒子开始,我想不断将该盒子分割为等面积的子盒子。当子框中至少有1,000个点时,递归地继续分割。该算法返回一棵树,该树描述了分割以及点到树的每个叶节点的映射。这个算法的名称是什么(类似于分而治之?),当给定一个2Dnumpy点数组时,是否有一个标准的方法来实现它? 最佳答案 它叫做quadtree分割。至于P

python - 如何消除由于 scipy/numpy fft 中的零填充而产生的边界效应?

我编写了一个python代码,使用Weierstrass变换平滑给定信号,这基本上是归一化高斯与信号的卷积。代码如下:#Importingrelevantlibrariesfrom__future__importdivisionfromscipy.signalimportfftconvolveimportnumpyasnpdefsmooth_func(sig,x,t=0.002):N=len(x)x1=x[-1]x0=x[0]#defininganewarrayywhichissymmetricaroundzero,tomakethegaussiansymmetric.y=np.lin

python - 将列表和列表列表转换为 scipy 稀疏数组

假设我有一个列表或列表列表(每个列表的大小相同)。如何分别转换为稀疏向量或稀疏矩阵? 最佳答案 In[5]:scipy.sparse.csr_matrix([[1,2],[3,0]])Out[5]:'with3storedelementsinCompressedSparseRowformat>In[6]:scipy.sparse.csr_matrix([1,2])Out[6]:'with2storedelementsinCompressedSparseRowformat>scipy.sparse.whatever_matrix_ty

python - 寻找曲线 scipy 的最大值

我已将曲线拟合到一组数据点。我想知道如何找到曲线的最大值点,然后我想注释该点(我不想使用数据中的最大y值来执行此操作)。我无法准确地编写我的代码,但这是我的代码的基本布局。importmatplotlib.pyplotaspltfromscipy.optimizeimportcurve_fitx=[1,2,3,4,5]y=[1,4,16,4,1]deff(x,p1,p2,p3):returnp3*(p1/((x-p2)**2+(p1/2)**2))p0=(8,16,0.1)#guessperametersplt.plot(x,y,"ro")popt,pcov=curve_fit(f,x

python - 如何使用 SciPy/NumPy 从图像中查找和删除白色 Blob ?

我有一系列图像作为我的原始数据,我正试图为发布做准备。这些图像有一系列随机的白色Blob,我想用周围一些像素的平均值代替。我无法发布图片,但下面的代码应该会生成一个PNG文件,它与我要纠正的问题大致相同:importnumpyasnpfromscipy.miscimportimsaverandom_array=np.random.random_sample((512,512))random_array[random_array虽然这应该会生成一个图像,该图像具有与我的原始数据中存在的Blob类似的分布,但我的图像没有强度均匀的Blob,并且一些Blob的大小超过一个像素(尽管它们都不超

python - 使用 scipy 稀疏矩阵求解方程组

这是对Howtosetupandsolvesimultaneousequationsinpython的跟进但我觉得任何答案都值得拥有自己的声誉点。对于固定整数n,我有一套2(n-1)联立方程如下。M(p)=1+((n-p-1)/n)*M(n-1)+(2/n)*N(p-1)+((p-1)/n)*M(p-1)N(p)=1+((n-p-1)/n)*M(n-1)+(p/n)*N(p-1)M(1)=1+((n-2)/n)*M(n-1)+(2/n)*N(0)N(0)=1+((n-1)/n)*M(n-1)M(p)为1定义.N(p)为0定义.还要注意p只是每个方程中的常数整数,因此整个系统是线性的。关

python - 如何获取 Scipy 稀疏矩阵(csr_matrix 和 csc_matrix)中每一行的总和和每一列的总和?

我有一个非常大的Scipy稀疏矩阵(CSR_MATRIX)。我只想知道如何计算每一行的值之和以及矩阵每一列的值之和。我有一个执行相同操作的代码,但它使用的是CSC_MATRIX。这两者在行列求和方面有什么不同吗?我想也许我可以获得其他人也可以使用的快速响应,或者我可以自己测试。fromscipy.sparseimport*fromscipyimport*row=array([0,0,1,2,2,2])col=array([0,2,2,0,1,2])data=array([1,2,3,4,5,6])csr_matrix((data,(row,col)),shape=(3,3)).tode

python - 在设定时间后停止 Scipy 最小化

我在Python3.4上使用Scipy模块中的最小化,特别是:resultats=minimize(margin_rate,iniprices,method='SLSQP',jac=margin_rate_deriv,bounds=pricebounds,options={'disp':True,'maxiter':2000},callback=iter_report_margin_rate)可以设置最大迭代次数(如上),但是有没有办法告诉minimize在给定的设置时间后停止搜索解决方案?我查看了最小化的一般选项以及SLSQP求解器的特定选项,但无法解决。谢谢