我必須使用相當於sicpy的sparse.coo_matrix和sparse.csr_matrix在矩陣上操作。但是,我不能使用scipy(它與我想使用它的圖像分析軟件不兼容)。但是,我可以使用numpy。 有沒有簡單的方法來完成什麼scipy.sparse.coo_matrix和scipy.sparse.csr_matrix做,只有numpy? 謝謝!是否有可能使用scipy建立coo和csr矩陣而不使用scipy?
0
A
回答
3
一個sparse.coo_matrix
的屬性是:
dtype : dtype
Data type of the matrix
shape : 2-tuple
Shape of the matrix
ndim : int
Number of dimensions (this is always 2)
nnz
Number of nonzero elements
data
COO format data array of the matrix
row
COO format row index array of the matrix
col
COO format column index array of the matrix
的data
,row
,col
數組實質上是data
,i
,當與coo_matrix((data, (i, j)), [shape=(M, N)])
j
定義參數。 shape
也來自定義。 dtype
從data
陣列。 nzz
,因爲第一個近似值是data
(不包含零和重複座標)的長度。
因此很容易構建一個coo
類似的對象。同樣,一個lil
矩陣有2個列表。並且dok
矩陣是字典(參見其.__class__.__mro__
)。
一個csr
矩陣的數據結構是一個比較晦澀:
data
CSR format data array of the matrix
indices
CSR format index array of the matrix
indptr
CSR format index pointer array of the matrix
它仍然有3個陣列。它們可以來自coo
陣列。但是,使用純Python代碼這樣做不會像編譯的scipy
函數那麼快。
但是,這些類有很多功能,需要大量的工作才能複製。有些是純Python,但關鍵部分是爲了速度而編譯的。特別重要的是csr_matrix
實現的數學運算,如矩陣乘法。
複製臨時存儲的數據結構是一回事;複製功能是另一回事。
相關問題
- 1. Scipy CSR稀疏矩陣實際上是COO?
- 2. Scipy處理大型COO矩陣
- 3. 是否可以將dtype的scipy CSR矩陣轉換爲NPY_FLOAT?
- 4. 使用廣播與稀疏scipy矩陣
- 5. 使用scipy計算矩陣排名
- 6. SciPy稀疏CSR矩陣的快速切片和乘法
- 7. CSR SciPy的矩陣更新其值後不更新
- 8. 升級時無法兼容Scipy無法在SymPy矩陣上使用SciPy功能
- 9. 子矩陣SciPy的
- 10. Scipy稀疏 - 距離矩陣(Scikit或Scipy)
- 11. 對csr格式的scipy稀疏矩陣的行操作
- 12. 大NumPy的SciPy的CSR矩陣,行明智的操作
- 13. Scipy稀疏CSR矩陣到TensorFlow SparseTensor - 小批量梯度下降
- 14. 切片稀疏(scipy)矩陣
- 15. scipy稀疏矩陣分裂
- 16. scipy稀疏矩陣索引
- 17. 大矩陣的SciPy插值
- 18. scipy曲線適合矩陣
- 19. 構建大型scipy稀疏矩陣
- 20. 通過使用scipy/numpy在Python中添加2矩陣和乘法2矩陣
- 21. Scipy稀疏矩陣 - 不同實現的目的和用法
- 22. SciPy而不是GNU Octave
- 23. scipy ndimage.rotate不能使用np.nan值
- 24. Scipy稀疏矩陣到電源備用矩陣
- 25. Scipy稀疏:SciPy/NumPy更新後的奇異矩陣警告
- 26. 加載到現有的numpy密集矩陣稀疏scipy矩陣
- 27. 如何使用scipy編輯稀疏矩陣中的單元格?
- 28. Scipy稀疏矩陣分配只使用存儲的元素
- 29. 使用SciPy/Numpy在Python中連接稀疏矩陣
- 30. 在scipy Python中使用稀疏矩陣進行計算