草庐IT

space-efficiency

全部标签

python - Python 中的 Tarfile : Can I untar more efficiently by extracting only some of the data?

我正在从USGS订购一大堆陆地卫星场景,这些场景作为tar.gz存档。我正在编写一个简单的python脚本来解压缩它们。每个文件包含15张大小为60-120MB的tiff图像,总计刚刚超过2GB。我可以使用以下代码轻松提取整个文件:importtarfilefileName="LT50250232011160-SC20140922132408.tar.gz"tfile=tarfile.open(fileName,'r:gz')tfile.extractall("newfolder/")我实际上只需要这15个tiff中的6个,在标题中标识为“带”。这些是一些较大的文件,因此它们加在一起约

python 3 : Most efficient way to create a [func(i) for i in range(N)] list comprehension

假设我有一个函数func(i),它为整数i创建一个对象,而N是某个非负整数。那么创建等于此列表的列表(不是范围)的最快方法是什么mylist=[func(i)foriinrange(N)]不求助于高级方法,例如在C中创建函数?我对上述列表理解的主要关注是我不确定python是否事先知道range(N)的长度来预分配mylist,因此必须逐步重新分配列表。是这种情况还是python足够聪明,可以先将mylist分配给长度N,然后再计算它的元素?如果没有,创建mylist的最佳方法是什么?也许是这个?mylist=[None]*Nforiinrange(N):mylist[i]=func(

python - seaborn FacetGrid : How to leave proper space on top for suptitle

有人可以告诉我如何在FacetGrid顶部留出额外空间吗?我尝试将super标题放在FacetGrid图的顶部,但由于默认设置中顶部的边距非常有限,最终导致super标题与子图标题重叠。谢谢 最佳答案 使用Figure方法subplots_adjust在图的顶部添加空间:g=sns.lmplot("x","y",col="c",data=df)g.figure.suptitle("Titleoftheplot",size=16)g.figure.subplots_adjust(top=.9)

Python/numpy : Most efficient way to sum n elements of an array, 这样每个输出元素都是前n个输入元素的总和?

我想编写一个函数,它将一个展平数组作为输入并返回一个等长数组,其中包含输入数组中前n个元素的总和,初始n-1元素输出数组的设置为NaN。例如,如果数组有十个elements=[2,4,3,7,6,1,9,4,6,5]和n=3那么结果数组应该是[NaN,NaN,9,14,16,14,16,14,19,15]。我想到的一种方法:defsum_n_values(flat_array,n):sums=np.full(flat_array.shape,np.NaN)foriinrange(n-1,flat_array.shape[0]):sums[i]=np.sum(flat_array[i-n

python + matplotlib : how to insert more space between the axis and the tick labels in a polar chart?

我正在尝试使用matplotlib和python2.7制作极坐标图,但我正在努力研究如何增加同一轴的X轴和刻度标签之间的空间。正如您在图片上看到的,12:00和6:00的标签看起来很好,我希望所有其他标签都有相同的空间。我试过ax.xaxis.LABELPAD=10但是没有任何效果。这是我的代码(抱歉弄得一团糟......):importnumpyasnpimportmatplotlibasmplmpl.use('Agg')importmatplotlib.pyplotaspltimportmatplotlib.datesfrommatplotlib.datesimportYearLo

python - Python 中的列表理解 : efficient selection in a list

假设我有一个元素列表,我只想根据特定函数(例如到另一个元素的距离)选择其中的一些元素。我想得到一个包含距离和元素的元组列表。于是,我写了下面的代码result=[(myFunction(C),C)forCinoriginalListifmyFunction(C)但是myFunction是一个非常耗时的函数,而且originalList比较大。这样做,myFunction将为每个选定的元素调用两次。那么,有没有办法避免这种情况呢??我还有另外两种可能,但都不太好:第一个是创建未过滤的列表unfiltered=[(myFunction(C),C)forCinoriginalList]然后排

python - PySide-PyQt : How to make set QTableWidget column width as proportion of the available space?

我正在使用PySide开发计算机应用程序,并且我正在使用QTableWidget。假设我的表有3列,但它们包含的数据非常不同,比如(对于每一行)第一列中有一个长句子,然后是最后两列中的3位数字。我希望调整表格大小以根据数据调整其大小,或者至少能够将列大小设置为(比如)70/15/15%的可用空间。执行此操作的最佳方法是什么?在阅读thisquestion后,我尝试了table.horizo​​ntalHeader().setResizeMode(QHeaderView.Stretch)但它使3列大小相同。感谢Fabio,我也尝试了table.horizo​​ntalHeader().s

python - 在 Python 中,如何列出与 POSIX 扩展正则表达式 `[:space:]` 匹配的所有字符?

在Python中,如何列出POSIX扩展正则表达式[:space:]匹配的所有字符?是否有一种编程方式可以提取[:space:]涵盖的Unicode代码点? 最佳答案 使用生成器而不是列表理解,使用xrange而不是range:>>>s=u''.join(unichr(c)forcinxrange(0x10ffff+1))Traceback(mostrecentcalllast):File"",line1,inFile"",line1,inValueError:unichr()argnotinrange(0x10000)(narro

python - 将 BytesIO 对象写入文件, 'efficiently'

因此,将BytesIO对象写入文件的快速方法是使用:withopen('myfile.ext','wb')asf:f.write(myBytesIOObj.getvalue())myBytesIOObj.close()但是,如果我想遍历myBytesIOObj而不是将它写成一个block,我该怎么做呢?我在使用Python2.7.1。另外,如果BytesIO很大,那么迭代写入是否是一种更有效的方式?谢谢 最佳答案 shutil有一个可以高效写入文件的实用程序。它以block的形式复制,默认为16K。任何4Kblock的倍数都应该是一

python - matplotlib.pyplot.imshow : removing white space within plots when using attributes "sharex" and "sharey"

我遇到了一个类似于here上发布的问题.不同之处在于,当我绘制两个通过sharex和sharey属性共享轴的子图时,我在绘图区域内得到不需要的空白。即使在设置autoscale(False)之后,空白仍然存在。例如,使用与上述帖子的答案中类似的代码:importmatplotlib.pyplotaspltimportnumpyasnpfig=plt.figure()ax=fig.add_subplot(2,1,1)ax.imshow(np.random.random((10,10)))ax.autoscale(False)ax2=fig.add_subplot(2,1,2,sharex