【发布时间】:2015-09-01 22:47:09
【问题描述】:
我想知道如何按元素计算矩阵的阶乘。例如,
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,所以我不明白这是什么意思。
【问题讨论】:
标签: python numpy matrix vectorization factorial