Я просматривал операторы с массивами-пустышками и обнаружил то, чего не ожидал и что не знаю, как его интерпретировать.
Я выполняю операцию, являющуюся массивом A в силу массива Bясно, что A и B имеют одинаковую форму.Поведение, которое я ожидаю, - это «поэлементная сила»: каждый элемент A соответствует степени соответствующих элементов в B. Однако, похоже, что происходит что-то еще.
import numpy as np
values = list(range(1, 10))
array_1d = np.array(values)
print(array_1d ** (array_1d * 5))
Итак, я 'м [1, 2, 3, 4, 5, 6, 7, 9]
до степени [5, 10, 15, 20, ...]
.Ожидаемый результат (в моей голове) эквивалентен [v ** (v*5) for v in list(range(1,10))]
, то есть:
[1,
1024,
14348907,
1099511627776,
298023223876953125,
221073919720733357899776,
378818692265664781682717625943,
1329227995784915872903807060280344576,
8727963568087712425891397479476727340041449].
Однако вывод:
array([ 1, 1024, 14348907, 0, 167814181, 1073741824, 613813847, 0, -1054898967], dtype=int32)
Кто-то знает причину этого результата?Что на самом деле здесь происходит?Спасибо!