Es ist am besten, Werte in einer Liste zu sammeln und die Verkettung oder Array-Erstellung am Ende einmal durchzuführen.
h = [np.zeros(4)]
for x in range(3):
x1 = some array of length of 4 returned from a previous function (3,5,6,7)
h = h.append(x1)
h = np.array(h)
# or h = np.vstack(h)
Alle concatenate/stack/array
Funktionen nimmt eine Liste von mehreren Elementen. Das Anhängen an eine Liste ist schneller als das Verketten von 2 Elementen.
======================
versuchen Lassen Sie Ihren Ansatz Schritt für Schritt:
In [189]: h=np.zeros(4)
In [190]: h
Out[190]: array([ 0., 0., 0., 0.]) # 1d array (4,) shape
In [191]: x1=np.array([3,5,6,7]) # another 1d
In [192]: h1=np.concatenate((h,x1),axis=0)
In [193]: h1
Out[193]: array([ 0., 0., 0., 0., 3., 5., 6., 7.])
In [194]: h1.shape
Out[194]: (8,) # also a 1d array, but with 8 items
In [195]: x1=np.array([6,3,6,7])
In [196]: h1=np.concatenate((h1,x1),axis=0)
In [197]: h1
Out[197]: array([ 0., 0., 0., 0., 3., 5., 6., 7., 6., 3., 6., 7.])
In diesem Fall ich m (4,) Arrays nacheinander hinzufügen, immer noch ein 1d-Array.
Wenn ich wieder ein erstellen x1
als 2d (1,4)
:
In [198]: h=np.zeros(4)
In [199]: x1=np.array([[6,3,6,7]])
In [200]: h1=np.concatenate((h,x1),axis=0)
...
ValueError: all the input arrays must have same number of dimensions
ich diese Dimension Fehler sofort.
Die Tatsache, dass Sie den Fehler in der 2. Iteration erhalten, schlägt vor, dass die erste x1
ist (4,)
, aber die zweite ist 2d.
Wenn Sie solche Dimensionsfehler haben, überprüfen Sie die Formen.
vstack
fügt Dimensionen zu den Eingängen, je nach Bedarf, so können Sie 2D-Arrays erstellen:
In [207]: h=np.zeros(4)
In [208]: x1=np.array([3,5,6,7])
In [209]: h=np.vstack((h,x1))
In [210]: h
Out[210]:
array([[ 0., 0., 0., 0.],
[ 3., 5., 6., 7.]])
In [211]: x1=np.array([6,3,6,7])
In [212]: h=np.vstack((h,x1))
In [213]: h
Out[213]:
array([[ 0., 0., 0., 0.],
[ 3., 5., 6., 7.],
[ 6., 3., 6., 7.]])
Muss es mit numpy sein? Sie können einfach tun 'list1.append (list2)' –
Ich versuchte, aber es gibt den folgenden Fehler AttributeError: 'numpy.darray' Objekt hat kein Attribut 'append' – rksh
Ich bezog sich auf Python-Listen, nicht numpy Arrays. –