[资料结构][Python]稀疏矩阵(一)-三元序对转换

给定三元序对

sparse1 = [             [5, 6, 4],              [1, 2, 3],              [2, 1, 6],             [3, 1, 9],              [4, 5, 12]          ]

转换成一般矩阵

def restore(sparse): #三元序对转为稀疏矩阵    row = sparse[0][0]    column = sparse[0][1]    array = [[0] *column  for i in range(row)] #先建立空阵列,每一列有 column个0*共有row列    k = 1 #从第一列开始 而非第0列开始    while k<=sparse[0][2]:        array[sparse[k][0]][sparse[k][1]]=sparse[k][2]        k+=1    return array

将一般矩阵转换成三元序对

def store(array): #将稀疏矩阵储存三元序对    row=len(array) #计算三元阵列的total row    column=len(array[0]) #计算三元阵列的total column    s=[] #建立空的阵列    count=0 #计算所有非0值    for i in range(row):        #计算所有非0值        for j in range(column):            if array[i][j]!=0:                count+=1        s.append([row,column,count]) #储存总数    for i in range(row):            #将非0值储存成三元序对        for j in range(column):            if array[i][j] !=0:                s.append([i,j,array[i][j]])    return s

看结果

array = restore(sparse1)print("给定三元序对,还原矩阵:",array)store(array)three=store(array)print("给定稀疏矩阵,转成三元序对:",three)#依照row major 排序

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章