我想在(i,j)
矩阵的每个NumPy
条目上应用函数。但我想使用值i
和j
。例如,给定向量A
和B
以及抽象函数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
循环进行矢量化。
谢谢!
答案 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])