H2OFrame列到数组:最快的方法?

问题描述

假设我有一个名为 val new_df =Seq(("a","b","ab"),("b","a",("a","c","ac")).toDF("col1","col2","col3") 的H2OFrame。从上述帧中以df数组的形式获取x的值的最快方法是什么?

一个可以做

numpy

但这似乎不必要地冗长。特别是通过x_array = df['x'].as_data_frame()['x'].valuespandas DataFrame传递似乎是多余的。我希望有一些更优雅的东西,例如as_data_frame。但是我找不到它。

解决方法

这是另一种方式。但是,我不确定它会更快。我正在使用h2o.as_list()函数将列转换为列表,然后使用np.array()函数将列表转换为数组。

import h2o
import numpy as np

h2o.init()

# Using sample dataset from H2O
train = h2o.import_file("https://s3.amazonaws.com/erin-data/higgs/higgs_train_10k.csv")


## Creating np array from h2o frame column  
np.array(h2o.as_list(train['x1']))