我正在使用代码进行地球物理时间序列的谱估计。
import matplotlib.pyplot as plt
plt.style.use("ggplot")
import numpy as np
from mtspec import mtspec
from mtspec.util import _load_mtdata
from guppy import hpy
h = hpy()
print h.heap()
data = np.loadtxt('500.dat')
spec,freq,jackknife,f_statistics,degrees_of_f = mtspec(data=data, delta= 40.0, time_bandwidth=4 ,number_of_tapers=7, nfft= 512, statistics=True)
我明白了:
milenko@milenko-HP-Compaq-6830s:~$ python mt4.py
Partition of a set of 214843 objects. Total size = 35303944 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 15461 7 8538896 24 8538896 24 unicode
1 77241 36 7769768 22 16308664 46 str
2 43700 20 3870600 11 20179264 57 tuple
3 582 0 1443984 4 21623248 61 dict of PyQt4.QtCore.pyqtWrapperType
4 352 0 1395712 4 23018960 65 dict of module
5 10118 5 1295104 4 24314064 69 types.CodeType
6 858 0 1265136 4 25579200 72 dict (no owner)
7 9893 5 1187160 3 26766360 76 function
8 1123 1 1112392 3 27878752 79 dict of type
9 1123 1 1012552 3 28891304 82 type
<900 more rows. Type e.g. '_.more' to view.>
如果我采用1000点的时间序列(之前的情况是500),我也得到了相同的结果:
milenko@milenko-HP-Compaq-6830s:~$ python mt5.py
Partition of a set of 214843 objects. Total size = 35303944 bytes.
Index Count % Size % Cumulative % Kind (class / dict of class)
0 15461 7 8538896 24 8538896 24 unicode
1 77241 36 7769768 22 16308664 46 str
2 43700 20 3870600 11 20179264 57 tuple
3 582 0 1443984 4 21623248 61 dict of PyQt4.QtCore.pyqtWrapperType
4 352 0 1395712 4 23018960 65 dict of module
5 10118 5 1295104 4 24314064 69 types.CodeType
6 858 0 1265136 4 25579200 72 dict (no owner)
7 9893 5 1187160 3 26766360 76 function
8 1123 1 1112392 3 27878752 79 dict of type
9 1123 1 1012552 3 28891304 82 type
<900 more rows. Type e.g. '_.more' to view.>
所以这意味着将时间序列加倍(我可以看到)变化。如何解释这个?guppy
对我来说是正确的选择吗?
答案 0 :(得分:0)
确实是个老问题,但最好还是把它扔出去...
您正在加载文件之前进行内存分析-如果在调用print h.heap()
之后移动np.loadtxt(...)
,我想它将包含您想要的数据