草庐IT

scipy-optimize

全部标签

python - 将 scipy.optimize.minimize 限制为整数值

我正在使用scipy.optimize.minimize来优化一个答案只能是整数的现实问题。我当前的代码如下所示:fromscipy.optimizeimportminimizedeff(x):return(481.79/(5+x[0]))+(412.04/(4+x[1]))+(365.54/(3+x[2]))+(375.88/(3+x[3]))+(379.75/(3+x[4]))+(632.92/(5+x[5]))+(127.89/(1+x[6]))+(835.71/(6+x[7]))+(200.21/(1+x[8]))defcon(x):returnsum(x)-7cons={'t

python - 如何为 Scipy 的 csr_matrix 指定行名和列名?

我不知道这是否可能,这可能是一个幼稚的问题,但我如何将R的rownames()和colnames()设置为scipy.sparse.csr.csr_matrix?我看到my_matrix.dtype.names在这里不起作用,而且我找不到这种稀疏矩阵的任何“索引”等价物...此外,由于一些Unresolved问题...非常感谢您的帮助, 最佳答案 您必须单独维护名称,因为scipy的稀疏格式都不支持命名索引。这可能看起来像:foo=csr_matrix(...)row_names=np.array(...)col_names=np.

python - Lorentzian scipy.optimize.leastsq 适合数据失败

自从我参加了Python讲座后,我想用它来拟合我的数据。虽然我现在已经尝试了一段时间,但我仍然不知道为什么这不起作用。我想做什么从子文件夹(此处称为“测试”)中取出一个又一个数据文件,稍微转换数据并用洛伦兹函数对其进行拟合。问题描述当我运行下面发布的代码时,它不适合任何东西,在4次函数调用后只返回我的初始参数。在一遍又一遍地检查python文档后,我尝试缩放数据,尝试使用ftol和maxfev,但没有任何改进。我还尝试将列表显式更改为numpy.arrays,以及对问题scipy.optimize.leastsqreturnsbestguessparametersnotnewbestf

python - scipy 中的 kmeans 和 kmeans2 有什么区别?

我是机器学习的新手,想知道scipy中的kmeans和kmeans2之间的区别。根据文档,他们都使用'k-means'算法,但如何选择它们? 最佳答案 根据文档,kmeans2似乎是标准的k-means算法并且运行直到收敛到局部最优-并且允许您更改种子初始化。kmeans函数将由于缺乏变化而提前终止,因此它甚至可能无法达到局部最优。此外,它的目标是生成一个码本来映射特征向量。码本本身不一定是从停止点生成的,而是会使用具有最低“失真”的迭代来生成码本。此方法还将多次运行kmeans。该文档有更多细节。如果您只想将k-means作为算法

python - 使用(python)Scipy拟合帕累托分布

我有一个数据集,我知道它服从帕累托分布。有人能告诉我如何在Scipy中拟合这个数据集吗?我运行了以下代码,但我不知道返回给我的是什么(a、b、c)。还有,得到a,b,c后,如何计算方差呢?importscipy.statsasssimportscipyasspa,b,c=ss.pareto.fit(data) 最佳答案 要非常小心拟合幂律!!许多报道的幂律实际上与幂律的拟合很差。参见Clausetetal.有关所有详细信息(如果您无权访问该期刊,也可以在arxiv上查看)。他们有一个companionwebsite到现在链接到Pyt

python - Numpy 和 Scipy 在 Windows 上的安装

我已经成功安装了Numpy。Butonthesite,我有很多事情要做,比如构建Numpy、Scipy、下载ATLAS、LAPACK等。我真的很困惑,甚至我也检查了其他一些查询。还是没看懂。谁能解释一下我到底应该怎么做?我的电脑上安装了cygwin。如何构建Numpy?构建numpy有什么用?如何安装Scipy?什么是ATLAS、LAPACK等?非常感谢(提前)。 最佳答案 我在同一个问题上挣扎了很长时间,最终找到了一个简单的解决方案here` 关于python-Numpy和Scipy在

python - 使用 scipy.interpolate.splrep 函数

我正在尝试将三次样条拟合到一组给定的点。我的积分没有排序。我无法对这些点进行排序或重新排序,因为我需要该信息。但由于函数scipy.interpolate.splrep仅适用于非重复和单调递增的点,我定义了一个将x坐标映射到单调递增空间的函数。我的旧观点是:xpoints=[4913.0,4912.0,4914.0,4913.0,4913.0,4913.0,4914.0,4915.0,4918.0,4921.0,4925.0,4932.0,4938.0,4945.0,4950.0,4954.0,4955.0,4957.0,4956.0,4953.0,4949.0,4943.0,4933

python - scipy.optimize.minimize 方法 ='SLSQP' 忽略约束

我正在使用SciPy进行优化,而SLSQP方法似乎忽略了我的约束。具体来说,我希望x[3]和x[4]在[0-1]范围内我收到消息:“不等式约束不兼容”这是执行的结果,后面是示例代码(使用虚拟函数):status:4success:Falsenjev:2nfev:24fun:0.11923608071680103x:array([-10993.4278558,-19570.77080806,-23495.15914299,-26531.4862831,4679.97660534])message:'Inequalityconstraintsincompatible'jac:array([

python - 将元组作为 scipy.optimize.curve_fit 的输入参数传递

我有以下代码:importnumpyasnpfromscipy.optimizeimportcurve_fitdeffunc(x,p):returnp[0]+p[1]+xpopt,pcov=curve_fit(func,np.arange(10),np.arange(10),p0=(0,0))它会引发TypeError:func()takesexactly2arguments(3given)。嗯,这听起来很公平-curve_fit将(0,0)分解为两个标量输入。所以我尝试了这个:popt,pcov=curve_fit(func,np.arange(10),np.arange(10),p

python - 线性拟合,包括 NumPy/SciPy 的所有错误

我有很多x-y数据点在y轴上有错误,我需要用非线性函数拟合它们。这些函数在某些情况下可以是线性的,但更常见的是指数衰减、高斯曲线等。SciPy通过scipy.optimize.curve_fit支持这种拟合,我还可以指定每个点的权重。这给了我很好的加权非线性拟合。从结果中,我可以提取参数及其各自的错误。只有一个警告:错误仅用作权重,但不包含在错误中。如果我将所有数据点的误差加倍,我预计结果的不确定性也会增加。所以我构建了一个测试用例(sourcecode)来测试它。配合scipy.optimize.curve_fit给我:Parameters:[1.999007562.99695535