У меня вопрос о numpy, и это память. Возможно ли создать представление или что-то из нескольких массивов numpy без их копирования?Возможна матрица матриц без копирования?
import numpy as np
def test_var_args(*inputData):
dataArray = np.array(inputData)
print np.may_share_memory(inputData, dataArray) # prints false, b.c. of no shared memory
test_var_args(np.arange(32),np.arange(32)*2)
У меня есть приложение C++ с изображениями и вы хотите сделать магию питона. Я передаю изображения в строках скрипту python с помощью c-api и хочу объединить их, не копируя их.
Я могу передать данные s.t. C++ и python используют одну и ту же память. Теперь я хочу изменить память на numpy view/array или что-то в этом роде.
Изображения в C++ не постоянно присутствуют в памяти (я нарезаю их). Строки, которые я передаю на python, группируются в непрерывном блоке памяти.
Количество изображений, которые я пропускаю, варьируется. Возможно, я могу изменить это, если существует преалокационный трюк.
Вы можете использовать контейнер 'list' для хранения ссылки на каждый исходный массив без создания копии –
Если бы я использовал список, я не смог бы выполнить все нумерованные вещи, которые я хочу сделать. И если я конвертирую список в массив numpy, будет выделена новая память. – Lks
'numpy.array' имеет флаг' copy'. Он настроен на «Истинный» по умолчанию, поэтому всегда копирует ваши данные. Вы пытались использовать 'np.array (inputData, copy = False)'? – Dux