#11. Произведение матриц и векторов, элементы линейной алгебры | NumPy уроки

Как выполнять векторное и матричное произведения в пакете NumPy. Функции: dot, matmul, inner, outer. Оператор @ заменяющий функцию dot. Рассматриваются элементы линейной алгебры модуля linalg. В частности: вычисление обратной матрицы, определение ранга матрицы.
Инфо-сайт: proproprogs.ru
NumPy: numpy.org/doc/stable/

Пікірлер: 32

  • @gayratsaidakhmedov5451
    @gayratsaidakhmedov54513 ай бұрын

    спасибо

  • @user-kg4yr1tf5h
    @user-kg4yr1tf5h10 ай бұрын

    кто бы вы не был, ну вы Мужииик 😎

  • @platonmakinen8280
    @platonmakinen8280 Жыл бұрын

    Спасибо за видео! Хотелось бы отметить одну неточность в видео: оператор @ вызывает не dot, а __matmul__ метод массива - a.__matmul__(b) = a @ b. Между ними есть разница, но она появляется только при размерностях N > 2. В matmul (в отличие от dot): Умножение на скаляры не допускается. Стопки матриц транслируются вместе, как если бы матрицы были элементами.

  • @selfedu_rus

    @selfedu_rus

    Жыл бұрын

    да, спасибо, ценное замечание!

  • @alexandermoysa7181
    @alexandermoysa71817 ай бұрын

    Спасибо!

  • @techroniin4429
    @techroniin442911 ай бұрын

    Математические формулы выглядят иногда очень страшно, но применение их на деле, намного проще чем ты думаешь.

  • @DyadkaChizell
    @DyadkaChizell Жыл бұрын

    Cпасибули)

  • @user-oc2th5ph8v
    @user-oc2th5ph8v Жыл бұрын

    Топ

  • @user-zv4qr8ri6c
    @user-zv4qr8ri6c Жыл бұрын

    Сергей,спасибо

  • @86Blind
    @86Blind3 жыл бұрын

    Большой лайк !!!

  • @waydao4958
    @waydao49583 жыл бұрын

    Супер)

  • @user-ob7ri7ct7o
    @user-ob7ri7ct7oАй бұрын

    вот уточнение по поводу разницы dot() и matmul(): Тип матриц: np.dot() может выполнять умножение как для матриц, так и для векторов. np.matmul() выполняет умножение только для матриц. Если вы пытаетесь использовать np.matmul() для умножения векторов, он выдаст ошибку. Расширение матриц: np.dot() автоматически расширяет матрицы до соответствующего размера перед умножением. np.matmul() не выполняет автоматическое расширение и требует, чтобы размеры матриц были соответствующими. Порядок умножения: np.dot() выполняет умножение в соответствии с правилами умножения матриц, то есть он умножает соответствующие столбцы первой матрицы на соответствующие строки второй матрицы. np.matmul() выполняет то же самое умножение, но без автоматического расширения и без учета правил умножения матриц.

  • @sergeyv1534
    @sergeyv15343 жыл бұрын

    Лайк!

  • @ngshares490
    @ngshares490 Жыл бұрын

    Исходя из линала, в результате умножения двух матриц с размерностями A(MxN) и B(NxL) получается матрица C(MxL). Если умножать вектор-строку (1, N) на вектор-столбец (N, 1) размер результирующей должен получиться (1х1). Если умножать вектор-столбец (M, 1) на вектор-строку (1, L) размер результирующей должен получиться (MхL). Зачем придуман inner и outer? inner будет транспонировать второй аргумент, если это плоский массив, чтобы получить столбец? А outer будет транспонировать первый аргумент также чтобы превратить его в столбец?

  • @YbisZX
    @YbisZX3 жыл бұрын

    Оператор @ все же соответствует np.matmul(), а не np.dot(). Там есть нюансы.

  • @selfedu_rus

    @selfedu_rus

    3 жыл бұрын

    Да, в документации matmul. На сайте поправил. Спасибо!

  • @user-kg9sj8dr9l
    @user-kg9sj8dr9l Жыл бұрын

    a = np.matrix(a) b = np.matrix(b) a*b

  • @user-tt8ok4uw1z
    @user-tt8ok4uw1z2 жыл бұрын

    Большое спасибо за видео! Но у меня осталось пара вопросов. На 215 секунде (3:35) вы определили внешнее умножение векторов. Но разве внешнее умножение векторов - это не объединение элементов в список с определенными свойствами (симплекс)? Просто если он как-то раскрывается или переходит в такое произведение, то можно ли где-то об этом прочитать? И почему тогда не выполняются свойства внешней алгебры (a * a = 0 и a * b = - b * a)?

  • @selfedu_rus

    @selfedu_rus

    2 жыл бұрын

    внешнее произведение - это то же самое, что и векторное произведение, а внутреннее - это скалярное произведение

  • @user-tt8ok4uw1z

    @user-tt8ok4uw1z

    2 жыл бұрын

    @@selfedu_rus понял, спасибо)

  • @PinusTF2Spy

    @PinusTF2Spy

    2 жыл бұрын

    @@user-tt8ok4uw1z Почитайте про тензорное произведение, на русской википедии есть пример тензорного умножения двух векторов как частный случай тензорного произведения и на выходе получается матрица. В англоязычной литературе тензорное произведение часто называют "outer product" (дословно - внешнее произведение), а скалярное произведение - "inner product" (внутреннее) или "dot product". Тензорное произведение, кстати, не есть векторное произведение. Очевидно, что результат векторного произведения двух векторов - вектор, а тензорного - матрица. Внешняя алгебра тут не причём вроде бы, но я не настолько хорошо знаю "высшую алгебру" чтобы разбираться в различных видах алгебр. :)

  • @dubinin_s
    @dubinin_s3 жыл бұрын

    У меня маленький вопросик, при решении систем уравнений X и Y должны быть столбцами, как NumPy решил систему ели вы Y задали строкой?

  • @dubinin_s

    @dubinin_s

    3 жыл бұрын

    Понял, ответ Вы дали в видео минутой раньше)))

  • @user-ku4nn5pw8p
    @user-ku4nn5pw8p2 жыл бұрын

    А в чем отличие matmul от dot? В интернете про стеки матриц говорится, не оч понятно

  • @selfedu_rus

    @selfedu_rus

    2 жыл бұрын

    написал в телеграм )

  • @user-dt9yp8im1t

    @user-dt9yp8im1t

    2 ай бұрын

    @@selfedu_rus добрый день. тоже интересен этот момент, но прошло столько времени. даже не понятно, когда и в каком именно телеграмм канале вы это написали. я понимаю, что нужно раскручивать тг, но было бы замечательно, если бы вы продублировали это здесь, потому что спустя столько времени найти эту запись крайне сложно!

  • @user-qj6tk5fw9p
    @user-qj6tk5fw9p9 ай бұрын

    Я что то не понял, на 12.37 Вы говорите что при умножении матрицы А на обратную матрица А, должна получиться единичная матрица (что логично), но у единичной матрицы на главной диагонали ложны быть единицы, а все остальные нули, а у Вас интерпритатор выдает другую матрицу (встречаются значения отличные от нуля не на главной оси).

  • @selfedu_rus

    @selfedu_rus

    9 ай бұрын

    Там почти нулевые значения. Дело в том, что вещественные числа в вычислительной технике не всегда удается представить точно, часто появляется небольшая погрешность.

  • @user-qj6tk5fw9p

    @user-qj6tk5fw9p

    9 ай бұрын

    @@selfedu_rus понял, спасибо. спасибо за урок!

  • @mirlan19
    @mirlan192 жыл бұрын

    спасибо