Основные методы создания массивов NumPy

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии представлен пошаговый гайд по созданию массивов с использованием NumPy - фундаментальной библиотеки для контейнеров массивов в Python. Вы научитесь различным методам создания массивов, включая преобразование последовательностей Python, использование встроенных функций NumPy для создания массивов, копирование и объединение существующих массивов, чтение массивов с диска, создание массивов из необработанных байтов и использование специальных библиотечных функций.

Примечание: Вы можете писать код в 01-array-creation.ipynb. В некоторых шагах некоторые операции вывода опущены, и вы можете выводить результат по своему усмотрению.

Преобразование последовательностей Python в массивы NumPy

Для создания массивов NumPy можно преобразовать последовательности Python, такие как списки и кортежи. Вот, как это можно сделать:

import numpy as np

## Создать 1-мерный массив из списка
a1D = np.array([1, 2, 3, 4])

## Создать 2-мерный массив из списка списков
a2D = np.array([[1, 2], [3, 4]])

## Создать 3-мерный массив из вложенных списков
a3D = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

При создании массивов можно также указать тип данных с использованием параметра dtype. Будьте осторожны при назначении типов данных, чтобы избежать переполнения или неожиданных результатов.

Использование встроенных функций NumPy для создания массивов

NumPy предоставляет встроенные функции для создания массивов. Вот некоторые примеры:

import numpy as np

## Создать 1-мерный массив с регулярно возрастающими значениями
arr1D = np.arange(10)

## Создать 1-мерный массив с заданным типом данных
arr1D_float = np.arange(2, 10, dtype=float)

## Создать 1-мерный массив с заданным количеством элементов
arr1D_linspace = np.linspace(1., 4., 6)

## Создать 2-мерную единичную матрицу
identity_matrix = np.eye(3)

## Создать 2-мерный массив с заданными значениями по диагонали
diag_matrix = np.diag([1, 2, 3])

## Создать матрицу Вандермонда
vander_matrix = np.vander([1, 2, 3, 4], 2)

## Создать массив, заполненный нулями
zeros_array = np.zeros((2, 3))

## Создать массив, заполненный единицами
ones_array = np.ones((2, 3))

## Создать массив, заполненный случайными значениями
random_array = np.random.default_rng(42).random((2, 3))

Копирование, объединение или изменение существующих массивов

После создания массивов вы можете скопировать, объединить или изменить их, чтобы создать новые массивы. При присвоении массива или его элементов новой переменной используйте функцию np.copy, чтобы создать новый массив, а не представление (view) на исходный массив. Вот пример:

import numpy as np

## Создать массив
a = np.array([1, 2, 3, 4])

## Создать представление первых двух элементов массива
b = a[:2]

## Изменить представление
b += 1

## Распечатать исходный массив и измененное представление
print('a =', a, '; b =', b)

Для объединения массивов вы можете использовать функции, такие как np.vstack, np.hstack и np.block. Вот пример объединения четырех массивов размером 2x2 в массив размером 4x4 с использованием np.block:

import numpy as np

A = np.ones((2, 2))
B = np.eye(2)
C = np.zeros((2, 2))
D = np.diag((-3, -4))

result = np.block([[A, B], [C, D]])

Чтение массивов с диска

Массивы можно читать с диска в различных форматах. Для стандартных двоичных форматов существуют библиотеки Python, такие как h5py для HDF5 и Astropy для FITS. Для общих ASCII-форматов, таких как CSV и TSV, можно использовать функции np.loadtxt и np.genfromtxt. Вот пример чтения CSV-файла:

import numpy as np

data = np.loadtxt('data.csv', delimiter=',', skiprows=1)

Резюме

В этом практическом занятии вы узнали, как создавать массивы с использованием NumPy. Вы изучили различные методы, включая преобразование последовательностей Python, использование встроенных функций NumPy для создания массивов, копирование и объединение существующих массивов, чтение массивов с диска, создание массивов из необработанных байтов и использование специальных библиотечных функций. С помощью этих методов вы можете эффективно создавать и манипулировать массивами для различных научных и задач анализа данных.