np vectorize不利用核心

时间:2019-02-07 07:03:31

标签: python python-3.x multithreading numpy multiprocessing

我将python 3和numpy一起使用,看来numpy操作很好地使用了我的所有内核,但是当我将函数与np.vectorize一起使用时,例如:

f = lambda x: (x*1000) / 20 * 15 + 3
v_func = np.vectorize(f) 
v_func(arr) 

长时间仅使用一个内核(根据cpu利用率图表)。

如何将其与numpy的多核功能一起使用?

1 个答案:

答案 0 :(得分:1)

这可以使用numexpr库通过以下代码完成:

import numexpr as ne
import numpy as np

data = list(range(1000))
arr = np.array(range(100000))
b = ne.evaluate("(arr * 1000) / 25 * 15 + 3")
print(b)

该库正在创建向量化函数,该函数确实利用了here

所述的多线程功能。