h2o:遍历行

h2o: iterate through rows

我知道h2o 的内部数据模型是面向列的(即H2OFrame 是H2OVec 的集合)。但是,我想使用的库需要遍历 H2OFrame 的行。

是否有一种干净的方法来获取行上的迭代器,或者我是否需要像

那样求助于索引
iris = h2o.import_file(path=".../iris_wheader.csv")
for i in xrange(iris.nrow):
    foo( iris[i,:].as_data_frame(use_pandas=False)[1] )

我知道它会很慢,我会尽可能使用 h2o.h2o.export_file

您可以按行应用。 iris.apply(foo,1)

其中 foo 是 h2o 可以理解的一些 lambda(其中可以包含的内容有一些限制,但所有基本的数学运算都应该可以正常工作)。

悬崖

除了 Cliff 所说的(这是更快的方法)之外,您还可以将整个数据框拉入 Python space 然后对其进行迭代。

pd_frame = h2o_frame.as_data_frame(use_pandas=True)

如果你不想Pandas最后:

np_array = h2o_frame.as_data_frame(use_pandas=True).as_matrix()

更多地了解您的图书馆可能有助于更好地回答这个问题。