Позволяет пользователю использовать мощность процессора и выполнять распределенные вычисления
Dask — это гибкая библиотека параллельных вычислений на Python, которая позволяет пользователям использовать мощность своих ядер ЦП и выполнять распределенные вычисления с наборами данных, объем которых превышает объем памяти.
Вот пример того, как Dask можно использовать для предварительной обработки распределенных данных в большом наборе данных:
import dask.dataframe as dd # Read in the dataset using Dask df = dd.read_csv('large_dataset.csv') # Perform distributed filtering on the dataset filtered_df = df[df['column1'] > 0] # Perform distributed aggregation on the filtered dataset agg_df = filtered_df.groupby('column2').agg({'column3': ['mean', 'min', 'max']}) # Perform distributed transformation on the aggregated dataset transformed_df = agg_df.reset_index() # Save the transformed dataset to a file transformed_df.to_csv('transformed_dataset.csv')
В этом примере мы используем Dask для чтения большого набора данных из файла, фильтруем набор данных, чтобы включить только строки, где значение в column1
больше 0, агрегируем отфильтрованный набор данных по column2
и вычисляем среднее, минимальное и максимальное значение column3
, преобразуйте агрегированный набор данных, сбросив индекс, и сохраните преобразованный набор данных в файл.
Вот пример того, как Dask можно использовать для обучения модели машинного обучения на большом наборе данных:
import dask.dataframe as dd from dask_ml.model_selection import train_test_split from dask_ml.linear_model import LogisticRegression # Read in the dataset using Dask df = dd.read_csv('large_dataset.csv') # Split the dataset into training and test sets X_train, X_test, y_train, y_test = train_test_split(df[['column1', 'column2']], df['target']) # Train a logistic regression model on the training set model = LogisticRegression() model.fit(X_train, y_train) # Evaluate the model on the test set accuracy = model.score(X_test, y_test) print(f'Test accuracy: {accuracy:.2f}')
В этом примере мы используем Dask для чтения большого набора данных из файла, разбиваем набор данных на обучающий и тестовый наборы с помощью train_test_split
, обучаем модель логистической регрессии на обучающем наборе с помощью LogisticRegression
и оцениваем модель на тестовом наборе.
Вот пример того, как Dask можно использовать для визуализации распределенных данных в большом наборе данных:
import dask.dataframe as dd import matplotlib.pyplot as plt # Read in the dataset using Dask df = dd.read_csv('large_dataset.csv') # Create a scatter plot of the relationship between two columns df.plot.scatter(x='column1', y='column2') plt.show() # Create a histogram of the values in a column df['column3'].plot.hist() plt.show() # Create a heatmap of the correlation between multiple columns corr = df.corr() mask = np.triu(np.ones_like(corr, dtype=bool)) sns.heatmap(corr, mask=mask) plt.show()
В этом примере мы используем Dask для чтения большого набора данных из файла, создаем точечную диаграмму взаимосвязи между column1
и column2
, создаем гистограмму значений в column3
и создаем тепловую карту корреляции между несколькими столбцами.
Dask разбивает наборы данных на более мелкие фрагменты, выполняет задачи в каждом фрагменте параллельно, используя несколько ядер ЦП, а затем объединяет результаты. Это позволяет нам визуализировать большие наборы данных, которые в противном случае были бы слишком велики для размещения в памяти.
Дополнительные материалы на PlainEnglish.io.
Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.
Хотите масштабировать запуск своего программного обеспечения? Ознакомьтесь с разделом Схема.