【问题标题】:How to improve loop for on big array in python?如何改进python中大数组的循环?
【发布时间】:2022-09-27 20:20:20
【问题描述】:

在对 StackOverflow 进行了一些研究之后,我没有找到一个简单的答案来解决我的问题。因此,我与您分享我的代码以寻求帮助:)。

S=np.random.random((495,930,495,3,3))
#The shape of S is (495,930,495,3,3)

#I want to calculate for each small array (z,y,x,3,3) some features
for z in range(S.shape[0]):
    for y in range(S.shape[1]):
        for x in range(S.shape[2]):
            res[z,y,x,0]=np.array(np.linalg.det(S[z,y,x])/np.trace(S[z,y,x]))
            res[z,y,x,1]=np.array(S[z,y,x].mean())
            res[z,y,x,2:]=np.array(np.linalg.eigvals(S[z,y,x]))

这是我的问题。 S 数组的大小是巨大的。所以我想知道是否有可能使这个 for 循环更快。

最好的

    标签: python numpy performance loops bigdata


    【解决方案1】:

    我不知道您的要求或资源,但也许您可以使用威胁编程或并行计算之类的东西来实现您的目标。任何可以将您的大任务划分为同时运行的小任务以将所有结果放在最后的东西。这只是一个概念的想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 2016-02-15
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多