scipy稀疏數(shù)組coo_array的實(shí)現(xiàn)
coo_array
coo也被稱為ijv,是一種三元組格式,對(duì)于矩陣中第i ii行第j jj列的值v vv,將其存儲(chǔ)為( i , j , v ) (i,j,v)(i,j,v)這樣的三元組,即為coo_array的原理。
例如
import numpy as np from scipy.sparse import coo_array row = np.array([0, 3, 1, 0]) col = np.array([0, 3, 1, 2]) data = np.array([4, 5, 7, 9]) coo_array((data, (row, col)), shape=(4, 4)).toarray() print(coo.toarray())
其輸出結(jié)果為
但需要注意一點(diǎn),若行數(shù)組和列數(shù)組所對(duì)應(yīng)的矩陣坐標(biāo)發(fā)生了重復(fù),那么重復(fù)位置處對(duì)應(yīng)的值會(huì)累加,
row = np.array([0, 0, 1, 3, 1, 0, 0]) col = np.array([0, 2, 1, 3, 1, 0, 0]) data = np.array([1, 1, 1, 1, 1, 1, 1]) coo = coo_array((data, (row, col)), shape=(4, 4)) print(coo.toarray())
結(jié)果為
初始化方案
- coo_array(D) D是一個(gè)稀疏數(shù)組或2 × D 2\times D2×D數(shù)組
- coo_array(S) S是另一種稀疏數(shù)組
- coo_array((M, N),dtype='d') 創(chuàng)建一個(gè)shape為( M , N ) (M, N)(M,N)的空數(shù)組,dtype為數(shù)據(jù)類型
- coo_array((data, (i,j))) (i, j)是坐標(biāo)數(shù)組,data是數(shù)據(jù)數(shù)組,設(shè)新矩陣為a,則a[i[k], j[k]] = data[k]
前三種比較容易理解,下面驗(yàn)證一下第四種
>>> from scipy.sparse import coo_array >>> import numpy as np >>> data = np.random.rand(3) >>> x = y = np.arange(3).astype(int) >>> coo = coo_array((data,(x,y))) >>> coo.toarray() array([[0.28050236, 0. , 0. ], [0. , 0.59568482, 0. ], [0. , 0. , 0.84392724]])
內(nèi)置方法
稀疏數(shù)組在計(jì)算上并不便捷,所以coo_array中內(nèi)置了下列函數(shù),可以高效地完成計(jì)算。
函數(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)計(jì) | count_nonzero , getnnz , mean , sum |
矩陣 | diagonal , trace |
獲取屬性 | get_shape , getformat |
計(jì)算比較 | 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ù)組coo_array的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)scipy稀疏數(shù)組coo_array內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas去除重復(fù)列的實(shí)現(xiàn)方法
這篇文章主要介紹了pandas去除重復(fù)列的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01Tensorflow加載模型實(shí)現(xiàn)圖像分類識(shí)別流程詳解
在視覺(jué)領(lǐng)域可以分為:1、圖像分類 2、語(yǔ)義分割 3、實(shí)例分割 4、目標(biāo)檢測(cè)(跟蹤) 5、關(guān)鍵點(diǎn)檢測(cè)。該篇主要講解利用Tensorflow 對(duì)圖像進(jìn)行圖像分類2022-09-09憶童年!用Python實(shí)現(xiàn)憤怒的小鳥(niǎo)游戲
好久都沒(méi)玩過(guò)憤怒的小鳥(niǎo)了,今天咱自己做一個(gè)玩玩,文中有非常詳細(xì)的代碼示例,對(duì)想玩的小伙伴們很有用哦,需要的朋友可以參考下2021-06-06python游戲測(cè)試工具自動(dòng)化遍歷游戲中所有關(guān)卡
這篇文章主要為大家介紹了python游戲測(cè)試工具自動(dòng)化遍歷游戲中所有關(guān)卡示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python enumerate函數(shù)遍歷數(shù)據(jù)對(duì)象組合過(guò)程解析
這篇文章主要介紹了Python enumerate函數(shù)遍歷數(shù)據(jù)對(duì)象組合過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Python使用QQ郵箱發(fā)送郵件實(shí)例與QQ郵箱設(shè)置詳解
這篇文章主要介紹了Python發(fā)送QQ郵件實(shí)例與QQ郵箱設(shè)置詳解,需要的朋友可以參考下2020-02-02python2.7實(shí)現(xiàn)爬蟲(chóng)網(wǎng)頁(yè)數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了python2.7實(shí)現(xiàn)爬蟲(chóng)網(wǎng)頁(yè)數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05