Обзор операций с массивами NumPy в Python на W3Schools: Полное руководство для разработчиков

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 примеры в своих проектах.


Добавить комментарий