Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Операции с матрицами в Python с NumPy: транспонирование, сложение, умножение и срезы — практическое руководство

Операции с матрицами в Python с NumPy

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

Что такое матрица?

Матрица — прямоугольный массив чисел (или других типов данных), организованный в строки и столбцы. Хотя в ядре Python нет специализированного типа матрицы, её можно представить вложенными списками или массивом ndarray NumPy, который предлагает быстрые, векторизованные операции.

Создание матрицы с вложенными списками

Вложенные списки — самый простой способ построить матрицу. Каждый внутренний список представляет строку:

# 3x3 матрица
M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
print(M1)

Вывод:

[[8, 14, -6], [12, 7, 4], [-11, 3, 21]]

Чтение данных

Доступ к элементам через индексы строки и столбца. Для печати последнего элемента каждой строки:

for row in M1:
    print(row[-1])

Вывод:

-6
4
21

Сложение матриц

Когда обе матрицы имеют одинаковую форму, поэлементное сложение простое:

M2 = [[3, 16, -6], [9, 7, -4], [-1, 3, 13]]
# Результирующая матрица
M3 = [[M1[i][j] + M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

Вывод:

[[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

Поэлементное умножение

Аналогично можно перемножать соответствующие элементы:

M3 = [[M1[i][j] * M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

Вывод:

[[24, 224, 36], [108, 49, -16], [11, 9, 273]]

Использование NumPy для эффективных операций с матрицами

NumPy предоставляет специализированный тип массива и множество векторизованных операций. Установите с pip install numpy и импортируйте как np:

import numpy as np

Создание матрицы

M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)

Вывод:

[[ 5 -10 15]
 [ 3 -6 9]
 [ -4 8 12]]

Базовые операции

Пример: скалярное произведение матриц

M1 = np.array([[3, 6], [5, -10]])
M2 = np.array([[9, -18], [11, 22]])
print(M1.dot(M2))

Вывод:

[[ 93  78]
 [-65 -310]]

Срезы (slicing)

Срезы строк и столбцов с array[row_start:row_end, col_start:col_end]:

M = np.array([[2, 4, 6, 8, 10],
              [3, 6, 9, -12, -15],
              [4, 8, 12, 16, -20],
              [5, -10, 15, -20, 25]])
print(M[1:3, 1:4])  # строки 1–2, столбцы 1–3
print(M[:, 3])      # все строки, 4-й столбец
print(M[:1, :])     # первая строка, все столбцы
print(M[:3, :2])    # первые 3 строки, первые 2 столбца

Вывод:

[[ 6  9 -12]
 [ 8 12 16]]
[ 8 -12 16 -20]
[[ 2  4  6  8 10]]
[[ 2  4]
 [ 3  6]
 [ 4  8]]

Доступ к строкам и столбцам

# Строки
print(M[0])    # первая строка
print(M[-1])   # последняя строка
# Столбцы
print(M[:, 0])   # первый столбец
print(M[:, -1])  # последний столбец

Ключевые выводы

Python

  1. Словари в Python: создание, манипуляции и продвинутые техники
  2. Массивы в C++: объявление, инициализация и работа с указателями
  3. Функция print() в Python: практическое руководство с примерами
  4. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  5. Мастерство строк форматирования format() в Python: понятные примеры
  6. Мастерство метода String.find() в Python: синтаксис, примеры и альтернативы
  7. Освоение лямбда-функций Python: практические примеры и лучшие практики
  8. Функция abs() в Python: вычисление абсолютных значений для чисел и комплексных чисел
  9. Функция round() в Python: подробное объяснение с практическими примерами
  10. Освоение функции range() в Python: от основ к продвинутым сценариям