标签: scipy

SciPy中的多个变量优化.最小化

根据SciPy文档,可以使用多个变量最小化函数,但它没有说明如何优化这些函数.

from scipy.optimize import minimize
from math import *

def f(c):
  return sqrt((sin(pi/2) + sin(0) + sin(c) - 2)**2 + (cos(pi/2) + cos(0) + cos(c) - 1)**2)

print minimize(f, 3.14/2 + 3.14/7)
Run Code Online (Sandbox Code Playgroud)

上面的代码确实尝试最小化函数f,但对于我的任务,我需要最小化三个变量.

简单地引入第二个参数并相应地调整最小化会产生错误(TypeError: f() takes exactly 2 arguments (1 given)).

minimize使用多个变量进行最小化时如何工作.

python math scipy

53
推荐指数
1
解决办法
5万
查看次数

具有稀疏矩阵的LCP

我用大写字母表示矩阵,用小写字母表示向量.

我需要解决以下矢量线性不等式系统v:

min(rv - (u + Av), v - s) = 0
Run Code Online (Sandbox Code Playgroud)

哪里0是零矢量.

其中r是一个标量,u并且s是载体,以及A是一个矩阵.

定义z = v-s,B=rI - A,q=-u + Bs,我可以重写前面的问题作为线性互补问题,并希望能使用LCP求解器,例如openopt:

LCP(M, z): min(Bz+q, z) = 0
Run Code Online (Sandbox Code Playgroud)

或者,以矩阵表示法:

z'(Bz+q) = 0
z >= 0
Bz + q >= 0
Run Code Online (Sandbox Code Playgroud)

问题是我的方程系统很大.要创造A,我

  • 创建四个矩阵A11,A12,A21,A22使用scipy.sparse.diags
  • 并将它们堆叠在一起 A = scipy.sparse.bmat([[A11, A12], [A21, …

python scipy sparse-matrix

53
推荐指数
2
解决办法
1153
查看次数

如何获取numpy数组中所有NaN值的索引列表?

说现在我有一个numpy数组,定义为,

[[1,2,3,4],
[2,3,NaN,5],
[NaN,5,2,3]]
Run Code Online (Sandbox Code Playgroud)

现在我想要一个包含缺失值的所有索引的列表,[(1,2),(2,0)]在这种情况下.

有什么方法可以做到吗?

python numpy scipy

51
推荐指数
3
解决办法
7万
查看次数

50
推荐指数
4
解决办法
5万
查看次数

Python中的可逆STFT和ISTFT

是否有任何通用形式的短时傅里叶变换,其中相应的逆变换内置于SciPy或NumPy或其他任何东西?

specgram在matplotlib中有pyplot 函数,它调用ax.specgram()哪些调用mlab.specgram()调用_spectral_helper():

#The checks for if y is x are so that we can use the same function to
#implement the core of psd(), csd(), and spectrogram() without doing
#extra calculations.  We return the unaveraged Pxy, freqs, and t.
Run Code Online (Sandbox Code Playgroud)

这是一个辅助函数,它实现了204#psd,csd和谱图之间的通用性.它 并不意味着在mlab之外使用

不过,我不确定这是否可以用来做STFT和ISTFT.还有什么,或者我应该翻译这些MATLAB函数吗?

我知道如何编写自己的临时实现; 我只是在寻找功能齐全的东西,它可以处理不同的窗口函数(但是有一个合理的默认值),完全可以与COLA windows(istft(stft(x))==x)完全颠倒,由多人测试,没有一个一个错误,处理结束和零填充,实际输入的快速RFFT实现等.

python signal-processing fft scipy

49
推荐指数
3
解决办法
3万
查看次数

matplotlib - 从轮廓线中提取数据

我想从均匀间隔的2D数据(类似图像的数据)的单个轮廓获取数据.

基于类似问题中的示例:如何获得由等高线图(matplotlib)绘制的线的(x,y)值?

>>> import matplotlib.pyplot as plt
>>> x = [1,2,3,4]
>>> y = [1,2,3,4]
>>> m = [[15,14,13,12],[14,12,10,8],[13,10,7,4],[12,8,4,0]]
>>> cs = plt.contour(x,y,m, [9.5])
>>> cs.collections[0].get_paths()
Run Code Online (Sandbox Code Playgroud)

这次调用的结果cs.collections[0].get_paths()是:

[Path([[ 4.          1.625     ]
 [ 3.25        2.        ]
 [ 3.          2.16666667]
 [ 2.16666667  3.        ]
 [ 2.          3.25      ]
 [ 1.625       4.        ]], None)]
Run Code Online (Sandbox Code Playgroud)

基于这些图,这个结果是有意义的,并且似乎是轮廓线的(y,x)对的集合.

除了手动循环这个返回值,提取坐标和组合线的数组,是否有更好的方法从matplotlib.path对象获取数据?从数据中提取数据时是否存在需要注意的陷阱matplotlib.path

或者,有没有替代品matplotlib或更好numpy/ scipy做类似的事情?理想的是获得描述该线的(x,y)对的高分辨率矢量,可用于进一步分析,因为通常我的数据集不像上面的例子那么小或简单.

python numpy matplotlib contour scipy

49
推荐指数
3
解决办法
3万
查看次数

Python中的多元正常密度?

是否有任何python包允许有效计算多变量正常pdf?

它似乎没有被包含在Numpy/Scipy中,并且令人惊讶的是谷歌搜索没有发现任何有用的东西.

python numpy scipy

49
推荐指数
5
解决办法
5万
查看次数

找出矩阵是否肯定与numpy

我需要找出矩阵是否是正定的.我的矩阵是numpy矩阵.我期待在numpy库中找到任何相关的方法,但没有成功.我感谢任何帮助.

python numpy matrix scipy

49
推荐指数
5
解决办法
3万
查看次数

python numpy/scipy曲线拟合

我有一些观点,我正在尝试适合这一点的曲线.我知道存在scipy.optimize.curve_fit函数,但我不懂文档,即如何使用这个函数.

我的观点: np.array([(1, 1), (2, 4), (3, 1), (9, 3)])

任何人都可以解释如何做到这一点?

python numpy curve-fitting scipy

49
推荐指数
2
解决办法
15万
查看次数

Scipy稀疏...数组?

所以,我正在使用非常稀疏的numpy数组进行一些Kmeans分类 - 很多很多零.我想我会使用scipy的'稀疏'软件包来减少存储开销,但我对如何创建数组而不是矩阵有点困惑.

我已经完成了关于如何创建稀疏矩阵的教程:http: //www.scipy.org/SciPy_Tutorial#head-c60163f2fd2bab79edd94be43682414f18b90df7

为了模拟一个数组,我只是创建一个1xN矩阵,但正如你可能猜到的,Asp.dot(Bsp)不能正常工作,因为你不能将两个1xN矩阵相乘.我必须将每个数组转换为Nx1,这非常蹩脚,因为我会为每个点积计算做这个.

接下来,我尝试创建一个NxN矩阵,其中第1列==第1行(这样您可以将两个矩阵相乘,只需将左上角作为点积),但结果证明效率非常低.

我喜欢使用scipy的稀疏包作为numpy的数组()的神奇替代品,但到目前为止,我还不确定该怎么做.

有什么建议?

python numpy matrix scipy sparse-matrix

48
推荐指数
1
解决办法
3万
查看次数