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

學無先后,達者為師

網站首頁 編程語言 正文

scipy稀疏數組dok_array的具體使用_python

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

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

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