您的选择标准非常简单:
t[(t.A == 4) & (t.B == 8) & (t.E == 10)]
以现成的iris
样本数据集为例:
from blaze import data
from blaze.utils import example
iris = data(example('iris.csv'))
iris[(iris.sepal_length == 7) & (iris.petal_length > 2)]
sepal_length sepal_width petal_length petal_width species
50 7 3.2 4.7 1.4 Iris-versicolor
文档讨论了 Blaze 中的并行处理。
请注意,只能对可以以非串行方式轻松拆分的数据集进行并行化。特别是不能对单个 CSV 文件进行并行计算。CSV 文件的集合和 HDF5 和 BColz 等二进制存储系统都支持多处理。
显示使用多处理时单个 csv 文件的时间大致相同:
import multiprocessing
pool = multiprocessing.Pool(4)
%timeit -n 1000 compute(iris[(iris.sepal_length > 7) & (iris.petal_length > 2)],
map=pool.map)
1000 loops, best of 1: 12.1 ms per loop
%timeit -n 1000 compute(iris[(iris.sepal_length > 7) & (iris.petal_length > 2)])
1000 loops, best of 1: 11.7 ms per loop