• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

参考:scipy . spark . CSR _ matrix—scipy v 1 . 8 . 0手册

CSR矩阵的存储结构包含三列数据:

索引指针:指示数据索引的偏移量。列表中的每个元素表示“当前行中最后一个数据的索引”相对于“前一行中最后一个数据的索引”的偏移量(差)

indexes:列表中的每个元素对应一个数据的列索引。

数据:列表中的每个元素对应一个数据值。

g2nqtobgtwx5190.png

上图就是一个例子:

索引指针从0开始,前两个元素(0和2)表示第一行有2个数据。接下来,第二和第三元素(2和3)指示第二行具有3-2=1个数据。以此类推,第I个和第I个元素(J和K)表示稀疏矩阵的第I行具有k-j个数据。

indexes中的第一个元素0表示稀疏矩阵中第一个数据的列索引是0,第二个元素2表示稀疏矩阵中第二个数据的列索引是2。以此类推,第I个元素(R)表示稀疏矩阵中第I个数据的列索引为R。

数据中的第一个元素8表示稀疏矩阵中第一个数据的值为8,第I个元素(V)表示稀疏矩阵中第I个数据的值为V。

代码示例:

从scipy.sparse导入csr_matrix

将numpy作为np导入

def构造_csr(数据):

indptr=[0]

col_indeces=[]

值=[]

对于row_index,枚举中的行(数据):

行值数量=0

对于col_index,枚举(行)中的值:

value=int(value)

如果值为0:

行值数量=1

col_indeces.append(col_index)

values.append(值)

indptr . append(indptr[-1]row _ value _ num)

行编号=行索引1

col_num=len(line)

return csr_matrix((values,col_indeces,indptr),shape=(row_num,col_num))

if __name__=='__main__':

d_A=[[1,0,3],[0,5,7],[0,0,9],[2,4,0]]

s_A=csr_matrix(np.array(d_A))

s_B=构造_csr(d_A)

print(f's_A:\n{s_A}\n ',)

print(f's_B:\n{s_B}\n ',)

print(s _ a . to array()==s _ b . to array())

执行结果:

美国航空:号航班

(0, 0) 1

(0, 2) 3

(1, 1) 5

(1, 2) 7

(2, 2) 9

(3, 0) 2

(3, 1) 4

s_B:

(0, 0) 1

(0, 2) 3

(1, 1) 5

(1, 2) 7

(2, 2) 9

(3, 0) 2

(3, 1) 4

[[真实真实真实]

[真实真实真实]

[真实真实真实]

[真实真实真实]]

Link to comment
Share on other sites