Ich versuche, ein Array (10000, 50) Größe (Ich erwähne die Größe, weil Effizienz wichtig ist) zu schaffen, und dann:Wie in absteigender Reihenfolge der Hälfte des 2D-Arrays sortieren (numpy)
- Die ersten 5000 Zeilen aufsteigend sortieren
- Die nächsten 5000 Zeilen in absteigender Reihenfolge sortieren.
Hier ist mein Code:
samples = 10 # I'm going to increase it 10000
sampleLength = 4 # I'm going to increase it 50
halfSamples = int(samples/2)
xx = numpy.multiply(10, numpy.random.random((samples, sampleLength)))
xx[0:halfSamples,0:sampleLength]=numpy.sort(xx[0:halfSamples,0:sampleLength],axis=1)
xx[halfSamples:samples,0:sampleLength]=numpy.sort(xx[halfSamples:samples,0:sampleLength],axis=1)
Dies aufsteigend sowohl Hälfte des Feldes sortiert wird, ist das einzige, was ich finden kann nicht, welche Parameter in meiner letzten Zeile zu geben, es zu machen, in eine absteigende Reihenfolge.
Ich habe versucht, auf diesen Link basiert: Reverse sort a 2d numpy array in python
xx[halfSamples:samples,0:sampleLength]=numpy.sort(xx[halfSamples:samples,0:sampleLength:-1],axis=1)
bekam aber einen Fehler:
ValueError: could not broadcast input array from shape (5,0) into shape (5,4)
Dank
Anhang '[:, :: - 1]' am Ende der letzten Zeile anhängen? – Divakar