如您所说,推出自己的产品并不难。您需要自己设置垃圾箱,并在遍历文件时重新使用它们。以下应该是一个体面的起点:
import numpy as npdatamin = -5datamax = 5numbins = 20mybins = np.linspace(datamin, datamax, numbins)myhist = np.zeros(numbins-1, dtype='int32')for i in range(100): d = np.random.randn(1000,1) htemp, jnk = np.histogram(d, mybins) myhist += htemp
我猜想对于如此大的文件,性能将是一个问题,并且在每一行上调用直方图的开销可能太慢。
@doug关于生成器的建议似乎是解决该问题的好方法。
这是一种直接将您的值归类的方法:
import numpy as NPcolumn_of_values = NP.random.randint(10, 99, 10)# set the bin values:bins = NP.array([0.0, 20.0, 50.0, 75.0])binned_values = NP.digitize(column_of_values, bins)
'binned_values'是一个索引数组,包含
column_of_values中每个值所属的bin的索引。
“ bincount”将(显然)为您提供垃圾箱计数:
NP.bincount(binned_values)
给定数据集的大小,使用Numpy的’loadtxt’构建生成器可能会有用:
data_array = NP.loadtxt(data_file.txt, delimiter=",")def fnx() : for i in range(0, data_array.shape[1]) : yield dx[:,i]



