2016-10-29 1 views
0

Hier ist mein aktueller Code istWie erstelle ich in Python eine Tabelle mit einer oberen Diagonale ohne die Diagonale?

import numpy as np 
with open("wine.txt","r") as f: 
    stuff=f.readlines() 
z=[] 
for hello in stuff: 
    firstbook=hello.strip().split(",") 
    x=[float(xy) for xy in firstbook] 
    z.append(x) 
u=np.array(z) 
gridList = [] 
for item in range(14): 
    row=[] 
    for nlist in u: 
     row.append(nlist[item]) 
    gridList.append(row) 
column=13 
r=[] 
while column >= 0: 
    recess=column-1 
    while recess >= 0: 
     r.append(np.corrcoef(gridList[recess],gridList[column])) 
     recess=recess - 1 
    column=column-1 
print len(r),r[90][1][0],r[0][1][0] 
print "column -->  1 2 3  4 5 6 7  8 9 10 11 12 13 14" 
print 87*"-" 
chucky=0 
while chucky<1: 
    print "column=", chucky, "|", 
    princess = 90 
    while princess >=77: 
     print round((r[princess][1][0]),2), 
     princess-=1 
    chucky+=1 

ich bin darüber debattieren, ob oder nicht auf die harte Art und Weise zu tun, eine Reihe von While-Schleifen schreiben, aber ich weiß, dass es eine viel einfachere Art und Weise diesen Code zu schreiben. Ich muss eine obere diagonale Tabelle ohne die Diagonale erstellen, es gibt insgesamt 91 Werte, die ich einfügen muss. Wie Sie sehen können, habe ich den pearson r-Wert zwischen den Datenspalten berechnet und r zugewiesen, wo ich kann Abrufen des Korrelationswerts jeder 2x2-Matrix durch einfaches Drucken von r[i][1][0] for i in range(90) für jede Matrix. Ich weiß, dass das Schreiben des Codes für eine obere diagonale Tabelle ohne die Diagonale kein Problem sein sollte, aber was ich damit zu tun habe, ist etwas Ähnliches, die erste Zeile der Tabelle sollte folgende Werte enthalten: r [90] [1] [0] r [89] [1] [0] r [87] [1] [0] r [84] [1] [0] r [80] [1] [0] usw Wie verwende ich eine Schleife, um in diese Werte zu schreiben, beginnend mit 90, die von 90 mit einem Tempo steigender positiver Ganzzahlen abnehmen?

Lassen Sie mich wissen, wenn Sie die Daten wollen mit dem Code spielen

+0

Arrays Index nimmt mit x [i, j, k] anstelle von [i] [j] ... Es ist einfacher zu lesen. Identifizieren Sie auch Formen und den Typ von Arrays. – hpaulj

+0

Schauen Sie sich die np.tri ... Familie von Funktionen an; und np.diag ... – hpaulj

+0

Danke, ich werde diese Methoden ausprobieren – user5896534

Antwort

Verwandte Themen