9

数値の DataFrame を配列に簡単に変換する方法はありますか? valuespandas DataFrame と同様です。提供された API を使用してこれを行う方法を見つけることができないようですが、それは一般的な操作だと思います。

4

3 に答える 3

9

編集:はい、これは簡単です

.values物件をご利用いただけます

x = df.values

古い、今は間違った答え

現時点では、これを行う簡単な方法はありません。これは、dask.array がすべてのチャンクの長さを知る必要があり、dask.dataframe がこの長さを知らないためです。これは完全に怠惰な操作ではありません。

そうは言っても、次のようにdask.delayedを使用して実現できます。

import dask.array as da
from dask import compute

def to_dask_array(df):
    partitions = df.to_delayed()
    shapes = [part.values.shape for part in partitions]
    dtype = partitions[0].dtype

    results = compute(dtype, *shapes)  # trigger computation to find shape
    dtype, shapes = results[0], results[1:]

    chunks = [da.from_delayed(part.values, shape, dtype) 
              for part, shape in zip(partitions, shapes)]
    return da.concatenate(chunks, axis=0)
于 2016-05-26T01:17:38.473 に答える