Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当二维数组作为变量时计算函数_Python_Arrays - Fatal编程技术网

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

Python 当二维数组作为变量时计算函数,python,arrays,Python,Arrays,我想通过一个函数进行计算,这个函数与kx和ky有关。 kx和ky是两个二维阵列。 如何使用python来实现这一点 谢谢你 用python进行数组计算的事实上的标准包是numpy。因此,安装numpy软件包 将numpy作为np导入##几乎每个人都将numpy作为np导入,所以也可以。 def my_功能(kx,ky): 返回kx/(kx**2+ky**2) kx=np.数组([[1,2,3],[1,2,3],[1,2,3]) ky=np.array([[1,1,1],[2,2,2],[3,3,

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

谢谢你


用python进行数组计算的事实上的标准包是
numpy
。因此,安装
numpy
软件包

将numpy作为np导入##几乎每个人都将numpy作为np导入,所以也可以。
def my_功能(kx,ky):
返回kx/(kx**2+ky**2)
kx=np.数组([[1,2,3],[1,2,3],[1,2,3])
ky=np.array([[1,1,1],[2,2,2],[3,3,3]])#我想我们也可以说,对于转置,ky=kx.T。
输出=my_函数(kx,ky)
请注意,numpy数组上的数学运算通常是按元素应用的,因此
kx**2
只需分别对
kx
的每个元素进行平方运算,这就是您在这里想要的。对于矩阵乘法类型的平方运算,您可以执行类似于
kx.dot(kx)
的操作

我假设你的数组
kx
ky
只是随机的例子;否则,有比这样写出来更有效的方法来生成它们


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

为什么不在x和y上循环,并将新的矩阵元素设置为(kx[x][y]/(kx[x][y]**2+ky[x][y]**2)?实际上我需要更复杂的数组,例如7X7阵列。每行中的值相同,[1,2,3,4,5,6,7],[1,2,3,4,5,6,7],[1,2,3,4,5,6,7],[1,2,3,4,4,5,5,6,7],[1,2,4,6,7],[1,2,3,4,5,6,7]。有没有像np.linespace这样的函数?这样我就可以设置开始号、结束号和空格了?linespace(开始、停止、num)以及第一行的“1、2、3、4、5、6、7”和第二行的“列”是不是都一样?有
linspace
arange
。在这种情况下,您可能需要
arange(1,8)
。还有一些辅助函数可以将这个1d数组转换成两个2d数组,比如
meshgrid
,如果我没记错的话,请理解~非常感谢。