Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
使用3';对于';在python中集成函数和返回3d数组的循环太慢,如何优化它?_Python_Arrays - Fatal编程技术网

使用3';对于';在python中集成函数和返回3d数组的循环太慢,如何优化它?

使用3';对于';在python中集成函数和返回3d数组的循环太慢,如何优化它?,python,arrays,Python,Arrays,我有3个数据数组需要集成,需要返回一个3d数组。这是我的密码 import numpy as np from scipy import integrate def f(x, y, z): return x + y + 2*z a = np.arange(64) b = np.arange(100) c = np.arange(100) result = [] for x in a: for y in b: for z in c: res

我有3个数据数组需要集成,需要返回一个3d数组。这是我的密码

import numpy as np
from scipy import integrate
def f(x, y, z):
    return x + y + 2*z

a = np.arange(64)
b = np.arange(100)
c = np.arange(100)

result = []
for x in a:
    for y in b:
        for z in c:
            result.append(integrate.quad(f, 0, x, (y, z))[0])

result_1 = np.array(result).reshape(len(a), len(b), len(c))
print(result_1)
这是可行的,但这段代码太慢了,我需要处理比这更大的问题。还有其他方法吗,比如广播?下面是我需要处理的函数:

import numpy as np
from scipy import integrate, special

def f(v,r):
    alpha = 0.5
    chi = 1/2*special.erf((r+1.2)/0.3)-1/2*special.erf((r-1.2)/0.3)
    return 4/(np.sqrt(2*np.pi*alpha))*chi*np.exp(-v**2/(2*alpha))

def E_1(r):

    def f_1(v,r):
        return r*f(v,r)

    a = 0 
    b = r
    g = lambda x: -np.inf
    h = lambda x: np.inf
    return integrate.dblquad(f_1, a, b, g, h)

def E_f(tau, xi_1, xi_2):
    return E_1(xi_1*np.cos(tau) + xi_2*np.sin(tau))[0]*(-np.sin(tau))

我需要将tau、xiu 1、xiu 2作为三个数组输入,然后返回到一个3D数组。它的排列像坐标,每个坐标点对应一个结果。就像第一个示例一样。

尝试使用列表理解,它比需要集成excat函数的loopsIs更具python风格,速度也更快?“这很容易用手完成。”Shubham Namdeo,看起来更简洁。但它不是更快,我只是试过了。非常感谢。anyway@Julien,它不是我需要集成的确切函数,我只是用这个函数来测试。我的函数很复杂,除非你给我们精确的函数,否则我们帮不了什么忙。