Базова Лінійна Алгебра з 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
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the difference between the dot product and matrix multiplication?
How do I know when to use the dot() function versus the @ operator in NumPy?
Can you provide more examples of matrix multiplication with different shapes?
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