问题描述
假设我有一个名为 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'].values
和pandas 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']))