草庐IT

scipy-optimize

全部标签

python - 在 python/numpy/scipy 中生成低差异准随机序列?

有alreadyaquestion关于这个,但答案包含一个断开的链接,并且已经超过两年了,我希望现在有更好的解决方案:)低差异准随机序列,例如Sobol序列比均匀随机序列更均匀地填充空间。有没有一种好的/简单的方法可以在python中生成它们? 最佳答案 我认为Python中低差异序列的最佳替代方案是灵敏度分析库(SALib):https://github.com/SALib/SALib我认为这是一个活跃的项目,您可以联系作者以检查您需要的功能是否已经实现。如果这不能解决您的问题,CorradoChisari将一个用Matlab(由

python - scipy - 生成具有相关性的随机变量

我正致力于在Python中实现一个基本的蒙特卡罗模拟器,用于我尝试做的一些项目管理风险建模(基本上是CrystalBall/@Risk,但在Python中)。我有一组n随机变量(所有scipy.stats实例)。我知道我可以使用rv.rvs(size=k)从每个nk独立观察变量。我想通过指定一个nxn半正定相关矩阵来引入变量之间的相关性。在scipy中有没有一种干净的方法来做到这一点?我尝试过的Thisanswer和thisanswer似乎表明“copulas”将是一个答案,但我没有在scipy中看到任何对它们的引用。Thislink似乎实现了我正在寻找的东西,但我不确定scipy是否

Python/Scipy 插值 (map_coordinates)

我正在尝试使用scipy进行一些插值。我已经查看了很多示例,但我没有找到我想要的东西。假设我有一些数据,其中行和列变量可以在0到1之间变化。每行和列之间的增量变化并不总是相同(见下文)。|0.000.250.801.00------|----------------------------0.00|1.406.501.501.800.60|8.907.301.101.091.00|4.509.201.801.20现在我希望能够获取一组x,y点并确定插值。我知道我可以用map_coordinates做到这一点。我想知道是否有任何简单/聪明的方法可以为数据数组中的适当索引创建x,y值。例如

python - 相当于 MATLAB spy 的 scipy

我一直在将isomap算法的代码从MATLAB移植到Python。我正在尝试使用spy函数可视化稀疏模式。MATLAB命令:spy(sparse(A));drawnow;Python命令:matplotlib.pyplot.spy(scipy.sparse.csr_matrix(A))plt.show()我无法使用上述命令在Python中重现MATLAB结果。使用仅包含非稀疏格式A的命令会给出与MATLAB非常相似的结果。但这需要很长时间(A是2000到2000)。什么是MATLAB等同于scipy的稀疏函数? 最佳答案 也许是您的

python - 如何在图像处理中减小图像尺寸(scipy/numpy/python)

你好,我有一张图像(1024x1024),我在numpy中使用“fromfile”命令将该图像的每个像素放入矩阵中。如何通过修改矩阵a来减小图像的大小(例如,减小到512x512)?a=numpy.fromfile((-path-,'uint8').reshape((1024,1024))我不知道如何修改矩阵a以减小图像的大小。因此,如果有人有任何想法,请分享您的知识,我将不胜感激。谢谢编辑:当我查看结果时,我发现我得到的阅读器读取了图像并将其放入“矩阵”中。所以我将“数组”更改为矩阵。Jose告诉我,我只能将偶数列和偶数行放入一个新矩阵中。这会将图像缩小一半。我需要使用scipy/n

python - scipy 稀疏矩阵中每一行或列的 Argmax

scipy.sparse.coo_matrix.max返回每行或每列的最大值,给定一个轴。我想知道的不是值,而是每行或列的最大值的索引。我还没有找到一种有效的方法,所以我很乐意接受任何帮助。 最佳答案 我建议研究代码moo._min_or_max_axis其中moo是一个coo_matrix。mat=mat.tocsc()#foraxis=0mat.sum_duplicates()major_index,value=mat._minor_reduce(min_or_max)not_full=np.diff(mat.indptr)[m

python - 乘以 scipy.lti 传递函数

我有以下scipy.lti对象,它基本上是一个表示LTI系统的拉普拉斯变换的对象:G_s=lti([1],[1,2])如何将这样的传递函数与另一个传递函数相乘,例如:H_s=lti([2],[1,2])#I_s=G_s*H_s我想我可以做I_s=lti(np.polymul([1],[2]),np.polymul([1,2],[1,2]))但是如果我想做什么呢:#I_s=H_s/(1+H_s)有没有简单的方法可以用scipy做到这一点? 最佳答案 有趣的是,Scipy似乎不提供该功能。另一种方法是将LTI系统转换为Sympy有理函数

python - 在 scipy.stats 中,rv_continuous 有一个 fit 方法来查找 MLE,但 rv_discrete 没有。为什么?

我想为一些可能受离散分布支配的数据找到最大似然估计。但是在scipy.stats中,只有代表连续分布的类才有合适的函数来做到这一点。代表离散分布的类不代表的原因是什么? 最佳答案 简短的回答:因为据我所知,没有人为它编写代码,甚至没有人尝试过。更长的答案:我不知道使用通用最大似然法的离散模型可以走多远,就像连续分布一样,它适用于许多但不是所有这些。大多数离散分布对参数都有严格的限制,并且很可能大多数都需要特定于分布的拟合方法>>>[(f,getattr(stats,f).shapes)forfindir(stats)ifisinst

python - 使用 scipys generic_filter 实现 "Kurtosis filter"

我有一个5000*5000numpy数组,我想在其上计算大小为25的窗口的峰度。我尝试将scipys自己的峰度函数放在generic_filter中找到在ndimage.filters中像这样:importnumpyasnpfromscipy.statsimportkurtosisfromscipy.ndimage.filtersimportgeneric_filtermat=np.random.random_sample((5000,5000))kurtosis_filter=generic_filter(mat,kurtosis,size=25,mode='reflect')这永远

python - scipy最小二乘法中的正交回归拟合

scipylib中的leastsq方法对某些数据拟合曲线。这种方法意味着在这个数据中Y值取决于一些X参数。并计算Y轴上曲线与数据点的最小距离(dy)但是如果我需要计算两个轴(dy和dx)上的最小距离怎么办有什么方法可以实现这个计算吗?这是使用单轴计算时的代码示例:importnumpyasnpfromscipy.optimizeimportleastsqxData=[somedata...]yData=[somedata...]defmFunc(p,x,y):returny-(p[0]*x**p[1])#istakesintoaccountonlyyaxisplsq,pcov=leas