gpt4 book ai didi

python - 如何使用两个相同维度的矩阵执行逐元素自定义函数

转载 作者:行者123 更新时间:2023-12-04 12:38:30 25 4
gpt4 key购买 nike

一直无法找到有关此的任何信息。如果我有两个相同维度的 m x n 矩阵,有没有办法在它们上应用 numpty 中的逐元素函数?为了说明我的
意义:

自定义函数为 F(x,y)

第一个矩阵:

array([[ a, b],
[ c, d],
[ e, f]])

第二个矩阵:
array([[ g, h],
[ i, j],
[ k, l]])

有没有办法在numpy中使用上述两个矩阵来获得下面所需的输出
array([[ F(a,g), F(b,h)],
[ F(c,i), F(d,j)],
[ F(e,k), F(f,l)]])

我知道我可以做嵌套 for陈述,但我认为可能有更清洁的方法

最佳答案

对于一般函数 F(x,y) , 你可以做:

out = [F(x,y) for x,y in zip(arr1.ravel(), arr2.ravel())]
out = np.array(out).reshape(arr1.shape)

但是,如果可能,我建议重写 F(x,y)以这样的方式,它可以被矢量化:
# non vectorized F
def F(x,y):
return math.sin(x) + math.sin(y)

# vectorized F
def Fv(x,y):
return np.sin(x) + np.sin(y)

# this would fail - need to go the route above
out = F(arr1, arr2)

# this would work
out = Fv(arr1, arr2)

关于python - 如何使用两个相同维度的矩阵执行逐元素自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61899911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com