Я ищу наиболее эффективный метод в Python для определенного вида векторных операций, скажем,
- Получить массив, состоящий из взвешенных сумм произведений со всеми другими элементами массива, для каждого элемента массива.
например, предположим, что у нас есть два массива одинаковой формы
a = [ 1, 2, 3, 4]
b = [ 1, 0, -1, 2]
Что я хотел бы сделать, так это создать новый массив c такой же формы, чтобы
c[i] = ( sum of a[j]*b[j] while j!=i )
Threfore урожайности
c = [ 5, 6, 9, -2]
Это не такая сложная проблема, если мы используем несколько циклов for
, но она может быть медленной для очень больших массивов. Я слышал, что использование маскированного массива np.ma
дает некоторую помощь, но кажется, что метод все еще требует итеративной маскировки каждого элемента.
Интересно, есть ли какой-нибудь другой метод, более быстрый, чем этот, особенно с использованием векторизованных форм операций?