Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Базова Лінійна Алгебра з NumPy | Математика з NumPy
Ultimate NumPy

bookБазова Лінійна Алгебра з NumPy

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

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

У лінійній алгебрі вектор — це впорядкована сукупність значень. Одновимірні масиви 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)
copy

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

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

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

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

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

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

Скалярний добуток і множення матриць у 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)
copy

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

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

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

Завдання

Swipe to start coding

Ви працюєте з масивом exam_scores, який містить змодельовані бали іспитів трьох студентів (кожен рядок відповідає студенту) з трьох предметів (кожен стовпець відповідає предмету).

  1. Помножте бали кожного предмету на відповідний коефіцієнт.
  2. Додайте отримані бали для кожного студента, щоб обчислити їхній підсумковий бал.
  3. Обчисліть скалярний добуток між exam_scores та coefficients.

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

Рішення

Все було зрозуміло?

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

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

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

single

Запитати АІ

expand

Запитати АІ

ChatGPT

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

close

Awesome!

Completion rate improved to 3.7

bookБазова Лінійна Алгебра з NumPy

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

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

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

У лінійній алгебрі вектор — це впорядкована сукупність значень. Одновимірні масиви 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)
copy

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

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

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

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

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

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

Скалярний добуток і множення матриць у 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)
copy

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

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

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

Завдання

Swipe to start coding

Ви працюєте з масивом exam_scores, який містить змодельовані бали іспитів трьох студентів (кожен рядок відповідає студенту) з трьох предметів (кожен стовпець відповідає предмету).

  1. Помножте бали кожного предмету на відповідний коефіцієнт.
  2. Додайте отримані бали для кожного студента, щоб обчислити їхній підсумковий бал.
  3. Обчисліть скалярний добуток між exam_scores та coefficients.

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

Рішення

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

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

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

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

single

some-alt