網站首頁 編程語言 正文
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
|
原文鏈接:https://tinycool.blog.csdn.net/article/details/128866464
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-09-03 解決Python3錯誤:SyntaxError:?unexpected?EOF?while?pars
- 2022-01-18 django中ajax發送post請求報403錯誤csrf禁止,解決只需三步
- 2022-08-20 python3?最常用的三種裝飾器語法匯總_python
- 2023-01-28 Python進程間通訊與進程池超詳細講解_python
- 2022-08-10 對WPF中的TreeView實現右鍵選定_C#教程
- 2023-01-23 C#實現懸浮窗口的方法詳解_C#教程
- 2022-07-22 Python函數默認參數避坑指南
- 2022-07-07 python中list*n生成多維數組與for循環生成多維數組的區別說明_python
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支