NumPy – работа с массивами и матрицами

онлайн тренажер по питону
Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

html

Введение в NumPy: Основа для научных вычислений в Python

NumPy - это фундаментальная библиотека Python для научных вычислений. Она предоставляет мощную поддержку многомерных массивов и матриц, а также широкий спектр функций для работы с ними. NumPy является незаменимым инструментом для аналитиков данных, специалистов по машинному обучению и научных работников.

NumPy позволяет эффективно обрабатывать большие объемы данных и выполнять математические операции, заменяя циклы компактным и векторизованным кодом. Библиотека включает встроенные функции для линейной алгебры и статистики.

Установка и импорт библиотеки NumPy

Чтобы начать работать с NumPy, необходимо установить ее и импортировать в ваш проект.

Установка NumPy

Установка библиотеки выполняется с помооне

Обработка отсутствующих значений (NaN)

Для работы с отсутствующими значениями NumPy использует np.nan.

arr = np.array([1, 2, np.nan, 4, 5])
print(np.isnan(arr)) # [False False  True False False]

Для обработки NaN используются специальные функции, такие как nanmean(), nanstd(), nansum(), которые игнорируют отсутствующие значения.

Производительность NumPy против чистого Python

NumPy написан на C и работает значительно быстрее чистого Python, особенно при выполнении операций над большими массивами. Это связано с эффективной векторизацией и оптимизацией.

import time
import numpy as np

size = 100000

# Python list
lista = list(range(size))
listb = list(range(size))

starttime = time.time()
resultpython = [a + b for a, b in zip(lista, listb)]
pythontime = time.time() - starttime

# NumPy array
anp = np.arange(size)
bnp = np.arange(size)

starttime = time.time()
resultnumpy = anp + bnp
numpytime = time.time() - starttime

print(f"Python time: {pythontime:.4f} seconds")
print(f"NumPy time: {numpytime:.4f} seconds")

Разница в производительности может достигать десятков и сотен раз на больших объемах данных.

Реальные кейсы применения NumPy

NumPy используется в различных областях:

  • Наука: обработка экспериментальных данных
  • Финансы: анализ временных рядов
  • Машинное обучение: подготовка и нормализация данных, моделирование
  • Компьютерная графика: работа с изображениями
  • Образование: визуализация математических функций и алгоритмов

Часто задаваемые вопросы (FAQ)

Чем массив NumPy отличается от списка Python?

Массив NumPy - это структура данных, хранящая числа в виде таблиц (тензоров), имеет фиксированный тип данных и поддерживает векторизованные операции. Список Python более гибкий, но менее эффективен для числовых вычислений.

Как создать нулевую матрицу размером 3x3?

matrix = np.zeros((3, 3))

Как транспонировать матрицу?

transposedmatrix = matrix.T

Как перемножить матрицы?

result = matrix1 @ matrix2

Как найти обратную матрицу?

inversedmatrix = np.linalg.inv(matrix)

Основные категории функций NumPy

NumPy предоставляет широкий набор функций для различных задач:

  • Создание массивов: NumPy предлагает множество функций для создания и инициализации массивов с различными начальными значениями (нули, единицы, случайные числа и т.д.).
  • Математические операции: Библиотека поддерживает множество математических операций над массивами, включая арифметические операции, статистические функции и функции линейной алгебры.
  • Функции линейной алгебры: NumPy предоставляет функции для выполнения операций линейной алгебры, таких как умножение матриц, вычисление собственных значений и т.д.
  • Тригонометрические и логарифмические функции: Библиотека предлагает функции для работы с тригонометрическими и логарифмическими операциями, позволяя легко выполнять сложные вычисления.

Заключение

NumPy является мощным и гибким инструментом для работы с данными. Его возможности делают его обязательным для изучения и использования в научных и аналитических приложениях.

Новости