对三元表实现的稀疏矩阵的快速转置

本文介绍了如何使用Python和C++实现稀疏矩阵的转置。通过交换行列索引并利用计数排序思想调整顺序,实现了转置过程中保持元素在正确位置。详细过程包括初始化矩阵、分析转置原理、计数排序的应用以及最终的C++实现。
摘要由CSDN通过智能技术生成

总的来说,交换行列索引+放到正确位置

python实现与分析

以下大部分代码都用于输出和分析思路,若需查看实现,请向下移至c++实现。

# 一些初始化和引入
import pandas as pd
col =["col", "row","value"]
matrix_dst1,matrix_dst2 = [],[]
from IPython.display import display

首先,初始化一个待转置的矩阵

matrix_src = [[1, 2, 12], [1, 3, 9], [3, 1, -3], [3, 6, 14], [4, 3, 24], [5, 2, 18], [6, 1, 15], [6, 4, -7]]
pd.DataFrame(matrix_src, columns=col)
col row value
0 1 2 12
1 1 3 9
2 3 1 -3
3 3 6 14
4 4 3 24
5 5 2 18
6 6 1 15
7 6 4 -7

转置,无非就是把行列索引给交换就行了。转置过来以后是这样。

for item in matrix_src:
    matrix_dst1.append([item[1],item[0],item[2]])
pd.DataFrame(matrix_dst1, columns=col)
col row value
0 2 1<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值