python - 矩阵数据结构

标签 python matrix

一个简单的二维数组允许在 O(1) 时间内交换矩阵中的行(或列)。是否有一种高效的数据结构可以在 O(1) 时间内交换矩阵的行和列?

最佳答案

您必须将矩阵存储为行列表或列列表。这给出了 O(1) 中的行交换或列交换。

但是,您可以在其上添加另一个层来处理列顺序,以便您可以在 O(1) 中对列重新排序。

因此对于您需要做的每一次访问:

x = data[row][colorder[col]] 

行交换为:

data[row1], data[row2] = data[row2], data[row1]

并将列交换为:

colorder[col1], colorder[col2] = colorder[c2], colorder[c1]

关于python - 矩阵数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686162/

相关文章:

python - 对数组进行排序并将索引追溯到其排序顺序

python - 通过字典的keys()获取的列表顺序

python - 捕获交互式 Python shell 输出和输入

python - 在 tfhub 再训练脚本中计算 F1 分数、精度、召回率

matlab - 创建没有 for 循环的类矩阵

matlab - MATLAB 中的 ode 求解器中的质量矩阵是什么?

r - R 中的矩阵运算 : parallelization, 稀疏运算,GPU 计算

python - to_excel() 没有索引布局

python - 压缩列表的 python 字典

matlab - 矩阵中四组的总和