草庐IT

scipy-optimize

全部标签

python - 如何在没有 Python 调用开销的情况下直接从 Cython 调用 numpy/scipy C 函数?

我正在尝试在Cython中进行计算,这些计算严重依赖于一些numpy/scipy数学函数,例如numpy.log。我注意到如果我在Cython的循环中重复调用numpy/scipy函数,会产生巨大的开销成本,例如:importnumpyasnpcimportnumpyasnpnp.import_array()cimportcythondefmyloop(intnum_elts):cdefdoublevalue=0forninxrange(num_elts):#callnumpyfunctionvalue=np.log(2)这非常昂贵,大概是因为np.log通过Python而不是直接调用

python - 如何在没有 Python 调用开销的情况下直接从 Cython 调用 numpy/scipy C 函数?

我正在尝试在Cython中进行计算,这些计算严重依赖于一些numpy/scipy数学函数,例如numpy.log。我注意到如果我在Cython的循环中重复调用numpy/scipy函数,会产生巨大的开销成本,例如:importnumpyasnpcimportnumpyasnpnp.import_array()cimportcythondefmyloop(intnum_elts):cdefdoublevalue=0forninxrange(num_elts):#callnumpyfunctionvalue=np.log(2)这非常昂贵,大概是因为np.log通过Python而不是直接调用

python - scipy.sparse 矩阵的逐元素幂

我如何提高scipy.sparse矩阵的幂,逐元素?numpy.power应该,根据itsmanual,这样做,但它在稀疏矩阵上失败了:>>>X'with144875storedelementsinCompressedSparseRowformat>>>>np.power(X,2)Traceback(mostrecentcalllast):File"",line1,inFile".../scipy/sparse/base.py",line347,in__pow__raiseTypeError('matrixisnotsquare')TypeError:matrixisnotsquare

python - scipy.sparse 矩阵的逐元素幂

我如何提高scipy.sparse矩阵的幂,逐元素?numpy.power应该,根据itsmanual,这样做,但它在稀疏矩阵上失败了:>>>X'with144875storedelementsinCompressedSparseRowformat>>>>np.power(X,2)Traceback(mostrecentcalllast):File"",line1,inFile".../scipy/sparse/base.py",line347,in__pow__raiseTypeError('matrixisnotsquare')TypeError:matrixisnotsquare

python - 使用 SciPy 在矩形网格上集成 2D 样本

SciPy有三种对样本进行一维积分的方法(trapz、simps和romb)和一种对函数进行二维积分的方法(dblquad),但它似乎没有进行二维积分的方法超过样本——甚至是矩形网格上的样本。我看到的最接近的是scipy.interpolate.RectBivariateSpline.integral——您可以从矩形网格上的数据创建一个RectBivariateSpline,然后对其进行积分。但是,这并不是很快。我想要比矩形方法更准确的方法(即只是总结所有内容)。比方说,我可以使用2DSimpson规则,方法是创建一个具有正确权重的数组,将其乘以我想要积分的数组,然后对结果求和。但是,

python - 使用 SciPy 在矩形网格上集成 2D 样本

SciPy有三种对样本进行一维积分的方法(trapz、simps和romb)和一种对函数进行二维积分的方法(dblquad),但它似乎没有进行二维积分的方法超过样本——甚至是矩形网格上的样本。我看到的最接近的是scipy.interpolate.RectBivariateSpline.integral——您可以从矩形网格上的数据创建一个RectBivariateSpline,然后对其进行积分。但是,这并不是很快。我想要比矩形方法更准确的方法(即只是总结所有内容)。比方说,我可以使用2DSimpson规则,方法是创建一个具有正确权重的数组,将其乘以我想要积分的数组,然后对结果求和。但是,

python - scipy.special 导入问题

我在导入scipy.special包时遇到问题。它没有害处,只是烦人/有趣。当我使用importscipyassp导入scipy然后尝试访问sp.special我得到:>>>importscipyassp>>>sp.specialTraceback(mostrecentcalllast):File"",line1,inAttributeError:'module'objecthasnoattribute'special'>>>但是如果我随后执行importscipy.special我可以通过scipy.special和sp.special访问特殊模块:>>>importscipyass

python - scipy.special 导入问题

我在导入scipy.special包时遇到问题。它没有害处,只是烦人/有趣。当我使用importscipyassp导入scipy然后尝试访问sp.special我得到:>>>importscipyassp>>>sp.specialTraceback(mostrecentcalllast):File"",line1,inAttributeError:'module'objecthasnoattribute'special'>>>但是如果我随后执行importscipy.special我可以通过scipy.special和sp.special访问特殊模块:>>>importscipyass

python - numpy 和 scipy 中的 cholesky 有什么区别?

我使用Cholesky分解从多维高斯中抽取随机变量,并计算随机变量的功率谱。我从numpy.linalg.cholesky得到的结果总是比scipy.linalg.cholesky有更高的高频功率。可能导致此结果的这两个函数之间的区别是什么?哪个在数值上更稳定?这是我使用的代码:n=2000m=10000c0=np.exp(-.05*np.arange(n))C=linalg.toeplitz(c0)Xn=np.dot(np.random.randn(m,n),np.linalg.cholesky(C))Xs=np.dot(np.random.randn(m,n),linalg.cho

python - numpy 和 scipy 中的 cholesky 有什么区别?

我使用Cholesky分解从多维高斯中抽取随机变量,并计算随机变量的功率谱。我从numpy.linalg.cholesky得到的结果总是比scipy.linalg.cholesky有更高的高频功率。可能导致此结果的这两个函数之间的区别是什么?哪个在数值上更稳定?这是我使用的代码:n=2000m=10000c0=np.exp(-.05*np.arange(n))C=linalg.toeplitz(c0)Xn=np.dot(np.random.randn(m,n),np.linalg.cholesky(C))Xs=np.dot(np.random.randn(m,n),linalg.cho