简体   繁体   English

如何使用列表推导加速 function?

[英]How to speed up function with list comprehensions?

Is there a way to speed up or change the function to increase efficiency?有没有办法加快或改变 function 以提高效率?

This function is needed to transform about 200.000 arrays which again consists of 2700 arrays each.这个 function 需要转换大约 200.000 个 arrays ,它又由 2700 个 arrays 组成。 Currently the process takes an eternity.目前,该过程需要一个永恒的时间。

def normalization(descriptors, max_value, min_value):
    if len(descriptors) == 3:
        output = []
        for descriptor in descriptors:
            output.append([[ ((feature-min_value)/(max_value-min_value)) for feature in des ] for des in descriptor])
        return np.asarray(output)
    else:
        return np.asarray([[ ((feature-min_value)/(max_value-min_value)) for feature in des ] for des in descriptors])

If descriptor is a numpy array, then如果descriptor是 numpy 数组,则

(descriptor-min_val)/(max_val-min_val)

should do the job, regardless of whether it's 2D or 3D.应该做这项工作,无论是 2D 还是 3D。

I think that's all your list comprehension is doing - scaling each element of the array.我认为这就是您的列表理解所做的全部 - 缩放数组的每个元素。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM