Python Numpy Matrix应用元素行列输入明智功能

时间:2017-06-01 22:55:17

标签: python numpy matrix lambda

我想在(i,j)矩阵的每个NumPy条目上应用函数。但我想使用值ij。例如,给定向量AB以及抽象函数f,我想执行以下操作:

for i in range(I):
    for j in range(J):
        M[i,j] = f(A[i],B[j])

除了上述内容,我可以执行以下操作:

g = lambda (i,j): f(A[i],B[j])
apply(M, g)

试图对for循环进行矢量化。

谢谢!

1 个答案:

答案 0 :(得分:0)

取决于功能

f = lambda x, y: x ** 2 + y

np.random.seed([3,1415])
A = np.random.rand(10)
B = np.random.rand(10)
M = np.empty_like(A)
M.fill(np.nan)

slc = np.array([3, 5, 6, 7])

然后做你提出的建议

M[slc] = f(A[slc], B[slc])

M

array([        nan,         nan,         nan,  1.14332569,         nan,
        0.11791531,  0.86916307,  0.86854943,         nan,         nan])

​