1

我知道 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尽可能使用。

4

2 回答 2

1

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

pd_frame = h2o_frame.as_data_frame(use_pandas=True)

如果你最后不想要熊猫:

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

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

于 2015-12-17T23:42:03.887 回答
1

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

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

悬崖

于 2015-12-17T19:26:44.277 回答