链接
http://scipy-lectures.github.io/advanced/advanced_numpy/
有陈述,
没有办法表示给定一个步幅的数组c和一个用于a的内存块。因此,重塑操作需要在此复制。
这个副本如何在numpy中运行?什么是时间复杂度? numpy怎么知道进一步的数组不能使用相同的数组表示?
答案 0 :(得分:1)
如果您有一个数组的两个维度,其中包含形状sh0
和sh1
以及步幅st0
和st1
,那么您希望合并为单个维度的形状sh0*sh1
,能够在没有副本的情况下执行此操作的条件是st0 == sh1*st1
。请注意,尺寸在形状中出现的顺序是相关的,并且在具有正步幅的C阶数组中,尺寸0
位于尺寸1
之前。
可能存在需要更精细分析的情况,如果你有Fortran指令数组或者负步幅,那么将哪个步幅和形状乘以比较哪个步幅,但基本前提仍然大致相同。