scipy稀疏數(shù)組dok_array的具體使用
dok_array
dok數(shù)組就是通過鍵值對存儲的數(shù)組,其中key就是矩陣中的坐標(biāo)元組,value就是對應(yīng)坐標(biāo)中的值,是最容易理解的稀疏矩陣存儲方案。
>>> 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.]]
得到結(jié)果為

從上面的代碼來看,其等價形式如下,唯一的區(qū)別是,對于一個全0的矩陣,array必須將所有0都存儲下來,而dok數(shù)組可以不存儲任何有效值。但對于全都不是0的矩陣,dok除了存儲矩陣的值之外,還要將矩陣的坐標(biāo)重新寫一邊,相當(dāng)于數(shù)據(jù)量翻了三倍。
>>> 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是一個稀疏數(shù)組或2 × D 2\times D2×D數(shù)組
- dok_array(S) S是另一種稀疏數(shù)組。
- dok_array((M, N),dtype='d') 創(chuàng)建一個shape為( M , N ) (M, N)(M,N)的空數(shù)組,dtype為數(shù)據(jù)類型
內(nèi)置方法
稀疏數(shù)組在計算上并不便捷,所以dok_array中內(nèi)置了下列函數(shù),可以高效地完成計算。
| 函數(shù) | expm1, log1p, sqrt, pow, sign |
| 三角函數(shù) | sin, tan, arcsin, arctan, deg2rad, rad2deg |
| 雙曲函數(shù) | sinh, tanh, arcsinh, arctanh |
| 索引 | getcol, getrow, nonzero, argmax, argmin, max, min |
| 舍入 | ceil, floor, trunc |
| 變換 | conj, conjugate, getH |
| 統(tǒng)計 | count_nonzero, getnnz, mean, sum |
| 矩陣 | diagonal, trace |
| 獲取屬性 | get_shape, getformat |
| 計算比較 | multiply, dot, maximum, minimum |
| 轉(zhuǎn)換 | asformat, asfptype, astype, toarray, todense |
| 轉(zhuǎn)換 | 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 |
到此這篇關(guān)于scipy稀疏數(shù)組dok_array的具體使用的文章就介紹到這了,更多相關(guān)scipy稀疏數(shù)組dok_array內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Selenium webdriver添加cookie實現(xiàn)過程詳解
這篇文章主要介紹了Selenium webdriver添加cookie實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
Python結(jié)合多線程與協(xié)程實現(xiàn)高效異步請求處理
在現(xiàn)代Web開發(fā)和數(shù)據(jù)處理中,高效處理HTTP請求是關(guān)鍵挑戰(zhàn)之一,本文將結(jié)合Python異步IO(asyncio)和多線程技術(shù),探討如何優(yōu)化請求處理邏輯,解決常見的線程事件循環(huán)問題,有需要的小伙伴可以根據(jù)需求進(jìn)行選擇2025-04-04
Python 200行代碼實現(xiàn)一個滑動驗證碼過程詳解
這篇文章主要介紹了Python 200行代碼實現(xiàn)一個滑動驗證碼過程詳解,各種各樣的驗證碼,比較高級的有滑動、點選等樣式,看起來好像挺復(fù)雜的,但實際上它們的核心原理還是還是很清晰的,本文章大致說明下這些驗證碼的原理以及帶大家實現(xiàn)一個滑動驗證碼2019-07-07
使用python把xmind轉(zhuǎn)換成excel測試用例的實現(xiàn)代碼
這篇文章主要介紹了使用python把xmind轉(zhuǎn)換成excel測試用例的實現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
OpenCV+Python--RGB轉(zhuǎn)HSI的實現(xiàn)
今天小編就為大家分享一篇OpenCV+Python--RGB轉(zhuǎn)HSI的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
python常用數(shù)據(jù)結(jié)構(gòu)集合詳解
這篇文章主要介紹了python常用數(shù)據(jù)結(jié)構(gòu)集合詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-08-08

