Экспонировать произвольное число на массив - PullRequest
0 голосов
/ 22 ноября 2018

Я знаю, что np.exp2(x) существует, который вычисляет 2^x, где x - массив с пустым фрагментом, однако я ищу метод, который делает K^x, где K - любое произвольное число.Есть ли какой-нибудь элегантный способ сделать это, вместо того, чтобы растягивать K до формы x и делать кусочную экспоненту?

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

С NumPy вы можете просто использовать numpy.power

arr = numpy.array([1,2,3])
print(numpy.power(3,arr)) # Outputs [ 3  9 27]
0 голосов
/ 22 ноября 2018

Просто используйте стандартный оператор возведения в степень Python **:

K**x

Например, если у вас есть:

x = np.array([1,2,3])
K = 3

print(K**x)

Вывод:

[ 3  9 27]

Примечания

Для классов Python поведение бинарного оператора ** реализовано с помощью магических методов __pow__, __rpow__ и __ipow__ (реальность для np.ndarray немного большесложный, так как он реализован на уровне C, но это на самом деле здесь не важно).Для массивов Numpy эти магические методы, в свою очередь, вызывают numpy.power, поэтому можно ожидать, что ** будет вести себя так же, как описано для numpy.power.В частности,

Обратите внимание, что целочисленный тип, возведенный в отрицательную целочисленную степень, вызовет ValueError.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...