np vectorize не использует ядра - PullRequest
0 голосов
/ 07 февраля 2019

Я использую Python 3 с NumPy, кажется, что NumPy хорошо используют все мои ядра, но когда я использую функцию с np.vectorize, например, так:

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

Он использует толькоодно ядро ​​в течение длительного времени (согласно диаграмме использования процессора).

Как я могу использовать его с многоядерными возможностями numpy?

1 Ответ

0 голосов
/ 07 февраля 2019

Это можно сделать с помощью библиотеки Numberxpr, используя следующий код:

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)

Эта библиотека создает векторизованную функцию, которая использует возможности многопоточности, как объяснено здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...