NumPy — это библиотека языка программирования Python, которая предоставляет удобные инструменты для работы с массивами и выполнения математических операций над ними. С его помощью можно создавать, изменять, фильтровать и анализировать данные в виде массивов, а также выполнять высокопроизводительные вычисления.
Это руководство предназначено для тех, кто только начинает изучать NumPy или хочет обзавестись практическими навыками в создании массивов в Python. Мы рассмотрим основные способы создания массивов с помощью NumPy, а также ознакомимся с некоторыми полезными методами, которые позволят нам эффективно работать с данными в массивах.
Перед началом работы с NumPy, убедитесь, что вы установили его на свое устройство. Установить NumPy достаточно просто — нужно выполнить команду ‘pip install numpy’ в командной строке. После установки NumPy вы сможете начать создавать массивы и проводить с ними различные операции.
Основные понятия
Массив — это упорядоченная коллекция элементов одного типа, расположенных в памяти последовательно, так чтобы их можно было эффективно обрабатывать.
Многомерный массив (также называемый ndarray) — это таблица элементов одного типа, индексируемая кортежем неотрицательных целых чисел. Каждое измерение массива называется осью, а количество осей — рангом массива.
Элемент — это значение внутри массива. Каждый элемент массива имеет свой индекс, определяемый его положением в массиве.
Индексация — процесс доступа к элементам массива по определенному индексу или диапазону индексов. Индексация в Numpy начинается с нуля.
Тип данных — это характеристика, определяющая множество значений, которые могут быть приняты элементами массива. Каждый элемент массива имеет один и тот же тип данных.
Форма массива — это размерность массива, указывающая количество элементов в каждой оси. Форма массива определяется его размерами или длинами осей.
Выравнивание — процесс приведения нескольких массивов к одной и той же форме. Выравнивание нужно для выполнения операций над массивами, требующих одинакового количества элементов в каждой оси.
Создание одномерных массивов
Создание одномерного массива в библиотеке numpy осуществляется с помощью функции numpy.array()
. В качестве аргумента этой функции передается список или кортеж элементов, которые будут содержаться в массиве.
Пример создания одномерного массива:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
Результат выполнения кода:
[1 2 3 4 5]
Таким образом, мы создали одномерный массив с элементами [1, 2, 3, 4, 5].
Также можно создать одномерный массив, указав тип данных элементов. Для этого используется аргумент dtype
функции numpy.array()
. Например, можно создать массив из чисел с плавающей точкой:
import numpy as np
arr = np.array([1.1, 2.2, 3.3, 4.4, 5.5], dtype=float)
print(arr)
Результат выполнения кода:
[1.1 2.2 3.3 4.4 5.5]
Таким образом, мы создали одномерный массив с элементами [1.1, 2.2, 3.3, 4.4, 5.5] и указали, что тип данных элементов должен быть float
.
Также можно создать одномерный массив с помощью функций numpy.arange()
или numpy.linspace()
. Они позволяют задать диапазон значений элементов массива.
Пример создания одномерного массива с помощью numpy.arange()
:
import numpy as np
arr = np.arange(1, 10, 2)
print(arr)
Результат выполнения кода:
[1 3 5 7 9]
Таким образом, мы создали одномерный массив с элементами [1, 3, 5, 7, 9], где первый аргумент указывает начало диапазона, второй — конец, а третий — шаг.
Пример создания одномерного массива с помощью numpy.linspace()
:
import numpy as np
arr = np.linspace(1, 10, 5)
print(arr)
Результат выполнения кода:
[ 1. 3.25 5.5 7.75 10. ]
Таким образом, мы создали одномерный массив с элементами [1.0, 3.25, 5.5, 7.75, 10.0], где первый аргумент указывает начало диапазона, второй — конец, а третий — количество элементов в массиве.
Создание двумерных массивов
Двумерный массив представляет собой таблицу с расположенными в ячейках элементами. В Python существует несколько способов создания таких массивов при помощи библиотеки Numpy.
Первый способ — использование функции numpy.array()
. Для создания двумерного массива при вызове функции numpy.array()
передаем список списков, каждый из которых представляет строки массива:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr)
[[1 2 3]
[4 5 6]
[7 8 9]]
Второй способ — использование функции numpy.zeros()
. Данная функция создает двумерный массив, все элементы которого равны нулю:
import numpy as np
arr = np.zeros((3, 3))
print(arr)
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
Третий способ — использование функции numpy.ones()
. При вызове функции передаем размерность массива и все элементы будут равны единице:
import numpy as np
arr = np.ones((2, 4))
print(arr)
[[1. 1. 1. 1.]
[1. 1. 1. 1.]]
Четвертый способ — использование функции numpy.eye()
. Данная функция создает единичную матрицу заданного размера, в которой все элементы на главной диагонали равны единице, а остальные — нулю:
import numpy as np
arr = np.eye(3)
print(arr)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
Пятый способ — использование функции numpy.arange()
. При вызове функции передаем начальное значение, конечное значение и шаг. Функция создаст одномерный массив в заданном диапазоне значений и затем преобразует его в двумерный массив с помощью функции reshape()
:
import numpy as np
arr = np.arange(1, 10, 2).reshape(2, 2)
print(arr)
[[1 3]
[5 7]]
Это лишь некоторые из способов создания двумерных массивов в Python с использованием библиотеки Numpy. Выбор способа зависит от вашей конкретной задачи и предпочтений.
Операции с массивами
Массивы в Numpy предоставляют множество операций и функций для работы с данными. В этом разделе мы рассмотрим основные операции с массивами:
— Сложение и вычитание: с помощью операторов «+» и «-» можно выполнять поэлементное сложение и вычитание массивов. Для этого массивы должны иметь одинаковую форму.
— Умножение и деление: с помощью операторов «*» и «/» можно выполнять поэлементное умножение и деление массивов.
— Возведение в степень: с помощью оператора «**» можно возводить все элементы массива в указанную степень.
— Матричное умножение: с помощью функции np.dot() можно выполнять умножение матриц и векторов.
— Транспонирование: с помощью метода .T можно получить транспонированную копию массива.
— Суммирование: с помощью функции np.sum() можно вычислить сумму всех элементов массива. Возможно указывать ось, по которой будет происходить суммирование.
— Нахождение минимума и максимума: с помощью функций np.min() и np.max() можно найти минимальное и максимальное значение в массиве.
— Сортировка: с помощью метода .sort() можно отсортировать элементы массива в порядке возрастания.
— Индексирование: с помощью квадратных скобок можно получить доступ к элементам массива по определенным индексам.
— Присваивание значений: с помощью оператора «=» можно присвоить значения другому массиву или скаляру.
— Изменение формы: с помощью метода .reshape() можно изменить размеры массива или преобразовать его в матрицу.
— Заполнение значениями: с помощью функции np.zeros() можно создать массив заданной формы, заполненный нулями, а с помощью функции np.ones() можно создать массив, заполненный единицами.
Эти операции позволяют выполнять различные преобразования и анализ данных в Python с использованием библиотеки Numpy.
Индексация и срезы
Индексы в массиве NumPy начинаются с нуля. Чтобы получить элемент по индексу, необходимо указать его позицию в квадратных скобках после имени массива.
import numpy as np
array = np.array([1, 2, 3, 4, 5])
element = array[2] # получаем третий элемент
Также можно получить доступ ко многомерным массивам, указывая индексы для каждой размерности через запятую.
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6]])
element = array[1, 2] # получаем шестой элемент (индексация с 0)
Срезы позволяют выбрать подмассивы из исходного массива по заданным интервалам индексов. Для указания среза необходимо использовать двоеточие.
import numpy as np
array = np.array([1, 2, 3, 4, 5])
subarray = array[1:4] # выбираем элементы с индексами от 1 до 3 (не включая 4)
Срезы могут использоваться и для многомерных массивов. В этом случае для каждой размерности нужно указать интервал индексов.
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6]])
subarray = array[0:2, 1:3] # выбираем элементы с индексами от 0 до 1 (включительно) по первой размерности
# и от 1 до 2 (включительно) по второй размерности
Индексация и срезы в NumPy предоставляют мощный инструмент для работы с массивами, позволяя выбирать и изменять нужные элементы и подмассивы.
Преобразования массивов
Библиотека NumPy в Python предоставляет мощные инструменты для преобразования массивов. С помощью этих инструментов вы можете изменять форму, размеры и типы данных ваших массивов.
Одним из простых способов изменить форму массива является использование функции reshape()
. Эта функция позволяет вам изменить количество строк и столбцов в массиве без изменения его данных. Например, вы можете перевести одномерный массив в двухмерный массив или изменить размеры многомерного массива.
Если вам нужно изменить размеры массива без изменения данных, вы можете использовать функцию resize()
. Она позволяет вам изменять размеры массива, добавлять или удалять элементы в массиве. Если новый размер массива больше изначального, новые элементы будут заполнены значениями по умолчанию. Если новый размер массива меньше изначального, элементы будут усечены с конца массива.
Для изменения типа данных массива вы можете использовать функцию astype()
. Она позволяет вам преобразовать типы данных, такие как целые числа в числа с плавающей точкой или числа с плавающей точкой в целые числа.
Кроме того, NumPy предлагает и другие мощные инструменты для преобразования массивов, такие как изменение порядка элементов в массиве, объединение нескольких массивов и разделение массивов на подмассивы.
Работа с многомерными массивами
- Одномерный массив — это простой список элементов, имеющих одно измерение.
- Двумерный массив — это таблица, состоящая из строк и столбцов, которые образуют два измерения.
- Многомерные массивы могут иметь любое количество измерений, включая трехмерные и более сложные структуры данных.
Работа с многомерными массивами в NumPy предоставляет мощные инструменты для манипуляции данными. Вы можете выполнять различные операции, такие как создание массивов с определенной размерностью, изменение формы массивов, вычисление статистических показателей, переиндексацию и срезы массивов, а также многое другое.
Основная причина использования многомерных массивов заключается в эффективной обработке и хранении больших объемов данных. Например, при работе с изображениями или аудиофайлами, где каждый пиксель или сэмпл представлен многомерным массивом, используя NumPy, можно легко выполнять операции над всем массивом за одну операцию.
При работе с многомерными массивами важно понимать и управлять размерностью, формой и типом элементов массива. Эти параметры могут влиять на производительность и корректность обработки данных.
В дальнейшем руководстве мы рассмотрим подробнее возможности работы с многомерными массивами в NumPy и приведем примеры их использования.