Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Базова лінійна алгебра | Математика з NumPy
Основи NumPy
Секція 4. Розділ 3
single

single

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

Свайпніть щоб показати меню

Лінійна алгебра — це фундаментальна галузь математики, яка відіграє важливу роль у різних сферах, зокрема в машинному навчанні, глибокому навчанні та аналізі даних.

Вектори та матриці

У лінійній алгебрі вектор — це впорядкована сукупність значень. Одновимірні масиви NumPy ефективно представляють вектори. Матриця — це двовимірний масив чисел, який можна представити за допомогою двовимірного масиву в NumPy.

Ви вже розглядали додавання та віднімання векторів і матриць, а також множення на скаляр у розділі "Базові математичні операції". Тут розглядаються інші операції.

Транспонування

Транспонування — це операція, яка відображає матрицю відносно її діагоналі. Іншими словами, вона перетворює рядки матриці на стовпці, а стовпці — на рядки.

Транспонування

Можна транспонувати матрицю за допомогою атрибута .T масиву NumPy:

12345
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)

Скалярний добуток

Скалярний добуток — це, мабуть, найпоширеніша операція лінійної алгебри в машинному та глибокому навчанні. Скалярний добуток двох векторів (які повинні мати однакову кількість елементів) — це сума їхніх покомпонентних добутків. Результатом є скаляр:

Скалярний добуток

Множення матриць

Множення матриць визначене лише тоді, коли кількість стовпців у першій матриці дорівнює кількості рядків у другій матриці. Отримана матриця матиме таку ж кількість рядків, як і перша матриця, і таку ж кількість стовпців, як і друга матриця.

Множення матриць

Як видно, кожен елемент результуючої матриці є скалярним добутком двох векторів. Номер рядка елемента відповідає номеру рядкового вектора у першій матриці, а номер стовпця — номеру стовпцевого вектора у другій матриці.

Кількість стовпців у першій матриці повинна бути рівною кількості рядків у другій матриці, оскільки для скалярного добутку потрібно, щоб обидва вектори мали однакову кількість елементів.

Скалярний добуток і множення матриць у NumPy

NumPy надає функцію dot() як для скалярного добутку, так і для множення матриць. Ця функція приймає два масиви як аргументи.

Також можна використовувати оператор @ між двома масивами для досягнення того ж результату.

12345678910111213
import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)

Якщо правий аргумент у множенні матриць є вектором (одновимірний масив), NumPy розглядає його як матрицю, де остання розмірність дорівнює 1. При множенні матриці розміром 6x4 на вектор з 4 елементів, вектор розглядається як матриця 4x1.

Якщо лівий аргумент у множенні матриць є вектором, NumPy розглядає його як матрицю, де перша розмірність дорівнює 1. При множенні вектора з 4 елементів на матрицю розміром 4x6, вектор розглядається як матриця 1x4.

На зображенні нижче показано структуру масивів exam_scores та coefficients, які використовуються у завданні:

Коефіцієнти іспитів
Завдання

Проведіть, щоб почати кодувати

Підсумковий бал кожного студента обчислюється шляхом множення його балів з предметів на відповідні коефіцієнти та підсумовування результатів. Скалярний добуток виконує обидві ці операції одночасно.

Обчисліть скалярний добуток між exam_scores та coefficients, щоб отримати підсумкові бали для всіх трьох студентів.

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 3
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt