簡體   English   中英

如何將Dask數據框轉換為Dask數組?

[英]How do I convert a Dask Dataframe into a Dask Array?

我有一個dask數據框對象,但想擁有一個dask數組。 我該如何完成?

有三種方法可以做到這一點。

  1. 使用恰當命名的.to_dask_array()方法
  2. 與熊貓一樣使用.values屬性或to_records()方法
  3. 使用map_partitions調用所有將pandas數據map_partitions轉換為所有分區上的numpy數組的函數

這是做這三個步驟的示例。

>>> import dask

>>> df = dask.datasets.timeseries()

>>> df
Dask DataFrame Structure:
                   id    name        x        y
npartitions=30                                 
2000-01-01      int64  object  float64  float64
2000-01-02        ...     ...      ...      ...
...               ...     ...      ...      ...
2000-01-30        ...     ...      ...      ...
2000-01-31        ...     ...      ...      ...
Dask Name: make-timeseries, 30 tasks

>>> import numpy as np

>>> df.map_partitions(np.asarray)
dask.array<asarray, shape=(nan, 4), dtype=object, chunksize=(nan, 4)>

>>> df.to_dask_array()
dask.array<array, shape=(nan, 4), dtype=object, chunksize=(nan, 4)>

>>> df.values
dask.array<values, shape=(nan, 4), dtype=object, chunksize=(nan, 4)>

>>> df.to_records()  # note that this returns a record array
dask.array<to_records, shape=(nan,), dtype=(numpy.record, [('timestamp', 'O'), ('id', '<i8'), ('name', 'O'), ('x', '<f8'), ('y', '<f8')]), chunksize=(nan,)

>>> dask.__version__
0.19.0

請注意,由於Dask數據幀不維護每個塊中的行數,因此生成的數組也將不具有此信息。 (請注意形狀和塊大小中的NaN值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM