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 不能更改为不连续。
假设我有一个连续的数组:
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 不能更改为不连续。