
190
8 章 Toolz を使って小さなノートパソコンでビッグデータを処理する方法
た。
Toolz
の構成要素により、ストリーミング用のプログラムを非常にエレガントに書けるように
なるので、本書の準備段階で
Toolz
に関する章を抜きにすることは考えられませんでした。
ここで、本章で言う「ストリーミング」の定義と、ストリーミングをする価値がある理由を明ら
かにしたいと思います。仮に、テキストファイルのデータがあり、値の
log(x + 1)
の列ごとの平均
値を求めたいとします。一般的な方法は、
NumPy
を使って値を読み込み、行列のすべての値の対
数関数を計算し、それから第
1
軸の平均値を取る以下のようなものでしょう。
import numpy as np
expr = np.loadtxt('data/expr.tsv')
logexpr = np.log(expr + 1)
np.mean(logexpr, axis=0)
array([ 3.11797294, 2.48682887, 2.19580049, 2.36001866, 2.70124539,
2.64721531, 2.43704834, 3.28539133, 2.05363724, 2.37151577,
3.85450782, 3.9488385 , 2.46680157, 2.36334423, 3.18381635,
2.64438124, 2.62966516, 2.84790568, 2.61691451, 4.12513405]) ...