Чудово!
Completion показник покращився до 3.85single
Базова Лінійна Алгебра з NumPy
Свайпніть щоб показати меню
Лінійна алгебра — це фундаментальна галузь математики, яка відіграє важливу роль у різних сферах, зокрема в машинному навчанні, глибокому навчанні та аналізі даних.
Вектори та матриці
У лінійній алгебрі вектор — це впорядкована сукупність значень. Одновимірні масиви 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)
Якщо правий аргумент у множенні матриць — це вектор (1D масив), NumPy розглядає його як матрицю, де остання розмірність дорівнює 1. Наприклад, при множенні матриці розміром 6x4 на вектор з 4 елементів, вектор розглядається як матриця 4x1.
Якщо лівий аргумент у множенні матриць — це вектор, NumPy розглядає його як матрицю, де перша розмірність дорівнює 1. Наприклад, при множенні вектора з 4 елементів на матрицю розміром 4x6, вектор розглядається як матриця 1x4.
На зображенні нижче показано структуру масивів exam_scores та coefficients, які використовуються у завданні:
Swipe to start coding
Ви працюєте з масивом exam_scores, який містить змодельовані бали трьох студентів (кожен рядок відповідає студенту) з трьох предметів (кожен стовпець відповідає предмету).
- Помножте бали кожного предметного іспиту на відповідний коефіцієнт.
- Додайте отримані бали для кожного студента, щоб обчислити їхній підсумковий бал.
- Обчисліть скалярний добуток між
exam_scoresтаcoefficients.
Це дозволить отримати підсумкові бали всіх студентів з урахуванням вагових коефіцієнтів їхніх предметних балів.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат