Array multidimensi

Pemrograman Paralel dengan Dask di Python

James Fulton

Climate Informatics Researcher

Jenis data multidimensi

  • Prakiraan/pengamatan cuaca
  • Pindai biomedis 3D
  • Citra satelit
  • Data dari instrumen ilmiah lain
Pemrograman Paralel dengan Dask di Python

HDF5

Logo HDF

  • Hierarchical Data Format
  • Disimpan dalam format hierarkis—seperti (sub)direktori
Pemrograman Paralel dengan Dask di Python

Seperti apa file HDF5?

Sebuah folder tunggal

Pemrograman Paralel dengan Dask di Python

Seperti apa file HDF5?

Sebuah folder berisi empat dataset dan beberapa metadata.

Pemrograman Paralel dengan Dask di Python

Menavigasi file HDF5 dengan h5py

import h5py

# Open the HDF5 file
file = h5py.File('data.hdf5')


# Print the available datasets inside the file print(file.keys())
<KeysViewHDF5 ['A', 'B', 'C', 'D']}>
Pemrograman Paralel dengan Dask di Python

Menavigasi file HDF5 dengan h5py

import h5py

# Open the HDF5 file
file = h5py.File('data.hdf5')


# Select dataset A dataset_a = file['/A']
print(dataset_a)
<HDF5 dataset "A": shape (10000, 100, 100), type "<f4">
Pemrograman Paralel dengan Dask di Python

Memuat dari HDF5

import dask.array as da

# Load dataset into a Dask array a = da.from_array(dataset_a, chunks=(100, 20, 20))
print(a)
dask.array<array, shape=(10000, 100, 100), dtype=float32, chunksize=(100, 20, 20),
    chunktype=numpy.ndarray>
Pemrograman Paralel dengan Dask di Python

Zarr

  • Dataset hierarkis seperti HDF5
  • Dirancang untuk di-chunk
  • Baik untuk streaming di layanan cloud seperti AWS, Google Cloud, dll.
  • Struktur file mudah dinavigasi
Pemrograman Paralel dengan Dask di Python

Memuat dari Zarr

import dask.array as da

a = da.from_zarr("dataset.zarr", component="A")


print(a)
dask.array<from-zarr, shape=(10000, 100, 100), dtype=float32,
    chunksize=(100, 20, 20), chunktype=numpy.ndarray>
Pemrograman Paralel dengan Dask di Python

Ayo berlatih!

Pemrograman Paralel dengan Dask di Python

Preparing Video For Download...