我将python 3和numpy一起使用,看来numpy操作很好地使用了我的所有内核,但是当我将函数与np.vectorize一起使用时,例如:
f = lambda x: (x*1000) / 20 * 15 + 3
v_func = np.vectorize(f)
v_func(arr)
长时间仅使用一个内核(根据cpu利用率图表)。
如何将其与numpy的多核功能一起使用?
答案 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
所述的多线程功能。