В Python символ, используемый для обозначения возведения в степень, равен **
, а numpy отлично поддерживает векторное возведение в степень массивов равной длины:
>>> a = np.array([1, 2, 3, 4, 5])
>>> b = np.array([5, 4, 3, 2, 1])
>>> a**b
array([ 1, 16, 27, 16, 5])
Если вы хотите получить желаемый результат, однако вы должен возвести в степень вектор строки с вектором столбца:
>>> a = np.array([[1, 2, 3, 4, 5]]) # Notice now a 2D array, a horizontal vector.
>>> b = np.array([[5, 4, 3, 2, 1]])
>>> a
array([[1, 2, 3, 4, 5]])
>>> b.T
array([[5],
[4],
[3],
[2],
[1]])
>>> a**b.T
array([[ 1, 32, 243, 1024, 3125],
[ 1, 16, 81, 256, 625],
[ 1, 8, 27, 64, 125],
[ 1, 4, 9, 16, 25],
[ 1, 2, 3, 4, 5]])