Я хотел бы знать, как вычислить факториал матрицы поэлементно. Например,
import numpy as np
mat = np.array([[1,2,3],[2,3,4]])
np.the_function_i_want(mat)
даст матрицу mat2
такую, что mat2[i,j] = mat[i,j]!
. Я пробовал что-то вроде
np.fromfunction(lambda i,j: np.math.factorial(mat[i,j]))
но он передает всю матрицу в качестве аргумента для np.math.factorial
. Я также пытался использовать scipy.vectorize
, но для матриц больше 10x10 я получаю сообщение об ошибке. Это код, который я написал:
import scipy as sp
javi = sp.fromfunction(lambda i,j: i+j, (15,15))
fact = sp.vectorize(sp.math.factorial)
fact(javi)
OverflowError: Python int too large to convert to C long
Такое целое число было бы больше 2e9, поэтому я не понимаю, что это значит.