stackoverflow.com/q/40694380/4950339

нвещания описывает, как NumPy обрабатывает массивы различной формы во время арифметических операций.

Example 1:

from numpy import array 
a = array([1.0,2.0,3.0])
b = array([2.0,2.0,2.0]) # multiply element-by-element ()
a * b
>> array([ 2.,  4.,  6.])

Example 2 :

from numpy import array
a = array([1.0,2.0,3.0])
b = 2.0  # broadcast b to all a
a * b
>>array([ 2.,  4.,  6.])

Мы можем думать о том, что скаляр b растягивается во время арифметической операции в массив такой же формы, что и a. Numpy достаточно умен, чтобы использовать исходное скалярное значение без фактического копирования, чтобы широковещательные операции были как можно более оперативными и вычислительными (b - это скаляр, а не массив)

Маленькийбенчмаркинг сделан@Eric Duminil вдругой вопрос производительности памяти, показывает, что вещание имеет значение с точки зрения скорости и памяти

Однако я цитирую ту же статью, на которую ссылались выше:

Есть случаи, когда вещание - плохая идея, потому что оно приводит к неэффективному использованию памяти, что замедляет вычисления

Вопрос: когда вещание использует излишне большие объемы памяти и приводит к вялой производительности? Другими словами, когда мы должны использоватьгибридное вещание/ Python алгоритм зацикливания на чистом вещании подход?

Ответы на вопрос(0)

Ваш ответ на вопрос