【发布时间】:2016-08-25 19:39:01
【问题描述】:
我有两个 3 维 numpy 数组 A、B(大小 ~ (1000, 1000, 3) -> 图像处理)和它上面的元素函数。
函数是按顺序排列的:
import numpy as np
A = A ** 3
A = np.maximum(A, 0.001)
C = np.divide(B, A)
由于操作这三个命令的功能是一个耗时的过程的瓶颈,我想问一下是否有一种方法可以通过一次访问内存中的每个元素来执行所有这些,即最快的性能。
我能找到的唯一组合是除法部分,例如here 或 here 或 this one 这是一个特殊情况,因为爱因斯坦和。
有没有什么方法可以在不需要编写自定义 ufunc 的情况下一次性访问内存中的每个元素(从而使其节省时间)?
【问题讨论】:
-
数据类型允许,使用第三个链接,做
np.einsum('ijk,ijk,ijk->ijk',A,A,A)模拟A***3?这应该是非常有效的。
标签: python performance numpy