如何用矢量化 numpy 替代方案替换嵌套 for 循环?
给定两个已知的 2D 数组(维度是时间和位置),dhdt_arr 和 dTsdt_arr,如何比使用嵌套 for 循环更快地生成其他 2D 数组?
我想要生成的数组的命名如下,并且已像已知数组一样进行设置:
dmdt_arr = np.zeros_like(dhdt_arr) #change in mass holdup
T_arr = np.zeros_like(dhdt_arr) # fluid temperature
m_hold_arr = np.zeros_like(dhdt_arr) # mass hold up
U_arr = np.zeros_like(dhdt_arr) # heat transfer coefficient array
我用来生成上述数组的嵌套 for 循环(假设代数是正确的,常量已知,并且我使用的函数是也已知)。我只是在寻找一种用更快的东西替换这个结构的方法,比如 numpy 矢量化方法):
for i in range(time.shape[0]): #iteratung through 2D array time x #positions
for j in range(n): #yep
T = temperature(h_arr[j,i],P)
dmdt_arr[j, i] = dhdt_arr[j, i] * dpdh(h_arr[j, i], P) * V
T_arr[j,i] = T
m_hold_arr[j, i] = mass(h_arr[j, i], P)
U_arr[j,i] = mAlumina*CP_ALUMINA*dTsdt_arr[j,i]/(sa*(T_arr[j,i] - Ts_arr[j,i]))
如何以比嵌套 for 循环更快的方式生成这些相同的数组?
Given two known 2D arrays (dimensions are time and position), dhdt_arr and dTsdt_arr, how can I generate some other 2D arrays from these faster than using nested for loops?
The arrays I would like to generate are named below, and have been setup like the known arrays:
dmdt_arr = np.zeros_like(dhdt_arr) #change in mass holdup
T_arr = np.zeros_like(dhdt_arr) # fluid temperature
m_hold_arr = np.zeros_like(dhdt_arr) # mass hold up
U_arr = np.zeros_like(dhdt_arr) # heat transfer coefficient array
The nested for loop I am using to generate the above arrays (assume the algebra is correct, the constants are known, and the functions I used are also known). I am just looking for a way to replace this structure with something faster, like a numpy vectorized approach):
for i in range(time.shape[0]): #iteratung through 2D array time x #positions
for j in range(n): #yep
T = temperature(h_arr[j,i],P)
dmdt_arr[j, i] = dhdt_arr[j, i] * dpdh(h_arr[j, i], P) * V
T_arr[j,i] = T
m_hold_arr[j, i] = mass(h_arr[j, i], P)
U_arr[j,i] = mAlumina*CP_ALUMINA*dTsdt_arr[j,i]/(sa*(T_arr[j,i] - Ts_arr[j,i]))
How can these same arrays be generated in a way that is faster than a nested for loop?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论