Dav*_*ton 14 python plot matplotlib data-analysis
我在这里读到matplotlib擅长处理大型数据集.我正在编写一个数据处理应用程序并将matplotlib图形嵌入到wx中,并且发现matplotlib在处理大量数据时都是可怕的,无论是速度还是内存方面.有没有人知道一种方法来加速(减少内存占用)matplotlib而不是下采样输入?
为了说明matplotlib与内存有多糟糕,请考虑以下代码:
import pylab
import numpy
a = numpy.arange(int(1e7)) # only 10,000,000 32-bit integers (~40 Mb in memory)
# watch your system memory now...
pylab.plot(a) # this uses over 230 ADDITIONAL Mb of memory
Run Code Online (Sandbox Code Playgroud)
小智 5
下采样在这里是一个很好的解决方案——在 matplotlib 中绘制 10M 点会消耗大量内存和时间。如果您知道可以接受多少内存,那么您可以根据该数量进行下采样。例如,假设 1M 点需要额外 23 MB 的内存,并且您发现它在空间和时间方面是可以接受的,因此您应该进行下采样,使其始终低于 1M 点:
if(len(a) > 1M):
a = scipy.signal.decimate(a, int(len(a)/1M)+1)
pylab.plot(a)
Run Code Online (Sandbox Code Playgroud)
或者像上面的代码片段(上面的代码可能会过于激进地降低采样率,不符合你的口味。)
归档时间: |
|
查看次数: |
5830 次 |
最近记录: |