Рассмотрим следующий код:Сохранить результат умножения на существующий массив
a = numpy.array([1,2,3,4])
b = numpy.array([5,6,7,8])
# here a new array (b*2) will be created and name 'a' will be assigned to it
a = b * 2
Таким образом, можно NumPy написать результат b*2
непосредственно в памяти уже выделено для a
, без выделения нового массива?
Но если есть более сложное выражение, e. г. 'b * 2 + c', могу ли я оценить его без ввода массивов для временных результатов:' multiply (b, 2, temp) 'и' add (temp, c, a) '? – Leonid
@ Leonidas: к сожалению, это одно из ограничений NumPy, операции должны разделиться, как вы писали в своем комментарии. Вам может быть интересна библиотека [numexpr] (https://github.com/pydata/numexpr), которая каким-то образом устраняет эту проблему. –
Спасибо. И вот ответ на мой вопрос: [универсальные функции] (http://docs.scipy.org/doc/numpy/reference/ufuncs.html) – Leonid