Лекція 7. Організація наукових обчислень за допомогою пакета NumPy

Сайт: Навчально-інформаційний портал НУБіП України
Курс: Кросплатформне програмування (Python)
Книга: Лекція 7. Організація наукових обчислень за допомогою пакета NumPy
Надруковано: Гість-користувач
Дата: субота, 7 червня 2025, 20:12

1. Встановлення пакету NumPy

NumPy (Numerical Python) — це бібліотека для високопродуктивних операцій з багатовимірними масивами та матрицями, яка також містить велику колекцію математичних функцій.


Команда для встановлення:

pip install numpy

Використання:

import numpy as np

Набір високошвидкісних рутин (функцій) для обробки масивів, включаючи:

  • математичні операції

  • логічні операції

  • зміни форми (shape manipulation)

  • сортування та фільтрацію

  • введення/виведення даних

  • дискретні перетворення Фур'є (DFT)

  • базову лінійну алгебру

  • статистичні обчислення

  • генерацію випадкових чисел та симуляції

Приклад використання:

import numpy as np

a = np.array([[1, 2], [3, 4]])
print(a.shape)  # (2, 2)
print(a.dtype)  # int64 (залежить від платформи)

Категорія Приклади функцій
Математичні операції np.sum, np.mean, np.exp, np.log
Логічні операції np.all, np.any, логічні маски
Зміна форми reshape, flatten, transpose
Сортування і вибірка sort, argsort, where, extract
Лінійна алгебра dot, matmul, inv, eig, det
Статистика mean, std, var, median
Випадкові значення np.random.rand, np.random.normal
Перетворення Фур'є np.fft.fft, np.fft.ifft
Введення/виведення np.loadtxt, np.savetxt, np.save, np.load

2. Методи та функції пакету NumPy. Створення масивів. Операції над масивами.

Створення масивів

Функція Опис Приклад
np.array() Створює масив з Python-списку np.array([1, 2, 3])
np.zeros(shape) Масив із нулями np.zeros((2, 3))
np.ones(shape) Масив з одиницями np.ones((3, 3))
np.empty(shape) Порожній масив (випадкові значення) np.empty((2, 2))
np.arange(start, stop, step) Масив із кроком np.arange(0, 10, 2)
np.linspace(start, stop, num) Масив із рівними інтервалами np.linspace(0, 1, 5)
np.eyeНі Одинична матриця (матриця Е) np.eye(3)
np.full(shape, value) Масив із заданим значенням np.full((2, 2), 7)

Математичні функції

Функція Опис
np.add(a, b) Додавання поелементно
np.subtract(a, b) Віднімання
np.multiply(a, b) Множення
np.divide(a, b) Ділення
np.power(a, b) Піднесення до степеня
np.sqrt(a) Квадратний корінь
np.exp(a) Експонента
np.log(a) Натуральний логарифм
np.abs(a) Абсолютне значення
np.round(a, n) Округлення до n знаків

3. Створення матриць та числових діапазонів.

У NumPy "матриця" — це, зазвичай, двовимірний масив (ndarray). Також існує клас np.matrix, але його використання не рекомендоване у нових проєктах — краще працювати з ndarray.

import numpy as np

# Двовимірний масив (матриця)
A = np.array([[1, 2], [3, 4]])

# Одинична матриця
I = np.eye(3)

# Матриця з нулями
Z = np.zeros((2, 3))

# Матриця з одиницями
O = np.ones((3, 2))

# Матриця з випадковими числами
R = np.random.rand(2, 2)

Створення числових діапазонів

Числовий діапазон цілих чисел.

np.arange(start, stop, step, dtype=None)

Відкрита верхня межа (stop не входить), як у range()


Числовий діапазон нецілих чисел.
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

Приклад:

x, h = np.linspace(0, 1, 5, retstep=True)

# x → [0.   , 0.25, 0.5 , 0.75, 1.  ]
# h → 0.25

np.logspace() — логарифмічний (експоненціальний) крок

np.geomspace() — геометрична прогресія

4. Дії з матрицями.

У NumPy матрицею вважається двовимірний масив типу ndarray. Наприклад:

import numpy as np

A = np.array([[1, 2], [3, 4]])

Таблиця з операціями нам матрицями:

Операція Опис NumPy-функція / Приклад
1 Транспонування Заміна рядків на стовпці A.T
2 Поелементне додавання Сума відповідних елементів A + B
3 Поелементне віднімання Різниця відповідних елементів A - B
4 Поелементне множення Добуток відповідних елементів A * B
5 Поелементне ділення Частка відповідних елементів A / B
6 Матричне множення Алгебраїчне множення матриць A @ B або np.dot(A, B)
7 Обернена матриця A1A^{-1}, така щоAA1=IA \cdot A^{-1} = I np.linalg.inv(A)
8 Визначник (детермінант) Число, що показує виродженість np.linalg.det(A)
9 Ранг матриці Кількість лінійно незалежних рядків/стовпців np.linalg.matrix_rank(A)
10 Трасування Сума елементів головної діагоналі np.trace(A)
11 Норма матриці "Довжина" або розмірність матриці np.linalg.norm(A)
12 Округлення Округлення всіх елементів np.round(A, 2)
13 Одинична матриця Матриця з 1 по діагоналі np.identityНі
14 Діагональна матриця Створення з вектора np.diag([1,2,3])
15 Верхня трикутна Тільки елементи над діагоналлю np.triu(A)
16 Нижня трикутна Тільки елементи під діагоналлю np.tril(A)
Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання