草庐IT

Python - 在 2D numpy 数组中查找特定值的最大面积的有效方法

我有一个二维numpy数组,其中有些值为零,有些则不是。我试图找到一种有效的方法来找到数组中最大的零block(通过返回零的数量,以及中心位置的粗略概念)例如,在这个数组中,我想找到中心为(3,4)的9团:[[1,1,1,0,0],[1,0,1,1,0],[1,1,1,1,1],[1,1,0,0,0],[1,1,0,0,0],[1,1,0,0,0]]在numpy或scipy中是否有一种很好的矢量化方法来完成这样的事情?团block大致呈圆形,并且没有孔。ndimage.label()fromscipy做了一些接近于此的事情,但并不是我所追求的。我有一种感觉numpy.where()和n

python - PyData 生态系统

我在一些地方读到了PyData(例如here),但我仍然对这个术语的真正含义感到困惑。PyData是官方实体吗?(例如,是否有拥有/支持PyData.org的基金会?)。这只是一个session吗?或者它主要是一个松散地用来指代Python包列表的术语?还有哪些包被认为是PyData生态系统的核心部分?它只是任何可用于处理数据的包吗?(那将是非常通用的)。我发现的一些包通常与PyData相关:NumpyScipyPandasScikit-LearnNLTKPyMCNumbaBlaze此列表是否与通常与PyData关联的包组一致?还是有什么重要的遗漏?最后,PyData生态系统在多大程度

python - SciPy interp1d 结果不同于 MatLab interp1

我正在将MatLab程序转换为Python,但我无法理解为什么scipy.interpolate.interp1d给出的结果与MatLabinterp1不同。在MatLab中,用法略有不同:yi=interp1(x,Y,xi,'cubic')科学:f=interp1d(x,Y,kind='cubic')yi=f(xi)对于一个简单的例子,结果是一样的:数学实验室:interp1([01234],[01234],[1.52.53.5],'cubic')1.50002.50003.5000python:interp1d([1,2,3,4],[1,2,3,4],kind='cubic')([

python - 使用 pylab 绘制从 Scipy 返回的图像

我正在努力从MatLab迁移到Sage中的python。所以我使用了这些命令,但我在Sage中遇到了这个错误:fromscipyimportmiscl=misc.lena();importpylabasplpl.imshow(l)错误或消息(我不知道)是:matplotlib.image.AxesImageobjectat0xb80198c它不显示任何图像 最佳答案 这不是错误,只是打印该方法返回的对象。显示图形的方式有两种:调用pl.imshow(l)后添加pl.show()使用ipython--pylab打开你的pythonsh

python - 使用 SciPy 规则网格在 Python 中进行快速二维插值以进行分散/不规则评估

我有一个规则的训练值网格(向量x和y分别有网格xmesh和ymesh以及已知的zmesh值)但是要插值的一组分散/参差不齐/不规则的值(向量xI和yI,我们在哪里对zI[0]=f(xI[0],yI[0])...zI[N-1]=f(xI[N-1],yI[N-1])感兴趣。此插值将是作为优化问题的一部分被调用了数百万次,因此性能太重要了,不能简单地使用制作网格和跟踪的方法。到目前为止,我已经能够找到一个接近我想要的scipy.interpolate函数,即Bpf函数。然而,因为它是一个分散的输入,我假设它没有很好的性能,我想用我更了解的样条、线性和最近邻插值方法来测试它,我希望它会更快。我

python - scipy.special.binom 和 scipy.misc.comb 有什么区别?

scipy.special.binom和scipy.misc.comb有什么区别?在ipython中,我可以看到它们返回不同的类型并且具有不同的准确性。scipy.special.binom(4,3)4.0scipy.misc.comb(4,3)array(4.000000000000001)然而,他们究竟在做什么不同?看着https://github.com/scipy/scipy/blob/master/scipy/special/generate_ufuncs.py,scipy.special.binom说binom--binom:dd->d--orthogonal_eval.p

python - 从直方图制作概率分布函数 (PDF)

假设我有几个直方图,每个直方图在不同bin位置(在实轴上)都有计数。例如defgenerate_random_histogram():#Randombinlocationsbetween0and100bin_locations=np.random.rand(10,)*100bin_locations.sort()#Randomcountsbetween0and50onthoselocationsbin_counts=np.random.randint(50,size=len(bin_locations))return{'loc':bin_locations,'count':bin_co

python - Python 和 Scipy 中的季节性调整

我希望使用Python对月度数据进行季节性调整。从这些系列中可以看出:www.emconfidential.com,数据中有很高的季节性成分。我想对此进行调整,以便我可以更好地判断系列趋势是上升还是下降。有人知道如何使用scipy或其他Python库轻松地做到这一点吗? 最佳答案 Statsmodels可以做到这一点。它们具有基本的季节性分解以及人口普查X13调整的包装。您还可以使用rpy2访问R的一些出色的SA库。这是statsmodels季节性分解:importpandasaspdimportstatsmodels.apiass

python - 提高 Scipy 稀疏矩阵乘法的性能

给定一个尺寸为(170kx170k)且具有4.4亿个非空点的ScipyCSC稀疏矩阵“sm”和一个具有几个非空点的稀疏CSC向量“v”(170kx1),是否存在任何问题可以这样做来提高操作的性能:resul=sm.dot(v)?目前大约需要1秒。将矩阵初始化为CSR将时间增加到3秒,因此CSC表现更好。SM是产品之间的相似性矩阵,V是表示用户购买或点击了哪些产品的向量。所以对于每个用户sm都是一样的。我使用的是Ubuntu13.04、Inteli3@3.4GHz、4核。研究SO我读到了Ablas包。我在终端输入:~$ldd/usr/lib/python2.7/dist-packages

python - 噪声和 'interesting' 数据集上的高斯拟合

我有一些数据(X射线衍射)如下所示:我想对这个数据集进行高斯拟合,以获得“更宽”部分的FWHM。7度左右的双峰不是重要信息,来自不需要的来源。为了让自己更清楚,我想要这样的东西(我用油漆画的:)):我尝试使用以下代码在python中编写脚本:importmathfrompylabimport*importnumpyasnpimportscipyasspimportmatplotlib.pyplotaspltfromscipy.optimizeimportcurve_fitdata2=np.loadtxt('FWHM.spc')x2,y2=data2[:,0],data2[:,7]plt