np.transpose 的时间复杂度是多少?
在我看来,它在内部循环了两个 for 循环,这意味着它应该具有 O(n2) 复杂度,但有人可以确认吗?
另外,有什么办法可以降低矩阵转置的时间复杂度
最佳答案
在内存中,矩阵被表示为连续的内存块,就像它是一个一维数组一样。 N维是我们人类用来使问题更容易理解的抽象。对于numpy来说,转置矩阵就是简单的换轴,但是内存没有变化。
所以时间复杂度是 O(1) 因为要转置一个数组,numpy 只是交换每个轴的形状和步幅信息。
无需复制任何数据即可实现这一点。 Numpy 可以简单地改变它对底层内存的看法来构造新数组。
如果您想加深主题,可以查看this精美的插图答案
关于python - numpy.transpose 的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58279082/