Учебник по массиву Python NumPy | Кодементор
NumPy — это библиотека/модуль Python, который используется для научных вычислений в Программирование на Python. В этом руководстве вы узнаете, как выполнять множество операций с массивами NumPy, таких как добавление, удаление, сортировка и управление элементами разными способами.
NumPy предоставляет объект многомерного массива и другие производные массивы, такие как маскированные массивы или маскированные многомерные массивы.
Зачем использовать NumPy
Модуль NumPy предоставляет объект ndarray, с помощью которого мы можем выполнять операции над массивом любого измерения. Ndarray означает N-мерный массив, где N — любое число. Это означает, что массив NumPy может быть любого размера.
NumPy имеет ряд преимуществ по сравнению с Списки Python. Мы можем выполнять высокопроизводительные операции с массивами NumPy, такие как:
- Сортировка членов массива
- Математические и логические операции
- Функции ввода/вывода
- Статистические и линейные алгебраические операции
Как установить NumPy?
Чтобы установить NumPy, вам нужны Python и Pip в вашей системе.
Выполните следующую команду в вашей ОС Windows:
pip install numpy
Теперь вы можете импортировать NumPy в свой скрипт следующим образом:
import numpy
Добавить элемент массива
Вы можете добавить элемент массива NumPy, используя метод append() модуля NumPy.
Синтаксис добавления следующий:
numpy.append(array, value, axis)
Значения будут добавлены в конец массива, и будет возвращен новый ndarray с новыми и старыми значениями, как показано выше.
Ось — это необязательное целое число, вдоль которого определяется, как будет отображаться массив. Если ось не указана, структура массива будет сглажена, как вы увидите позже.
Рассмотрим следующий пример, в котором сначала объявляется массив, а затем мы использовали метод append для добавления дополнительных значений в массив:
a = numpy.array([1, 2, 3])
newArray = numpy.append (a, [10, 11, 12])
Добавить столбец
Мы можем использовать метод append() NumPy для вставки столбца.
Рассмотрим пример ниже, где мы создали двумерный массив и вставили два столбца:
a = numpy.array([[1, 2, 3], [4, 5, 6]])
b = numpy.array([[400], [800]])
newArray = numpy.append(a, b, axis = 1)
Если атрибут оси не используется, вывод будет выглядеть следующим образом:
Вот как сглаживается структура массива.
В NumPy мы также можем использовать метод insert() для вставки элемента или столбца. Разница между методом вставки() и методом append() заключается в том, что мы можем указать, по какому индексу мы хотим добавить элемент при использовании метода вставки(), но метод append() добавляет значение в конец массива.
Рассмотрим пример ниже:
a = numpy.array([1, 2, 3])
newArray = numpy.insert(a, 1, 90)
Здесь метод insert() добавляет элемент с индексом 1. Помните, что индекс массива начинается с 0.
Добавить строку
В этом разделе мы будем использовать метод append() для добавления строки в массив. Это так же просто, как добавить элемент в массив. Рассмотрим следующий пример:
a = numpy.array([[1, 2, 3], [4, 5, 6]])
newArray = numpy.append(a, [[50, 60, 70]], axis = 0)
Удалить элемент
Вы можете удалить элемент массива NumPy, используя метод delete() модуля NumPy:
Это продемонстрировано в примере ниже:
а = numpy.массив ([1, 2, 3])
новый массив = numpy.delete (а, 1, ось = 0)
Результат выглядит следующим образом:
В приведенном выше примере у нас есть одномерный массив. Метод delete() удаляет элемент с индексом 1 из массива.
Удалить строку
Точно так же вы можете удалить строку, используя метод delete().
Рассмотрим следующий пример, где мы удалили строку из двумерного массива:
a = numpy.array([[1, 2, 3], [4, 5, 6], [10, 20, 30]])
newArray = numpy.delete(a, 1, axis = 0)
В методе delete() вы сначала указываете массив, а затем индекс элемента, который хотите удалить. В приведенном выше примере мы удалили второй элемент с индексом 1.
Проверьте, пуст ли массив NumPy
Мы можем использовать метод size, который возвращает общее количество элементов в массиве.
В следующем примере у нас есть оператор if, который проверяет наличие элементов в массиве, используя ndarray.size, где ndarray — любой заданный массив NumPy:
импортировать numpy
а = numpy.массив ([1, 2, 3])
если (a.size == 0):
print("The given Array is empty")
еще:
print("The array = ", a)
Результат выглядит следующим образом:
В приведенном выше коде есть три элемента, поэтому он не пустой, и условие вернет false.
Если элементов нет, условие if станет истинным и будет напечатано пустое сообщение.
Если наш массив равен:
а = numpy.массив ([])
Вывод приведенного выше кода будет следующим:
Найти индекс значения
Чтобы найти индекс значения, мы можем использовать метод where() модуля NumPy, как показано в примере ниже:
import numpy
a = numpy.array([1, 2, 3, 4, 5])
print("5 is found at index: ", numpy.where(a == 5))
Метод where() также возвращает тип данных. Если вы хотите просто получить индекс, используйте следующий код:
import numpy
a = numpy.array([1, 2, 3, 4, 5])
index = numpy.where(a == 5)
print("5 is found at index: ", index[0])
Нарезка массива NumPy
Нарезка массива — это процесс извлечения подмножества из заданного массива. Вы можете разрезать массив, используя двоеточие ( оператора и указать начало и конец индекса массива, например:
array[from:to]
Это выделено в примере ниже:
import numpy
a = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])
print("A subset of array a = ", a[2:5])
Здесь мы извлекли элементы, начиная с индекса 2 и заканчивая индексом 5. Вывод будет таким:
Если мы хотим извлечь последние три элемента. Мы можем сделать это, используя отрицательную нарезку следующим образом:
import numpy
a = numpy.array([1, 2, 3, 4, 5, 6, 7, 8])
print("A subset of array a = ", a[-3:])
Применить функцию ко всем элементам массива
В следующем примере мы собираемся создать лямбда-функцию, в которую мы передадим наш массив, чтобы применить его ко всем элементам:
import numpy
addition = lambda x: x + 2
a = numpy.array([1, 2, 3, 4, 5, 6])
print("Array after addition function: ", addition(a))
В этом примере создается лямбда-функция, которая увеличивает каждый элемент на два.
Длина массива NumPy
Чтобы получить длину массива NumPy, вы можете использовать атрибут размера модуля NumPy, как показано в следующем примере:
import numpy
a = numpy.array([1, 2, 3, 4, 5, 6])
print("The size of array = ", a.size)
Создать массив NumPy из списка
Списки в Python — это набор элементов, заключенных в квадратные скобки.
Предположим, у вас есть список как:
l = [1, 2, 3, 4, 5]
Теперь, чтобы создать массив из этого списка, мы будем использовать метод array() модуля NumPy:
import numpy
l = [1, 2, 3, 4, 5]
a = numpy.array(l)
print("The NumPy array from Python list = ", a)
Точно так же, используя метод array(), мы можем создать массив NumPy из кортежа. Кортеж содержит ряд элементов, заключенных в круглые скобки следующим образом:
import numpy
t = (1, 2, 3, 4, 5)
a = numpy.array
print("The NumPy array from Python Tuple = ", a)
Преобразование массива NumPy в список
Чтобы преобразовать массив в список, мы можем использовать метод tolist() модуля NumPy.
Рассмотрим код ниже:
import numpy
a = numpy.array([1, 2, 3, 4, 5])
print("Array to list = ", a.tolist())
В этом коде мы просто вызвали метод tolist(), который преобразует массив в список. Затем мы печатаем вновь созданный список на экран вывода.
Массив NumPy в CSV
Чтобы экспортировать массив в файл CSV, мы можем использовать метод savetxt() модуля NumPy, как показано в примере ниже:
import numpy
a = numpy.array([1, 2, 3, 4, 5])
numpy.savetxt("myArray.csv", a)
Этот код создаст файл CSV в том месте, где хранится наш файл кода Python. Вы также можете указать путь. Когда вы запустите скрипт, файл будет сгенерирован следующим образом:
Содержимое этого файла будет примерно следующим:
Вы можете удалить лишнее заполнение нулями следующим образом:
numpy.savetxt("myArray.csv", a,fmt="%.2f")
Сортировка массива NumPy
Вы можете отсортировать массив NumPy, используя метод sort() модуля NumPy:
Функция sort() принимает необязательную ось (целое число), которая по умолчанию равна -1. Ось указывает, по какой оси мы хотим отсортировать массив. -1 означает, что массив будет отсортирован по последней оси.
Рассмотрим пример ниже:
import numpy
a = numpy.array([16, 3, 2, 6, 8, 10, 1])
print("Sorted array = ", numpy.sort(a))
В этом примере мы вызвали метод sort() в операторе печати. Массив «а» передается в функцию сортировки. Результат этого будет следующим:
Нормализация массива
Нормализация массива — это процесс приведения значений массива к определенному диапазону. Например, мы можем сказать, что хотим нормализовать массив между -1 и 1 и так далее.
Формула нормализации выглядит следующим образом:
x = (x – xmin) / (xmax – xmin)
Теперь мы просто применим эту формулу к нашему массиву, чтобы нормализовать его. Чтобы найти максимальный и минимальный элементы в массиве, мы будем использовать методы max() и min() NumPy соответственно.
import numpy
x= numpy.array([400, 800, 200, 700, 1000, 2000, 300])
xmax = x.max()
xmin = x.min()
x = (x - xmin)/(xmax - xmin)
print("After normalization array x = \n", x)
Индексация массива
Индексация означает обращение к элементу массива. В следующих примерах мы также использовали индексацию в одномерных и двумерных массивах:
import numpy
a = numpy.array([20, 13, 42, 86, 81, 9, 11])
print("Element at index 3 = ", a[3])
Теперь индексируем двумерным массивом:
import numpy
a = numpy.array([[20, 13, 42], [86, 81, 9]])
print("Element at index a[1][2] = ", a[1][2])
Индекс [1][2] означает вторую строку и третий столбец (поскольку индексация начинается с 0). Таким образом, у нас есть 9 на экране вывода.
Добавить массив NumPy к другому
Вы можете добавить массив NumPy в другой массив NumPy, используя метод append().
Рассмотрим следующий пример:
import numpy
a = numpy.array([1, 2, 3, 4, 5])
b = numpy.array([10, 20, 30, 40, 50])
newArray = numpy.append(a, b)
print("The new array = ", newArray)
В этом примере создается массив NumPy «a», а затем создается другой массив с именем «b». Затем мы использовали метод append() и передали два массива. Поскольку массив «b» передается в качестве второго аргумента, он добавляется в конец массива «a».
Как мы видели, работать с массивами NumPy очень просто. Массивы NumPy очень важны при работе с большинством библиотек машинного обучения. Итак, можно сказать, что NumPy — это ворота в искусственный интеллект.