Mảng đa chiều

Lập trình song song với Dask trong Python

James Fulton

Climate Informatics Researcher

Các loại dữ liệu đa chiều

  • Dự báo/quan trắc thời tiết
  • Ảnh quét y sinh 3D
  • Ảnh vệ tinh
  • Dữ liệu từ các thiết bị khoa học khác
Lập trình song song với Dask trong Python

HDF5

Logo HDF

  • Hierarchical Data Format
  • Lưu trữ theo phân cấp — như (thư mục) con
Lập trình song song với Dask trong Python

Tệp HDF5 trông như thế nào?

Một thư mục trống

Lập trình song song với Dask trong Python

Tệp HDF5 trông như thế nào?

Một thư mục chứa bốn tập dữ liệu và siêu dữ liệu.

Lập trình song song với Dask trong Python

Duyệt tệp HDF5 với 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']>
Lập trình song song với Dask trong Python

Duyệt tệp HDF5 với 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">
Lập trình song song với Dask trong Python

Tải từ 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>
Lập trình song song với Dask trong Python

Zarr

  • Tập dữ liệu phân cấp như HDF5
  • Thiết kế để chia khối (chunk)
  • Phù hợp truyền tải qua dịch vụ đám mây như AWS, Google Cloud, v.v.
  • Cấu trúc tệp dễ duyệt
Lập trình song song với Dask trong Python

Tải từ 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>
Lập trình song song với Dask trong Python

Ayo berlatih!

Lập trình song song với Dask trong Python

Preparing Video For Download...