Назначение индексации Numpy сохраняет непрерывность?

#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 нельзя изменить на несмежный.