python - numpy.transpose 的时间复杂度

标签 python python-3.x numpy

np.transpose 的时间复杂度是多少?

在我看来,它在内部循环了两个 for 循环,这意味着它应该具有 O(n2) 复杂度,但有人可以确认吗?
另外,有什么办法可以降低矩阵转置的时间复杂度

最佳答案

在内存中,矩阵被表示为连续的内存块,就像它是一个一维数组一样。 N维是我们人类用来使问题更容易理解的抽象。对于numpy来说,转置矩阵就是简单的换轴,但是内存没有变化。

所以时间复杂度是 O(1) 因为要转置一个数组,numpy 只是交换每个轴的形状和步幅信息。

无需复制任何数据即可实现这一点。 Numpy 可以简单地改变它对底层内存的看法来构造新数组。

如果您想加深主题,可以查看this精美的插图答案

关于python - numpy.transpose 的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58279082/

相关文章:

python - 需要在 Python(或命令行)中以编程方式转换 PDF 纸张大小(例如 US-Letter 到 A4)

python - 如何同时绘制不同产品的时间序列图?

python-3.x - 在 Python 中转置和乘法列表

python - 在 python 中实现 fprintf 的简单方法是什么?

python - 我可以将 numpy 数组的值打印为绿色(如果为正)或红色(如果为负)吗?

python - 嵌入 Python 时共享数组的最简单方法

Python:在零数组中初始化 numpy 数组

Python multiprocessing - 观察一个进程并在失败时重新启动它

python - Notepad++ 找不到文件路径

python - 使用另一个 DataFrame 创建或修改 DataFrame