python提取特徵 鍵值對關係到關聯矩陣

2021-08-28 14:17:36 字數 1530 閱讀 8298

首先是待處理資料

test = pd.read_csv('../test_pairs.csv')

test.head(10)

輸出: 

pairid	firstid	secondid

0 0 1427 8053

1 1 17044 7681

2 2 19237 20966

3 3 8005 20765

4 4 16837 599

5 5 3657 12504

6 6 2836 7582

7 7 6136 6111

8 8 23295 9817

9 9 6621 7672

可以看到有firstid和secondid, 如果我們想把這兩列id的對應關係對映到稀疏矩陣,我們可以用矩陣的行列i,j表示id值,而(i,j)==1表示存在對應關係

1、非對稱稀疏關聯矩陣,即有方向的對映關係,**如下:

import scipy

inc_mat = scipy.sparse.coo_matrix((np.ones_like(test.firstid), (test.firstid, test.secondid))).power(0)

scipy.sparse.coo_matrix的引數(np.ones_like(test.firstid), (test.firstid, test.secondid))分為兩部分

第一部分是要在稀疏矩陣對應位置插入的值,這裡生成乙個全1串,使矩陣只有0和1。

第二部分第一部分值所在的位置,即(i[:], j[:])

至於最後的power(0),是對矩陣做了乙個element-wise的0次方處理,進一步保證矩陣只有0和1。

小規模資料測試

inc_mat = scipy.sparse.coo_matrix(([1,2], ([2,4],[1,3])))

inc_mat = inc_mat.power(0)

print(inc_mat.toarray())

生成的稀疏矩陣效果如下:

[[0 0 0 0]

[0 0 0 0]

[0 1 0 0]

[0 0 0 0]

[0 0 0 1]]

2、對稱稀疏關聯矩陣,即無方向的對映關係,**如下:

import pandas as pd

import scipy

fcs = pd.concat([test.firstid, test.secondid])

scf = pd.concat([test.secondid, test.firstid])

inc_mat = scipy.sparse.coo_matrix((np.ones_like(fcs), (fcs, scf))).power(0)

其實就是先把兩列做乙個鏈結,然後再對映為稀疏矩陣。

python時域訊號特徵提取

def psfeaturetime data 均值df mean data.mean df var data.var df std data.std 均方根 df rms np.sqrt pow df mean,2 pow df std,2 峰峰值 fengfengzhi max data min ...

Python遍歷字典中的鍵值對

python為字典型別提供了items 方法,items 方法會將字典裡的所有的鍵與值一起返回。例如,餐館有乙個選單包含了菜名和 資訊。菜名和 顧客都需要知道,可以通過遍歷輸出menu字典的鍵和值來實現。coding utf 8 建立並初始化menu選單字典 menu 利用items 方法遍歷輸出鍵...

python字典鍵值對的新增和遍歷

dic dic name zhangsan dic key age value 30 dic key value dic 這裡可以看到字典中的資料並不是按先後順序排列的,如果有興趣,可以搜一搜資料結構中的 雜湊表 2019 02 22更新開始 從python3.7開始,字典按照插入順序,實現了有序。...