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()
更多地了解您的图书馆可能有助于更好地回答这个问题。
我知道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()
更多地了解您的图书馆可能有助于更好地回答这个问题。