scipy稀疏數(shù)組coo_array的實現(xiàn)
coo_array
coo也被稱為ijv,是一種三元組格式,對于矩陣中第i ii行第j jj列的值v vv,將其存儲為( 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é)果為

但需要注意一點,若行數(shù)組和列數(shù)組所對應(yīng)的矩陣坐標(biāo)發(fā)生了重復(fù),那么重復(fù)位置處對應(yīng)的值會累加,
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是一個稀疏數(shù)組或2 × D 2\times D2×D數(shù)組
- coo_array(S) S是另一種稀疏數(shù)組
- coo_array((M, N),dtype='d') 創(chuàng)建一個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]
前三種比較容易理解,下面驗證一下第四種
>>> 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ù)組在計算上并不便捷,所以coo_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ù)組coo_array的實現(xiàn)的文章就介紹到這了,更多相關(guān)scipy稀疏數(shù)組coo_array內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用gmplot創(chuàng)建動態(tài)地圖可視化
gmplot 是一個 Python 庫,用于基于 Google Maps 的靜態(tài)地圖生成可視化,它提供簡單的 API 來繪制標(biāo)記、路徑、熱力圖等地理信息數(shù)據(jù),本文給大家介紹了如何使用 gmplot 在 Python 中創(chuàng)建動態(tài)地圖可視化,需要的朋友可以參考下2024-12-12
python機器學(xué)習(xí)理論與實戰(zhàn)(五)支持向量機
這篇文章主要為大家詳細(xì)介紹了python機器學(xué)習(xí)理論與實戰(zhàn)第五篇,支持向量機的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01

