Перемножение матриц python

Есть код, он работает, попытался сделать по другому, получил ошибку. Мне интересно, почему так

for j in range(n):
    for i in range(m):
        for l in range(k):
            #g += dataA[i][l]*dataB[l][j] ;первоначальный вариант (работает)
            g += np.dot(read_a[i][l], read_b[l][j]) ;второй вариант (работает)
            #g += np.matmul(read_a[i][l], read_b[l][j]) ;третий вариант (не работает)
        obj.write(str(g) + ' ;') 
        g = 0
    obj.write('\n')
obj.close()

Ответы (1 шт):

Автор решения: MBo

np.matmul:

Аргументом не может быть число, для этого используйте a*b

np.matmul ведь перемножает целые матрицы, вот и используйте инструмент по назначению

с = np.matmul(a, b)

Неполноценно используется и np.dot - умножайте целиком строку на столбец (через срез), т.е. внутренний цикл не нужен

→ Ссылка