如何制作numpy.take或切片多线程?

时间:2018-06-05 04:24:39

标签: python numpy parallel-processing

我测试了numpy.take和slice的代码如下:

import numpy as np
import time


a = np.random.randn(4000000,500)
b = np.arange(0, len(a))
t1 = time.time()
for i in range(10):
        a[b!=2]
t2 = time.time()
print(t2-t1)

t1 = time.time()
for i in range(10):
        a.take(b!=2, axis=0)
t2 = time.time()
print(t2-t1)

我检查了我的CPU,其中大部分是空闲的。仅使用1个CPU。结果,时机非常缓慢。

65.91494154930115
47.01117730140686

在我看来,切片是一种可并行化的操作。为什么numpy没有并行化呢?是numpy doens不支持可并行化的切片还是我需要在numpy中使用一些特殊功能?

0 个答案:

没有答案