NumPy (Numerical Python) – это фундаментальная библиотека для научных вычислений на Python. Она предоставляет мощные инструменты для работы с многомерными массивами и математическими функциями, оптимизированными для высокой производительности. В этом руководстве мы рассмотрим основные операции с массивами NumPy, опираясь на структуру и стиль, характерные для W3Schools, чтобы предоставить вам понятное и практичное руководство для разработчиков.
Основы работы с массивами NumPy
Что такое NumPy и зачем он нужен?
NumPy добавляет поддержку больших, многомерных массивов и матриц, а также большую коллекцию математических функций высокого уровня для работы с этими массивами. Он является основой многих других библиотек для анализа данных, таких как Pandas и Scikit-learn. Использование NumPy позволяет значительно ускорить вычисления по сравнению со стандартными списками Python, особенно при работе с большими объемами данных. NumPy python — это основа для анализа данных.
Установка NumPy и импорт библиотеки
Для установки NumPy используется pip:
pip install numpy
После установки NumPy импортируется в ваш Python-скрипт:
import numpy as np
np – это общепринятое сокращение для NumPy, используемое для удобства.
Создание массивов NumPy
Создание массивов из списков Python
Самый простой способ создать массив NumPy – преобразовать существующий список Python:
import numpy as np
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array)
# Вывод: [1 2 3 4 5]
Создание массивов с использованием встроенных функций NumPy (zeros, ones, arange, linspace)
NumPy предоставляет несколько удобных функций для создания массивов с определенными значениями:
-
np.zeros(shape): создает массив, заполненный нулями, заданной формы. -
np.ones(shape): создает массив, заполненный единицами, заданной формы. -
np.arange(start, stop, step): создает массив с равномерно распределенными значениями в заданном диапазоне. -
np.linspace(start, stop, num): создает массив сnumравномерно распределенными значениями в заданном диапазоне (включаяstop).
import numpy as np
zeros_array = np.zeros((2, 3))
print(zeros_array)
# Вывод:
# [[0. 0. 0.]
# [0. 0. 0.]]
ones_array = np.ones((3, 2))
print(ones_array)
# Вывод:
# [[1. 1.]
# [1. 1.]
# [1. 1.]]
arange_array = np.arange(0, 10, 2)
print(arange_array)
# Вывод: [0 2 4 6 8]
linspace_array = np.linspace(0, 1, 5)
print(linspace_array)
# Вывод: [0. 0.25 0.5 0.75 1. ]
Индексация и срезы массивов NumPy
Доступ к элементам массива по индексу
Доступ к элементам массива NumPy осуществляется так же, как и к элементам списка Python, с использованием индексов, начинающихся с 0.
import numpy as np
my_array = np.array([10, 20, 30, 40, 50])
print(my_array[0]) # Первый элемент
# Вывод: 10
print(my_array[3]) # Четвертый элемент
# Вывод: 40
Для многомерных массивов указываются индексы для каждого измерения, разделенные запятыми:
import numpy as np
my_array = np.array([[1, 2, 3], [4, 5, 6]])
print(my_array[0, 1]) # Элемент в первой строке и втором столбце
# Вывод: 2
Срезы массивов: получение подмножеств массива
Срезы позволяют извлекать подмножества массива. Синтаксис срезов [start:stop:step] аналогичен срезам списков Python. Python массивы.
import numpy as np
my_array = np.array([10, 20, 30, 40, 50])
print(my_array[1:4]) # Элементы со второго по четвертый (не включая)
# Вывод: [20 30 40]
print(my_array[:3]) # Элементы с начала до третьего (не включая)
# Вывод: [10 20 30]
print(my_array[2:]) # Элементы с третьего до конца
# Вывод: [30 40 50]
print(my_array[::2]) # Каждый второй элемент
# Вывод: [10 30 50]
Для многомерных массивов срезы применяются к каждому измерению:
import numpy as np
my_array = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(my_array[:2, 1:3]) # Первые две строки, столбцы со второго по третий
# Вывод:
# [[2 3]
# [6 7]]
Основные операции с массивами NumPy
Изменение формы массива (reshape)
Функция reshape() позволяет изменить форму массива, не меняя его данные. Важно, чтобы общее количество элементов оставалось прежним.
import numpy as np
my_array = np.arange(12)
print(my_array)
# Вывод: [ 0 1 2 3 4 5 6 7 8 9 10 11]
reshaped_array = my_array.reshape(3, 4)
print(reshaped_array)
# Вывод:
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
Математические операции: сложение, вычитание, умножение, деление
NumPy позволяет выполнять поэлементные математические операции над массивами. Эти операции выполняются гораздо быстрее, чем аналогичные операции над списками Python благодаря векторизации. Numpy array operations.
import numpy as np
array1 = np.array([1, 2, 3])
array2 = np.array([4, 5, 6])
print(array1 + array2) # Сложение
# Вывод: [5 7 9]
print(array1 - array2) # Вычитание
# Вывод: [-3 -3 -3]
print(array1 * array2) # Умножение
# Вывод: [ 4 10 18]
print(array1 / array2) # Деление
# Вывод: [0.25 0.4 0.5 ]
Также можно выполнять операции между массивом и скалярным значением:
import numpy as np
my_array = np.array([1, 2, 3])
print(my_array + 5) # Сложение с числом
# Вывод: [6 7 8]
print(my_array * 2) # Умножение на число
# Вывод: [2 4 6]
Заключение
В этом руководстве мы рассмотрели основные операции с массивами NumPy в Python: создание, индексацию, срезы, изменение формы и математические операции. NumPy – мощный инструмент для численных вычислений, и освоение этих базовых операций является важным шагом для работы с данными в Python. Надеемся, что эта статья, представленная в стиле W3Schools, помогла вам лучше понять основы работы с NumPy. Используйте numpy python примеры в своих проектах.