Alle Funktionen außer in Python sind geschrieben np.concatenate. Mit einer IPython-Shell verwenden Sie einfach ??.
Wenn nicht, hier eine Zusammenfassung ihres Codes:
vstack
concatenate([atleast_2d(_m) for _m in tup], 0)
i.e. turn all inputs in to 2d (or more) and concatenate on first
hstack
concatenate([atleast_1d(_m) for _m in tup], axis=<0 or 1>)
colstack
transform arrays with (if needed)
array(arr, copy=False, subok=True, ndmin=2).T
append
concatenate((asarray(arr), values), axis=axis)
Mit anderen Worten, alle arbeiten, indem sie die Abmessungen der Eingabearrays anpassen und dann auf der rechten Achse verketten. Sie sind nur Komfortfunktionen.
Und neuer np.stack:
arrays = [asanyarray(arr) for arr in arrays]
shapes = set(arr.shape for arr in arrays)
result_ndim = arrays[0].ndim + 1
axis = normalize_axis_index(axis, result_ndim)
sl = (slice(None),) * axis + (_nx.newaxis,)
expanded_arrays = [arr[sl] for arr in arrays]
concatenate(expanded_arrays, axis=axis, out=out)
Das heißt, es erweitert die Abmessungen aller Eingänge (ein bisschen wie np.expand_dims) und verkettet dann. Mit axis=0ist der Effekt der gleiche wie np.array.
hstack Dokumentation fügt jetzt hinzu:
Die Funktionen concatenate, stackund
blockbieten allgemeinere Stapel- und Verkettung Operationen.
np.blockist auch neu. Tatsächlich verkettet es rekursiv entlang der verschachtelten Listen.