簡體   English   中英

從 scipy.sparse.csr_matrix 類繼承

[英]Inherit from scipy.sparse.csr_matrix class

我想用一些方法來擴充scipy.sparse.csr_matrix類,並替換一些其他方法供個人使用。 我正在制作一個繼承自csr_matrix的子類,如下所示:

class SparseMatrix(sp.csr_matrix):
    def __init__(self, matrix):
        super(type(self), self).__init__(matrix)

但這行不通,拋出:

AttributeError: toSpa 未找到

你能向我解釋一下我做錯了什么嗎?

在 SciPy 稀疏矩陣實現某個地方,類名的前三個字母用於定義一個方法,該方法將在不同的稀疏矩陣類型之間進行轉換( 請參閱此線程)。 因此,您必須使用以下名稱來實現:

import numpy as np
from scipy.sparse import csr_matrix

class csr_matrix_alt(csr_matrix):
    def __init__(self, *args, **kwargs):
        super(csr_matrix_alt, self).__init__(*args, **kwargs)

s = csr_matrix_alt(np.random.random((10, 10)))
print(type(s))
#<class '__main__.csr_matrix_alt'>

其他名稱,如csr_mymatrixcsr_test等也是可能的...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM