2017-11-17 8 views
1

相関テーブルに最大数のすべての重複を削除し、テーブルのサンプルはここに掲載されていますは、私は相関テーブルの.CSVを取るためのコードが必要

 AA bb cc dd ff 
AA 100 87 71 71 78 
bb 87 100 73 74 81 
cc 71 73 100 96 69 
dd 71 74 96 100 71 
ee 78 81 69 100 100 
ff 72 73 68 68 71 
Pg 68 69 62 62 64 
Ph 68 69 69 62 64 
Pi 68 69 62 62 64 
Pj 68 69 63 63 64 
Pk 70 71 65 65 67 

私は現在で.csvファイルを読みましたpythonの.csvモジュールをリストのリストとして使用します。私は最初の列と行を削除しました。そして、これらのint値を取って、各行の最大値を見つけようとしています。 1つの行に複数の最大値がある場合は、それらの値も必要です。

は、その後、私はテーブル

file1values col row % 
group1  AA AA 100 
... 
group1  dd ee 100 
group1  ff ee 100 

問題私がこれまで行ごとに最大値を取得しているにその出力を配置する予定。また、各最大値のアドレス(colとrow)を取得する方法について少し混乱すると思います。

がゼロに斜めの設定(または設定テスト

> import numpy as np 
> m=np.random.randint(100,size=(10,10)) 

ための乱数行列を作成...

from io import StringIO 
import csv 
import numpy as np 


with open('/home/group1.csv', newline='') as csvfile: 
    reader = csv.reader(csvfile) 
    data_as_list = list(reader) 

    a = np.array(data_as_list) 

    a = np.delete(a, (0), axis=0) 

    a = np.delete(a, (0), axis=1) 

    np.set_printoptions(threshold=np.nan) 
    print (a) 
    print ('') 

    count = 0 
    b = (a.astype(int)) 

    maxArr = [] 
    while (count < b.shape[0]): 
     print (b[count]) 
     count = count + 1 
     maxArr.append(max(b[count - 1])) 
    print (maxArr) 

答えて

0

は、簡単な方法があります。ここでは

は、これまでのコードです範囲外の負の数)

> np.fill_diagonal(m,0) 

array([[ 0, 35, 52, 40, 54, 1, 20, 41, 62, 92], 
     [45, 0, 75, 71, 85, 86, 83, 39, 52, 69], 
     [29, 21, 0, 78, 32, 14, 13, 27, 31, 26], 
     [99, 90, 16, 0, 28, 36, 30, 45, 85, 41], 
     [29, 21, 48, 31, 0, 86, 18, 7, 70, 76], 
     [96, 97, 34, 82, 51, 0, 69, 22, 27, 85], 
     [71, 58, 98, 42, 3, 51, 0, 19, 41, 93], 
     [54, 97, 86, 75, 62, 91, 78, 0, 55, 89], 
     [87, 44, 44, 54, 94, 94, 57, 24, 0, 81], 
     [94, 32, 1, 92, 34, 46, 96, 38, 75, 0]]) 
(あなたの行列が対称であるため、関係ありません)0

> cm=np.argmax(m,1) 

array([9, 5, 3, 0, 5, 1, 2, 1, 4, 6]) 

を列/行あたりの最大値を見つけるあなたは、ラベルに行/列インデックスをマッピングする必要があります。

> for r in range(10): 
     print(r,cm[r],m[r,cm[r]]) 

0 9 92 
1 5 86 
2 3 78 
3 0 99 
4 5 86 
5 1 97 
6 2 98 
7 1 97 
8 4 94 
9 6 96 
関連する問題