您好,登錄后才能下訂單哦!
這篇文章主要介紹“scipy稀疏數組dok_array如何使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“scipy稀疏數組dok_array如何使用”文章能幫助大家解決問題。
dok數組就是通過鍵值對存儲的數組,其中key就是矩陣中的坐標元組,value就是對應坐標中的值,是最容易理解的稀疏矩陣存儲方案。
>>> import numpy as np >>> from scipy.sparse import dok_array >>> dok = dok_array((5, 5), dtype=np.float32) >>> for i in range(5): ... for j in range(5): ... dok[i, j] = i + j # Update element ... >>> print(dok.toarray()) [[0. 1. 2. 3. 4.] [1. 2. 3. 4. 5.] [2. 3. 4. 5. 6.] [3. 4. 5. 6. 7.] [4. 5. 6. 7. 8.]]
得到結果為
從上面的代碼來看,其等價形式如下,唯一的區別是,對于一個全0的矩陣,array必須將所有0都存儲下來,而dok數組可以不存儲任何有效值。但對于全都不是0的矩陣,dok除了存儲矩陣的值之外,還要將矩陣的坐標重新寫一邊,相當于數據量翻了三倍。
>>> Z = np.zeros([5,5]) >>> for i in range(5): ... for j in range(5): ... Z[i, j] = i + j # Update element ... >>> print(Z) [[0. 1. 2. 3. 4.] [1. 2. 3. 4. 5.] [2. 3. 4. 5. 6.] [3. 4. 5. 6. 7.] [4. 5. 6. 7. 8.]]
dok僅支持三種初始化方案:
dok_array(D) D是一個稀疏數組或2 × D 2\times D2×D數組
dok_array(S) S是另一種稀疏數組。
dok_array((M, N),dtype='d') 創建一個shape為( M , N ) (M, N)(M,N)的空數組,dtype為數據類型
稀疏數組在計算上并不便捷,所以dok_array中內置了下列函數,可以高效地完成計算。
函數 | expm1 , log1p , sqrt , pow , sign |
三角函數 | sin , tan , arcsin , arctan , deg2rad , rad2deg |
雙曲函數 | sinh , tanh , arcsinh , arctanh |
索引 | getcol , getrow , nonzero , argmax , argmin , max , min |
舍入 | ceil , floor , trunc |
變換 | conj , conjugate , getH |
統計 | count_nonzero , getnnz , mean , sum |
矩陣 | diagonal , trace |
獲取屬性 | get_shape , getformat |
計算比較 | multiply , dot , maximum , minimum |
轉換 | asformat , asfptype , astype , toarray , todense |
轉換 | tobsr , tocoo , tocsc , tocsr , todia , todok , tolil |
更改維度 | set_shape , reshape , resize , transpose |
排序 | sort_indices , sorted_indices |
移除元素 | eliminate_zeros , prune , sum_duplicates |
其他 | copy , check_format , getmaxprint , rint , setdiag |
關于“scipy稀疏數組dok_array如何使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。