日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

scipy稀疏數組coo_array的實現_python

作者:微小冷 ? 更新時間: 2023-05-29 編程語言

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())

其輸出結果為

但需要注意一點,若行數組和列數組所對應的矩陣坐標發生了重復,那么重復位置處對應的值會累加,

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())

結果為

初始化方案

  • coo_array(D) D是一個稀疏數組或2 × D 2\times D2×D數組
  • coo_array(S) S是另一種稀疏數組
  • coo_array((M, N),dtype='d') 創建一個shape為( M , N ) (M, N)(M,N)的空數組,dtype為數據類型
  • coo_array((data, (i,j))) (i, j)是坐標數組,data是數據數組,設新矩陣為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]])

內置方法

稀疏數組在計算上并不便捷,所以coo_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/128866351

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新