Поэлементное умножение между всеми элементами вектора

Каков эффективный способ сделать поэлементную мультипликацию между всеми элементами массива numpy.

Если A - вектор из 100 элементов, то A2 - вектор из 100 ^ 2 элементов.

пример

Вход:

a = [5,2,3,4]

выход

a2=[5*5,5*2,5*3,5*4,2*5,2*2,2*3,2*4,3*5,3*2,3*3,3*4,4*5,4*2,4*3,4*4]

Спасибо

Всего 1 ответ


>>> import numpy as np
>>> np.outer(a,a).reshape(-1)

array([25, 10, 15, 20, 10,  4,  6,  8, 15,  6,  9, 12, 20,  8, 12, 16])

Используйте numpy.outer - для вычисления внешнего произведения двух векторов, а затем numpy.reshape - для получения массива в ожидаемой форме.


Есть идеи?

10000