Я хочу вычислить следующее с помощью numpy:
density = 1.474085291*(0.9998541833**h)
где h
- 1*12 matrix
. Я бы хотел, чтобы база была 0.9998541833 и степенями (экспонентами) были элементы матрицы h
. Я пробовал документацию numpy.power, но не могу найти решение.
base = 0.9998541833
density = 1.474085291 * np.array(base)**h
np.array(base) ** h
должно быть достаточно.
Это довольно просто: у вас уже есть код на месте. Просто сформируйте свой массив h
, и ваш готов к работе:
>>> import numpy as np
>>> h = np.array([1, 2, 3, 4, 5, 6])
>>> h
array([1, 2, 3, 4, 5, 6])
>>> density = 1.474085291*(0.9998541833**h)
>>> density
array([ 1.47387034, 1.47365543, 1.47344055, 1.47322569, 1.47301087,
1.47279608])
full
функцию. Также я рекомендую прочитать о NumPy трансляции.
h
является обычным массивом numpy, ваш код должен работать. Только когдаh
- этоnp.matrix
,**
возникают проблемы. Ноnp.power(.99, h)
все еще работает. Это еще одна причина избегать использованияnp.matrix
если он вам действительно не нужен.np.matrix
заключается в том, что он переопределяет**
(__pow__
) как оператор мощности матрицы,np.linalg.matrix_power
. как вnp.matrix(eye(3))**4
. Точно так же*
переопределяется как умножение матриц (например,np.dot
).