Numpy 索引赋值保持连续性?

Numpy indexing assignement preserve contiguousness?

假设我有一个连续的数组:

contiguous_array = np.ascontiguousarray(...)

和另一个不一定连续的数组:

generic = np.array([10, 100, 1000])

如果我这样做:

indices = [0, 5, 10]
contiguous_array[indices] = generic

contiguous_array 仍然是连续的吗?

contiguous_array 仍然是连续的。赋值将数据复制到 contiguous_array 的现有缓冲区;它不会改变内存布局。不可能制作一个连续的数组 non-contiguous.

当您创建了一个 C_contigous 数组 (x) 后,您稍后创建了一个 numpy 数组并通过选择索引替换了 x 的元素。 例如:Code by replicating your question

但这些步骤不会改变数组的类型,即 C_Contigous 数组 Output to determine the type

因此,contiguous_array 不能更改为不连续。