Tag: numpy

从eclipse运行时,closuresmatplotlib中已有的graphics

我的问题很简单:我有一个使用matplotlib生成数字的python脚本。 每次我运行它都会产生一个带有数字的新窗口。 我怎样才能让脚本closures上次运行时打开的窗口? 在matlab中类似的命令是在matlab脚本的开头放置'closures所有'。 我看到了几个build议来做类似的事情 import matplotlib.pyplot as plt plt.close("all") 如果你从python shell运行你的脚本,例如使用这个解决scheme >>>> execfile("myScript.py") 但是,我发现,如果我使用Eclipse / PyDev运行脚本,这是行不通的。 我怎样才能在Eclipse中工作? 例: from numpy import * from matplotlib.pyplot import * from scipy import * close("all") #close any previously open plots – this doesn't work when running via Eclipse t = linspace(0, 0.1,1000) w = 60*2*pi figure() plot(t,cos(w*t)) plot(t,cos(w*t-2*pi/3)) […]

如何在matplotlib中closuresimshow()的模糊效果?

我想做一个概率的颜色图,然而imshow会产生有零概率的点的模糊值。 我怎样才能摆脱围绕真实网格点的模糊周边? 例: import numpy as np import matplotlib.pyplot as plt a=np.asarray([[ 0.00000000e+00 , 1.05824446e-01 , 2.05086136e-04, 0.00000000e+00], [ 1.05824446e-01 , 3.15012305e-01 , 1.31255127e-01 , 1.05209188e-01], [ 2.05086136e-04 , 1.31255127e-01 , 0.00000000e+00 , 0.00000000e+00], [ 0.00000000e+00 ,1.05209188e-01 , 0.00000000e+00 , 0.00000000e+00]]) im=plt.imshow(a,extent=[0,4,0,4],origin='lower',alpha=1,aspect='auto') plt.show()

用Cython简单的包装C代码

我有一些C函数,我想从Python中调用它们。 cython似乎是要走的路,但我不能真正find一个这样做的例子。 我的C函数看起来像这样: void calculate_daily ( char *db_name, int grid_id, int year, double *dtmp, double *dtmn, double *dtmx, double *dprec, double *ddtr, double *dayl, double *dpet, double *dpar ) ; 我只想指定前三个参数(一个string和两个整数),然后恢复8个numpy数组(或python列表,所有双数组都有N个元素)。 我的代码假定指针指向已经分配的内存块。 另外,生成的C代码应该链接到一些外部库。

如何使用python numpy.savetxt将string和浮点数写入ASCII文件?

我有一组包含string和浮点数的列表,例如: import numpy as num NAMES = num.array(['NAME_1', 'NAME_2', 'NAME_3']) FLOATS = num.array([ 0.5 , 0.2 , 0.3 ]) DAT = num.column_stack((NAMES, FLOATS)) 我想将这两个列表叠在一起,并以列的forms写入文本文件; 因此,我想使用numpy.savetxt (如果可能的话)来做到这一点。 num.savetxt('test.txt', DAT, delimiter=" ") 当我这样做,我得到以下错误: >>> num.savetxt('test.txt', DAT, delimiter=" ") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Python/2.7/site-packages/numpy-1.8.0.dev_9597b1f_20120920-py2.7-macosx-10.8-x86_64.egg/numpy/lib/npyio.py", line 1047, in savetxt fh.write(asbytes(format % […]

在Python中打包遗留的FORTRAN。 可以使用`setuptools`和`numpy.distutils`吗?

我正在尝试为我的领域中的一些stream行的Fortran代码做一个python包分发。 我希望它使用setup.py文件最标准的方法。 相关问题有助于学习如何打包Fortran扩展 。 当使用这种方法时,我注意到混合setuptools和numpy.distutils时有一些混淆的行为。 混合两者是不好的做法? 截至2015年,似乎最好尽可能使用setuptools 。 不过,我想用与numpy.兼容的方式构buildFortran扩展numpy. 所以我想从numpy.distutils导入来获得Extension和setup 。 我正在使用以下基本方法: from setuptools.command.develop import develop from numpy.distutils.core import Extension, setup ext_modules=[Extension("my_package.fortran_mod", sources=['src/fortran_mod.f'])] class MyDevelop(develop): def run(self): my_script() develop.run(self) setup( … ext_modules=ext_modules, cmdclass={'develop':MyDevelop}) 这似乎工作,但我有问题。 混合setuptools和numpy.distribute通常是一个好的做法吗? 我input的订单是否重要? 我应该总是先导入setuptools ? 有没有官方的最新教程打包numpy扩展? 也许甚至有一些讨论Fortran扩展? – 一些链接 http://www.fortran90.org/src/best-practices.html#interfacing-with-python

Python的networking托pipe:Numpy,Matplotlib,科学计算

我在Numpy / Scipy / Matplotlib中编写科学软件。 在家用电脑上开发了应用程序之后,我现在对编写简单的Web应用程序感兴趣。 例如:用户上传图片或audio文件,我的程序使用Numpy / Scipy进行处理,使用Matplotlib在浏览器上显示输出,或者用户可以下载处理的文件。 我已经支付了安装了Python 2.4.3的主机,但没有Numpy / Scipy。 我没有通过命令行访问shell。 只需拖放FTP即可。 相当有限,但我可以得到简单的Python / CGI脚本工作。 令人惊讶的是,一个networkingsearch发现了几个适当的networking托pipe选项,这些function已经内置(请指导我,如果我错了)。我正在学习谷歌应用程序引擎,但我还没有完全了解其工具和限制。 networking告诉我的是,其他人也有类似的担忧。 希望能find解决办法,我想我会问这些简单的问题到真棒社区: 有没有简单的方法安装numpy(或任何第三方包/库)到我已经托pipe的空间? 我知道我的托pipe空间的Pythonpath,我知道我的家用电脑上的相关的Python / Numpy目录。 我可以简单地复制文件,并使其工作? 本地和远程系统都运行Ubuntu。 哪些托pipe网站存在(免费或付费)有Numpy / Matplotlib安装,或者,如果没有安装,安装它的可能性? 是否有任何logging的网站,您可以参考工作申请,无论多么简单? Google App Engine可以以任何方式帮助我吗? 还是完全是为了别的? 你或其他人是否用Python / Numpy编写了科学应用程序? 如果是这样,你可以参考吗? 感谢您的帮助。 编辑:在下面的有用答案后,我买了Slicehost 20美元的计划,我爱它到目前为止! (我第一次尝试亚马逊EC2,我一定很愚蠢,但是我却无法工作。)用Apache设置Ubuntu服务器只花了几个小时(而且我是一个Apache新手)。 它使我可以用Python来做更多的事情。 我现在也有自己的版本控制远程存储库。 再次感谢! 编辑2:近两年后,我试了Linode和EC2(再次)。 Linode很棒。 EC2似乎更容易一些 – 也许这只是增加了经验,或者也许是亚马逊对AWSpipe理控制台的改进。 对于那些对Numpy / Scipy / […]

连接Numpy数组而不复制

在Numpy中,我可以使用np.append或np.concatenate连接两个数组: >>> X = np.array([[1,2,3]]) >>> Y = np.array([[-1,-2,-3],[4,5,6]]) >>> Z = np.append(X, Y, axis=0) >>> Z array([[ 1, 2, 3], [-1, -2, -3], [ 4, 5, 6]]) 但是这些复制了他们的input数组: >>> Z[0,:] = 0 >>> Z array([[ 0, 0, 0], [-1, -2, -3], [ 4, 5, 6]]) >>> X array([[1, 2, 3]]) 有没有办法将两个数组连接成一个视图 ,即不复制? 那需要一个np.ndarray子类吗?

防止matplotlib中imshow的消除锯齿

当我使用matplotlib的imshow()方法来表示一个小的numpymatrix时,它最终会在像素之间做一些平滑处理。 有什么办法来禁用这个? 这使我的形象在演讲中误导。 上图是一个28×28的图像,所以我应该看到代表每个像素的单一颜色的大方块(如matlab在使用imagesc()时显示的那样)。 但相反,像素似乎与相邻的像素模糊。 有没有办法来禁用这种行为?

不可变的numpy数组?

有没有一种简单的方法来创build一个不可变的NumPy数组? 如果必须从ndarray派生一个类来做到这一点,那么为了实现不可变性,必须重写的最小方法是什么?

更改matplotlib imshow()graphics轴上的值

说我有一些input数据: data = np.random.normal(loc=100,scale=10,size=(500,1,32)) hist = np.ones((32,20)) # initialise hist for z in range(32): hist[z],edges = np.histogram(data[:,0,z],bins=np.arange(80,122,2)) 我可以使用imshow()来绘制它: plt.imshow(hist,cmap='Reds') 得到: 但是,x轴值与input数据不匹配(即平均值为100,范围从80到122)。 因此,我想改变x轴来显示edges的值。 我努力了: ax = plt.gca() ax.set_xlabel([80,122]) # range of values in edges … # this shifts the plot so that nothing is visible 和 ax.set_xticklabels(edges) … # this labels the axis but does not […]