2016-06-21 12 views
0

Wir wollen "Namen" alphabetically zu sortieren, während sill sicherstellen, dass die richtige Note (grraides) an den richtigen Schüler gegeben werden.Sortierung der ausgewählten Strings in Spalte der Matrix

print("List of grades are:") 
grraids=computeFinalGrade(pure_data) 
kn=np.column_stack((names,grraids)) 
for names in sorted(kn): 
    print(kn) 

enter image description here

Wir bekommen das, aber wie diese Namen sehr viel würde in alphebetical Ordnung, aber halten die Funktion Allgemeinen.

Antwort

1

Edit: Sorry, habe nicht gemerkt, dass es ein numpy Array war, Code wurde entsprechend geändert. Es nimmt jedoch immer noch an, dass der Name des Schülers immer an der gleichen Stelle ist. (Erste Stelle)

import numpy as np 
grades = np.array([["B",10],["C",8],["A",3]]) 
print grades 
grades.sort(axis=0) 
print grades 

Ausgang:

[['B' '10'] 
['C' '8'] 
['A' '3']] 
[['A' '10'] 
['B' '3'] 
['C' '8']] 
+0

Vielen Dank für das Heads-up. Habe nicht gemerkt, dass es sich um ein numpliges Array handelte. Zumindest, vorausgesetzt, np bezieht sich auf numpy – Yarnspinner

+0

Ich bekomme die Rückgabe-Eingabe TypeError: unorderable Typen: float()> str(). Wenn ich gratings.sort (axis = 1) schreibe, sortiere ich die Werte nach der kleinsten bis zur größten Note, aber wenn ich gratings.sort (axis = 0) schreibe, gibt es den Typfehler zurück. Irgendwelche Vorschläge? –

+1

Es scheint, als ob Sie Zahlen und Strings in der ersten Position der Paare (Schüler, Ergebnisse) gemischt haben. I.e. Es gibt irgendwo ein Paar, das so etwas wie "[2.0," b "]" ist. Ich würde 'print kn' versuchen, um sich zuerst die Daten anzuschauen, um sicherzustellen, dass die erste Spalte nur Namen enthält. – Yarnspinner

Verwandte Themen