python 稀疏矩阵(未完

稀疏矩阵的参考

稀疏矩阵主要参考

# encoding: utf-8
#!/usr/bin/python
#doctest: +ELLIPSIS

from scipy import sparse
# 注意此方法产生的稀疏矩阵不变,且只能转换成array
row = range(2, 5)
col = range(7, 10)
data = [x for x in range(0, 6) if x%2]
c = sparse.coo_matrix((data, (row, col)), shape=(6, 12))
print(c, c.toarray(), sep='\n')

import numpy as np
# dok_matrix和lil_matrix适用于逐渐添加矩阵元素
# doc_matrix采用字典
S = sparse.dok_matrix((5, 5), dtype=np.float32)
for i in range(5):
    for j in range(5):
        S[i, j] = (i % 2) + (j % 2)
print(S, S.toarray(), sep='\n')
# lil_matrix是使用两个列表储存非0元素
L = sparse.lil_matrix((6, 5))
L[2, 3] = 1
L[3, 4] = 2
L[3, 2] = 3
print(L, L.toarray(), sep='\n')
# 其实都是初始化出一个固定大小矩阵 然后对应赋值,内部python都做好了

# dia_matrix 是对角线储存方式 拿S为例
data = np.zeros((5, 5))
for i in range(5):
    for j in range(5):
        data[i, j] = i
# 原先对应行的第一个元素,在变化之后所处于的行 与中间行的差距
offsets = np.array([0, 1, 2, -1, -2])
S2 = sparse.dia_matrix((data, offsets), shape=(5, 5))
print('now')
print(data, S2.toarray(), sep='\n')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章