Как реализована векторизация numpy?Python

Программы на Python
Anonymous
Как реализована векторизация numpy?

Сообщение Anonymous »

В разделе «Почему NumPy быстрый?» говорится, что векторизация позволяет избежать циклов for.
Так, например, добавление двух ndarrays:

Код: Выделить всё

x1 = np.arange(0, 16).reshape(4, 4)
x2 = np.arange(17, 33).reshape(4, 4)
y = x1 + x2
print(y)
Это печатает:

Код: Выделить всё

array([[17, 19, 21, 23],
[25, 27, 29, 31],
[33, 35, 37, 39],
[41, 43, 45, 47]])
Итак, в этом y = x1 + x2, верно, в этой программе Python нет цикла for. И согласно приведенному выше документу, они реализованы в оптимизированном C.
Мой вопрос: в «оптимизированном C» нет цикла for?
Если нет цикла в C также, как реализована векторизация? Я уже знаю базовую структуру numpy ndarray: однобайтовый массив, форму, шаги, копирование/просмотр и т. д.
Я хочу знать основную идею того, как векторизация реализуется без цикла for, а не детали реализации в конкретном исходном коде.

Подробнее здесь: https://stackoverflow.com/questions/785 ... mplemented

Вернуться в «Python»