Пример:
Даны две матрицы A и B:Код: Выделить всё
A = [[a_11, a_12],
[a_21, a_22]]
B = [[b_11, b_12],
[b_21, b_22]]
Код: Выделить всё
C_ij = sum(A_ik * B_kj for k in range(n))
Код: Выделить всё
*Код: Выделить всё
sumКод: Выделить всё
C_ij = custom_add(custom_multiply(A_i1, B_1j), custom_multiply(A_i2, B_2j), ..., custom_multiply(A_ik, B_kj))
Пользовательские операторы:
Например, я мог бы определить:Код: Выделить всё
custom_multiply = lambda x, y: (x&0xff) * y # Custom multiplication function
custom_add = lambda x, y: max(x, y) # Custom addition function
Пример использования:
Я считаю, что полезно иметь собственный матричный продукт для различных приложений. Например, в сети вычисление маршрутов может следовать общему процессу умножения матриц, если задана матрица смежности. Однако поэлементные операции должны быть настроены в соответствии с конкретными ограничениями, требуемыми определенными протоколами маршрутизации.Вопрос:
Я не хочу используйте простые циклы для выполнения матричного произведения. Мои пользовательские поэлементные операции можно разложить на серию базовых арифметических операций, которые поддерживаются NumPy и могут быть расширены/транслированы до матричных. Я хотел бы знать:- Есть ли встроенная функция NumPy для поддержки пользовательских матричных продуктов?
- Если нет, существует ли общий способ эффективно разбить процесс матричного продукта на ряд матричных операций?
Подробнее здесь: https://stackoverflow.com/questions/785 ... operations