最佳答案
在 Python 中进行数组数学计算的事实上的标准包是 numpy。因此,安装 numpy
包,然后就可以了
import numpy as np ## Pretty much everyone imports numpy as np, so might as well.
def my_function(kx, ky):
return kx / (kx**2 + ky**2)
kx = np.array([[1, 2, 3], [1, 2, 3], [1, 2, 3]])
ky = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]]) # Well we could also just have said ky = kx.T for the transpose, I guess.
output = my_function(kx, ky)
请注意,numpy 数组上的数学运算通常按元素应用,因此 kx**2
只需单独平方 kx
的每个元素,这就是您想要的。对于矩阵乘法类型平方,您可以执行类似 kx.dot(kx)
的操作。
我假设您的数组kx
和ky
只是随机示例;否则,有比这样写出更有效的方法来生成它们。
当然,使用普通 python 对象和 for 循环的其他发布的解决方案没有任何问题,但对于较大的数组,您可以期望 numpy 更加高效。
关于python - 当二维数组作为变量时计算函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760872/