Scipy:用于拟合伽玛分布的大文件

时间:2016-11-12 11:29:46

标签: python scipy hdf5

我需要计算数据包捕获的TTL分布的伽马分布参数。捕获的大小约为14 GB。

首先,我使用Wireshark的tshark工具从文件中提取所有TTL值:

tshark -r file -Y ip -T fields -e ip.ttl > ttl_values.txt

生成的文件由TTL值(每行一个)组成,约为。 700 MByte。如果我尝试使用genfromtxt加载值,则进程会因内存耗尽而被终止。

data = np.genfromtxt('ttl_values.txt')

但是,如果我使用更小的TTL文件(大约56K),它可以正常工作。我读到h5dftables建议用于处理大文件,因此我将文件ttl_values.txt转换为h5p文件,如下所示:

filepath = 'random_vals'
out_file = filepath + '.h5p'
h5 = pd.HDFStore(out_file, 'w')
it = pd.read_csv(filepath + '.txt', iterator=True, chunksize=100000)
for i, chunk in enumerate(it):
        h5.append('data', chunk)
h5.close()

但我现在找不到有关如何将这些数据用于gamma.fit方法的任何信息:

data = # use data from ttl_values.txt
fit_alpha, fit_log, fit_beta=stats.gamma.fit(data)
print('alpha: ', fit_alpha)
print('log: ', fit_log)
print('beta: ', fit_beta)
  1. 必须以表格(ttl-value,packet-count)提供数据,还是我的输入文件包含每个数据包的TTL(每行一个)?
  2. h5dftables的方法是否合适?
  3. 如何阅读该文件以将其用作gamma.fit
  4. 的数据对象

0 个答案:

没有答案
相关问题