python - 当二维数组作为变量时计算函数

标签 python arrays

我想通过一个函数进行计算,这个函数与kx和ky有关。 kx 和 ky 是两个二维数组。 我如何使用 python 来做到这一点?

谢谢!!!

enter image description here

最佳答案

在 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) 的操作。

我假设您的数组kxky只是随机示例;否则,有比这样写出更有效的方法来生成它们。

当然,使用普通 python 对象和 for 循环的其他发布的解决方案没有任何问题,但对于较大的数组,您可以期望 numpy 更加高效。

关于python - 当二维数组作为变量时计算函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59760872/

相关文章:

java - byteBuffer.get() 和 0xFF 的目的是什么?

javascript - 如何将整数数组转换为对象数组?

c - 跳过/忽略包含 c 中值的数组索引

python - 为什么在发生参数错误时不使用装饰函数的名称?

python - 如何格式化这样的字符串?

python - 在 PyDev 中执行默认的 .py 文件

Java:如何用不同的方法获取数组的长度?

c - 为什么要获得随机输出,而不是 C 中的输入?

python - 用条件替换字符串会产生奇怪的结果

python - Python 的 Matlab findpeaks 算法