Numpy (числовой python)
Numpy - это библиотека Python, используемая для работы с массивами.
Numpy расшифровывается как числовой python, он используется для выполнения широкого спектра математических операций с массивами. Он также имеет функции для работы в области линейной алгебры, преобразования Фурье и матриц. В python есть list, который может работать как numpy, но list обрабатывается медленно, поэтому numpy помогает в решении проблемы, поскольку массивы NumPy хранятся в одном непрерывном месте в памяти в отличие от списков, поэтому процессы могут получать к ним доступ и манипулировать ими очень эффективно.
Чтобы установить Numpy, используем следующую команду:
pip install numpy
Установив Numpy, необходимо импортировать библиотеку, используя следующую команду:
import numpy as np
Где np
- псевдоним используемый для ссылки на Numpy.
Создание массива
Объект массива в Numpy называется ndarray. Мы можем создать объект ndarray Numpy с помощью функции array()
, как показано ниже
import numpy as np
# creating an array
x = np.array([2,4,6,8,10])
print(x)
print(type(x))
Примечание: Массив может быть одномерным, двухмерным или трехмерным.
- Одномерный массив - это массив, в котором в качестве элементов используются нулевые (0-D) массивы.
- Двумерный массив - это массив, элементами которого являются одномерные (1-D) массивы.
- Трехмерный массив - массив, содержащий двумерные (2-D) массивы в качестве элементов.
Существует множество операций, которые выполняются в массивах Numpy, которые включают:
- индексация (indexing) массива numpy
- нарезка (slicing) массива numpy
- форма (shape) массива numpy
- изменение (reshape) формы массива numpy
- разделение (split) массива numpy
- соединение (join) массива numpy.
indexing массива Numpy
Мы получаем доступ к элементу массива посредством индексации с помощью порядкового номера
- Indexing (индексирование) в одномерном массиве
#indexing in 1-D array
x = np.array([1, 3, 4, 6])
print(x[0])
Вывод:
1
- Indexing (индексирование) в двумерном массиве
#indexing in 2-D array
y = np.array([[1,4,6,9,0], [2,7,3,9,1]])
print('2nd element on 1st row: ', y[0, 1])
Вывод:
4
slicing (нарезка) массива Numpy
Нарезка относится к переносу элементов из одного заданного индекса в другой заданный индекс.
#Slice elements from index 1 to index 5 from the following array
y = np.array([10,20,30,40,50,60])
print(y[1:4])
Вывод:
[20 30 40]
Примечание: Результат включает начальный индекс, но исключает конечный индекс.
shape (форма) массива Numpy
Форма массива - это количество элементов в каждом измерении. Массивы Numpy имеют атрибут под названием shape
который возвращает запись с каждым индексом, имеющим количество соответствующих элементов.
arr = np.array([[2,4,6,8], [8,8,3,4]])
print(arr.shape)
Вывод:
(2, 4)
Приведенный выше пример возвращает (2, 4), что означает, что массив состоит из двух строк и 4 столбцов. Первая цифра представляет строку, вторая - столбцы.
reshape (изменение формы) массива Numpy
Изменение формы относится к изменению формы массива, как мы ранее указали, форма в массиве - это количество элементов в каждом измерении. Изменение формы может быть добавлением или удалением количества элементов в каждом измерении.
- Изменение формы может быть от одномерных до двумерных (из 1-D до 2-D)
z = np.array([2,4,6,8,10,12,14,16,18,20,22,24])
newarray = z.reshape(4, 3)
print(newarray)
Выход:
[[ 2 4 6]
[ 8 10 12]
[14 16 18]
[20 22 24]]
Примечание: Массив был изменен с одномерного массива на двумерный массив с 4 строками и 3 столбцами.
- Изменение формы с одномерных до трехмерных (с 1-D до 3-D)
z = np.array([2,4,6,8,10,12,14,16,18,20,22,24])
newarray = z.reshape(2, 3, 2)
print(newarray)
Вывод:
[[[ 2 4]
[ 6 8]
[10 12]]
[[14 16]
[18 20]
[22 24]]]
Примечание: Само внешнее измерение будет иметь два массива, которые содержат 3 массива, каждый из которых содержит 2 элемента.
Массив объединения Numpy
Объединение означает помещение содержимого двух или более массивов в один массив.
x = np.array([10, 20, 30])
y = np.array([40, 50, 60])
arr1 = np.concatenate((x, y))
print(arr1)
Вывод:
[10 20 30 40 50 60]
мы можем присоединять массивы, используя функции стека, такие как stack
, которые складываются вдоль столбцов.давайте приведем пример,
x = np.array([10, 20, 30])
y = np.array([40, 50, 60])
arr2 = np.vstack((x,y))
print(arr2)
Вывод:
[[10 20 30]
[40 50 60]]
Разделение (split) массива numpy
Разделение - это операция, обратная соединению.
Объединение объединяет несколько массивов в один, а разделение разбивает один массив на несколько.Чтобы разделить массивы, мы используем функцию array_split()
, где мы передаем некоторые аргументы, которые представляют собой массив, подлежащий разделению, и количество разделяемых.
x = np.array([20,40, 60,70,80,100])
arr3 = np.array_split(x, 3)
print(arr3)
Вывод:
[array([20, 40]), array([60, 70]), array([ 80, 100])]
Примечание: Возвращаемое значение из приведенного выше примера представляет собой массив, содержащий три массива.