【问题标题】:Numpy indexing assignement preserve contiguousness?Numpy索引分配保留连续性?
【发布时间】:2020-11-07 09:59:28
【问题描述】:

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

contiguous_array = np.ascontiguousarray(...)

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

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

如果我这样做:

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

contiguous_array 仍然是连续的吗?

【问题讨论】:

    标签: python numpy cython


    【解决方案1】:

    contiguous_array 仍将是连续的。赋值将数据复制到contiguous_array 的现有缓冲区中;它不会改变内存布局。使连续数组不连续是不可能的。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-05-04
        • 2021-09-14
        • 2021-08-12
        • 2020-01-02
        • 2020-01-05
        • 2016-03-03
        • 1970-01-01
        • 2016-12-14
        • 1970-01-01
        相关资源
        最近更新 更多