Also, den Code
arr = np.array([
[np.array([1,2,3]), np.array([1,0])],
[np.array([4,5,6]), np.array([0,1])]
])
Erzeugt Ein Objekt-Array, das die erste Spalte indexiert, gibt Ihnen zwei Zeilen mit jeweils einem Objekt zurück, das die Größe berücksichtigt. Zu bekommen, was Sie wollen, Sie brauchen würde, es in etwas zu wickeln wie
np.vstack(arr[:, 0])
die ein Array aus den Objekten in der ersten Spalte erzeugt. Das ist nicht sehr praktisch, wäre es mehr Sinn für mich diese in einem Wörterbuch zu speichern, so etwas wie
io = {'in': np.array([[1,2,3],[4,5,6]]),
'out':np.array([[1,0], [0,1]])
}
Ein strukturiertes Array gibt Ihnen ein bisschen von beidem. Schaffung ist ein bisschen schwierig, für das Beispiel gegeben,
arr = np.array([
(1,2,3), (1,0)),
((4,5,6), (0,1)) ],
dtype=[('in', '3int64'), ('out', '2float64')])
Erzeugt ein strukturiertes Array mit Feldern in
und out
, bestehend aus 3 ganzen Zahlen sind und jeweils 2 schwimmt. Zeilen können wie gewohnt zugegriffen werden,
In[73]: arr[0]
Out[74]: ([1, 2, 3], [ 1., 0.])
Oder durch den Feldnamen
In [73]: arr['in']
Out[73]:
array([[1, 2, 3],
[4, 5, 6]])
Das numpy Handbuch viele weitere Details hat (https://docs.scipy.org/doc/numpy-1.13.0/user/basics.rec.html). Ich kann keine Details hinzufügen, da ich sie seit einiger Zeit in einem Projekt verwenden möchte, aber nicht.
Ich denke, es ist eine schlechte Idee, die Zeilenlänge nicht übereinstimmen. Was ist dein Anwendungsfall? – nos
Einfaches neuronales Netzwerk. Die erste Spalte repräsentiert Eingabemerkmale. Die zweite Spalte repräsentiert die Ausgangswahrscheinlichkeiten. – coolscitist