#python #numpy #cython
#python #numpy #cython
Вопрос:
Предположим, что у меня есть непрерывный массив:
contiguous_array = np.ascontiguousarray(...)
и другой необязательно непрерывный массив:
generic = np.array([10, 100, 1000])
если я сделаю что-то подобное:
indices = [0, 5, 10]
contiguous_array[indices] = generic
является ли contiguous_array все еще непрерывным?
Ответ №1:
contiguous_array
все равно будет непрерывным. Назначение копирует данные в contiguous_array
существующий буфер; это не изменяет расположение памяти. Невозможно сделать непрерывный массив несмежным.
Ответ №2:
когда вы создали массив C_contigous (x), позже вы создали массив numpy и заменили элементы x, выбрав индексы. пример: Код, копируя ваш вопрос
но эти шаги не изменят тип массива, который является выводом C_Contigous array для определения типа
следовательно, contiguous_array нельзя изменить на несмежный.