如何在python中的2D数组中加速2D数组?

我正在研究如何加快我的职能之一。使用相同大小的多个二维数组调用该函数。我想在最后两个维度将它们组合成3x3的4D,然后再获得整个​​数组的特征值。

我已经设法使用两个嵌套的for循环来做到这一点,但是它比我期望的要慢一些,所以有什么好的方法可以加快代码的速度?

def principal(xx,xy,xz,yy,yz,zz):

    import numpy as np

    xx = np.array(xx)
    xy = np.array(xy)
    xz = np.array(xz)
    yy = np.array(yy)
    yz = np.array(yz)
    zz = np.array(zz)

    size = np.shape(xx)
    Princ = np.empty((size[1],size[0],3,3))
    for j in range(size[1]):
        for i in range(size[0]):
            Princ[j,i,:,:] = np.array([[xx[i,j],xy[i,xz[i,j]],[xy[i,yy[i,yz[i,[xz[i,zz[i,j]]])
    Princ = np.linalg.eigvalsh(Princ)

    return Princ


import numpy as np

number_arrays_1 = 3
number_arrays_2 = 4

xx = np.ones((number_arrays_1,number_arrays_2))*80
xy = np.ones((number_arrays_1,number_arrays_2))*30
xz = np.ones((number_arrays_1,number_arrays_2))*0
yy = np.ones((number_arrays_1,number_arrays_2))*40
yz = np.ones((number_arrays_1,number_arrays_2))*0
zz = np.ones((number_arrays_1,number_arrays_2))*60

Princ = principal(xx,zz)
print(Princ)

我用xx = np.array(xx)进行转换的原因是,在较大的程序中,我将pandas数据框而不是numpy数组传递给函数。

相关文章

本文适合有 Python 基础的小伙伴进阶学习 作者:pwwang 一、...
前言 目前有个python应用需要在容器镜像内拉取git私有仓库的...
前言 当网络不稳定或应用页面加载有问题,可以设置等待,避免...
前言 map()、reduce()、filter()是python的三个高阶函数。所...
入门使用 # 示例代码 warframe = ["saryn&quot...
前言 功能描述:批量重命名指定目录下的文件,文件名加前缀,...