Что делает NumPy в назначении? - PullRequest
0 голосов
/ 21 февраля 2019

Предположим, что у меня есть код, показанный ниже

import numpy as np
n = 100
a = np.empty((n,))
b = np.random.random((n,))
c = np.random.random((n,))

def sum(x, y):
    return x + y

# assignment 1
a = b + c

# assignment 2
a = sum(b, c)

# assignment 3
d = b + c

# assignment 4
b = b + c

Интересно, что numpy делает для каждого назначения?

  • Для назначения 1 и 2 он создает временный массивсначала скопируйте содержимое в a?Или он вычисляет b + c и сохраняет результат непосредственно в a?
  • Для присвоения 3 инициализирует d и непосредственно сохраняет результат b + c в d?
  • Для присвоения 4, создает ли он временную переменную или просто изменяет b на месте (эквивалентно записи b += c)?

Это не имеет большого значения для небольшого числа n, но как только он достигнет 10^7 или выше, я думаю, что это может иметь большое значение с точки зрения скорости.

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