Базова Лінійна Алгебра з 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
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.7
Базова Лінійна Алгебра з 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