Dask arrays

Python में Dask के साथ Parallel Programming

James Fulton

Climate informatics researcher

Arrays को chunk करना

एकल ब्लॉक के रूप में array दिखाता है

Python में Dask के साथ Parallel Programming

Arrays को chunk करना

array को कई chunks में टूटा हुआ दिखाता है

Python में Dask के साथ Parallel Programming

NumPy बनाम Dask arrays

एकल ब्लॉक के रूप में array दिखाता है

import numpy as np

x = np.ones((4000, 6000))
print(x.sum())
24000000.0
  • चलने में 740 मिलीसेकंड लगते हैं

array को कई chunks में टूटा हुआ दिखाता है

import dask.array as da

x = da.ones((4000, 6000), chunks=(1000,2000))
print(x.sum().compute())
24000000.0
  • चलने में 60 मिलीसेकंड लगते हैं
Python में Dask के साथ Parallel Programming

Dask array टास्क ग्राफ

टास्क ग्राफ की शाखाएँ अंतिम उत्तर पर मिलती हैं, यह दिखाता है.

Python में Dask के साथ Parallel Programming

Dask array methods

Dask arrays में लगभग वही methods होते हैं जो NumPy arrays में होते हैं.

  • x.max()
  • x.min()
  • x.sum()
  • x.mean()
  • आदि
print(sum_down_columns.compute())
array([1000., 1000., 1000., 1000., 
    1000., 1000., 1000., 1000., 1000.,
    1000.])
Python में Dask के साथ Parallel Programming

Dask arrays को NumPy arrays जैसा उपयोग करना

# Dask array के साथ lazy गणित
y1 = x**2 + 2*x + 1

# Lazy slicing
y2 = x[:10]

# NumPy functions लगाना भी lazy है
y3 = np.sin(x)
print(y1)
dask.array<add, shape=(1000, 10), ...
print(y2)
dask.array<getitem, shape=(10, 10), ...
print(y3)
dask.array<sin, shape=(1000, 10), ...
Python में Dask के साथ Parallel Programming

इमेज arrays लोड करना

import dask.array as da

import da.image
image_array = da.image.imread('images/*.png')
print(image_array)
dask.array<imread, shape=(40000, 256, 256, 3), dtype=uint8, 
    chunksize=(1, 256, 256, 3), chunktype=numpy.ndarray>
Python में Dask के साथ Parallel Programming

Chunks पर कस्टम फंक्शन लगाना

def instagram_filter(image):
    ...
    return pretty_image

# हर इमेज पर फंक्शन स्वतंत्र रूप से लागू करें pretty_image_array = image_array.map_blocks(instagram_filter)
print(pretty_image_array)
dask.array<instagram_filter, shape=(40000, 256, 256, 3), dtype=uint8, 
    chunksize=(1, 256, 256, 3), chunktype=numpy.ndarray>
Python में Dask के साथ Parallel Programming

अभ्यास करते हैं!

Python में Dask के साथ Parallel Programming

Preparing Video For Download...