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')

 

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