Çok boyutlu diziler

Python ile Dask ile Paralel Programlama

James Fulton

Climate Informatics Researcher

Çok boyutlu veri türleri

  • Hava tahminleri/gözlemleri
  • 3B biyomedikal taramalar
  • Uydu görüntüleri
  • Diğer bilimsel cihaz verileri
Python ile Dask ile Paralel Programlama

HDF5

HDF logosu

  • Hierarchical Data Format
  • Hiyerarşik biçimde saklanır — (alt) dizinler gibi
Python ile Dask ile Paralel Programlama

Bir HDF5 dosyası nasıl görünür?

Tek bir klasör

Python ile Dask ile Paralel Programlama

Bir HDF5 dosyası nasıl görünür?

Dört veri kümesi ve bazı üstveriler içeren tek klasör.

Python ile Dask ile Paralel Programlama

h5py ile HDF5 dosyalarında gezinme

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']}>
Python ile Dask ile Paralel Programlama

h5py ile HDF5 dosyalarında gezinme

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">
Python ile Dask ile Paralel Programlama

HDF5'ten yükleme

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>
Python ile Dask ile Paralel Programlama

Zarr

  • HDF5 gibi hiyerarşik veri kümesi
  • Parçalara bölünecek şekilde tasarlandı
  • AWS, Google Cloud vb. üzerinde akış için uygun
  • Gezilebilir dosya yapısı
Python ile Dask ile Paralel Programlama

Zarr'dan yükleme

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>
Python ile Dask ile Paralel Programlama

Hadi pratik yapalım!

Python ile Dask ile Paralel Programlama

Preparing Video For Download...