single
Базова лінійна алгебра
Свайпніть щоб показати меню
Лінійна алгебра — це фундаментальна галузь математики, яка відіграє важливу роль у різних сферах, зокрема в машинному навчанні, глибокому навчанні та аналізі даних.
Вектори та матриці
У лінійній алгебрі вектор — це впорядкована сукупність значень. Одновимірні масиви NumPy ефективно представляють вектори. Матриця — це двовимірний масив чисел, який можна представити за допомогою двовимірного масиву в NumPy.
Ви вже розглядали додавання та віднімання векторів і матриць, а також множення на скаляр у розділі "Базові математичні операції". Тут розглядаються інші операції.
Транспонування
Транспонування — це операція, яка відображає матрицю відносно її діагоналі. Іншими словами, вона перетворює рядки матриці на стовпці, а стовпці — на рядки.
Можна транспонувати матрицю за допомогою атрибута .T масиву NumPy:
12345import 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() як для скалярного добутку, так і для множення матриць. Ця функція приймає два масиви як аргументи.
Також можна використовувати оператор @ між двома масивами для досягнення того ж результату.
12345678910111213import 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, щоб отримати підсумкові бали для всіх трьох студентів.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат