, , :
sqrt, (i for i in j) generator, . , . j , , , . multiprocessing .
, , , , multiprocessing, , .
:
1:
... , j_n, , . , , , .
, , , - , .
2:
, , , "" .
, (.. n m :
numpy , :
import numpy as np
nested_arr = np.array(nested)
shape = nested_arr.shape
linear = nested_arr.ravel()
results_lin = Parallel(n_jobs = 2) (delayed(sqrt)(e) for e in linear)
results = results_lin.reshape(shape)
, , np.nditer() . , joblib multiprocessing.
( - , ), np.sqrt(nested_arr) - , , !
, :
structure = [len(e) for e in nested]
linlist = []
for l in nested:
linlist.extend(l)
results_lin = Parallel(n_jobs = 2) (delayed(sqrt)(e) for e in linlist)
results = []
i = 0
for n in structure:
results.append(results_lin[i:i+n])
, , . , , , .
?
, , , np.array. , , :
In [14]: time resl = [sqrt(e) for e in range(1000000)]
CPU times: user 2.1 s, sys: 194 ms, total: 2.29 s
Wall time: 2.19 s
In [15]: time res = np.sqrt(np.arange(1000000))
CPU times: user 10.4 ms, sys: 0 ns, total: 10.4 ms
Wall time: 10.1 ms
, , 24 . ( 216 , numpy, , mutliprocessing .