Ich mag so eine numpy Array aufgeteilt haben:Setzen numpy Arrays aufgeteilt mit np.split() wieder zusammen
x = np.random.randn(10,3)
x_split = np.split(x,5)
x die gleichmäßig in fünf numpy Feldern, die jeweils mit Form spaltet (2,3) und stellt sie in einer Liste. Was ist der beste Weg, eine Teilmenge von diesen wieder zusammen zu kombinieren (z. B. x_split[:k]
und x_split[k+1:]
), so dass die resultierende Form ähnlich zu dem Original x ist, d.h. (etwas, 3)?
fand ich, dass für k> 0 ist dies möglich mit Ihnen zu tun:
np.vstack((np.vstack(x_split[:k]),np.vstack(x_split[k+1:])))
aber das funktioniert nicht, wenn k = 0 als x_split[:0] = []
so muss es ein besserer und sauberere Weg. Die Fehlermeldung, die ich erhalten, wenn k = 0 ist:
ValueError: need at least one array to concatenate
Was ist mit 'np.vstack (x_split [: k] + x_split [k + 1:])' '? –
Was ist los mit der Handhabung des 'k = 0' Fall als etwas Besonderes. Diese Art von Randbedingung testen wir die ganze Zeit. Nicht wahr? – hpaulj
@hpaulj, weil mir dieses Problem einfach genug erschien, dass ich dachte, ich müsste etwas Offensichtliches vermissen - siehe Paul Panzers Kommentar und Crazy Ivans Antwort – ru111