2015-11-23 5 views
0

Я знаю, что внутренняя модель данных h2o ориентирована на столбцы (а именно, H2OFrame представляет собой набор H2OVec). Тем не менее, библиотека, которую я хотел бы использовать, требует итерации по строкам H2OFrame.h2o: итерация по строкам

Есть чистый способ, чтобы получить итератор на строках или мне нужно прибегать к индексации как

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, когда это возможно.

ответ

1

Вы можете применять поровну. iris.apply(foo,1)

Где foo некоторая лямбда, что h2o понимает (есть некоторые ограничения на то, что может пойти туда, но все основные математические опс должны работать нормально).

Клифф

0

В дополнение к тому, что сказал Клифф (который является более быстрым способом), вы также можете вытащить весь кадр данных в пространство Python, а затем итерацию на нем.

pd_frame = h2o_frame.as_data_frame(use_pandas=True) 

Если вы не хотите панд в конце:

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

Немного больше о вашей библиотеке может помочь ответить на вопрос лучше.

Смежные вопросы