Hinzufügen von Elementen zum dreidimensionalen Array in Python

7

Ich versuche, Daten in einem dreidimensionalen Array zu speichern, d. h. x [0] [0] [0] in Python. wie man x initialisiert. und füge Werte hinzu. Ich habe das versucht.

%Vor%

Beide Linien geben einen Bereichsfehler aus. wie es geht. Ich will es mögen. x [0] [0] [0] = Wert1, x [1] [0] [0] = Wert2, x [0] [1] [0] = Wert3 usw. wie dies in Python zu erreichen ist.

Ich möchte diese Art von Array erstellen

%Vor%

usw.

    
lokesh 16.03.2013, 11:19
quelle

6 Antworten

16

Ich empfehle die Verwendung von numpy für mehrdimensionale Arrays. Es macht es viel bequemer und viel schneller. Das würde aussehen wie

%Vor%

Wenn Sie numpy nicht verwenden möchten oder nicht rechteckige mehrdimensionale Arrays benötigen, müssen Sie sie dennoch als Liste von Listen behandeln und jede Liste initialisieren:

%Vor%

Edit: Oder Sie könnten die kompakte Notation verwenden, die in ndpus Antwort (x = [[[value1]]]) angezeigt wird.

    
amaurea 16.03.2013, 11:24
quelle
5

Wenn Sie ein 3D-Sparse-Array erstellen, können Sie alle Daten in einem Diktat speichern:

%Vor%

oder:

%Vor%     
HYRY 16.03.2013 12:37
quelle
3

Wenn Sie numpy verwenden können, können Sie ein Array fester Größe wie folgt initialisieren:

%Vor%

wobei i, j und k die erforderlichen Dimensionen sind.

Sie können dann mit der Slice-Notation in dieses Array indizieren:

%Vor%     
Andrew Walker 16.03.2013 11:22
quelle
2
%Vor%     
ndpu 16.03.2013 11:27
quelle
0

Eine Zusammenstellung der obigen Techniken in Bezug auf die effektive Erstellung eines zweidimensionalen dict ist:

%Vor%

Produziert:

%Vor%

Um die Anzahl der Dimensionen zu erhöhen (z. B. auf drei Dimensionen), erhöhen Sie einfach das Lambda-Nest, wie HYRY zeigt:

%Vor%     
user2099484 16.12.2016 10:18
quelle
0

Interoperator. Ich benutze die Funktion Lambda für create matrix mit [[0 für j im Bereich (n)] für i im Bereich (m)] in Python 3. In der Version 2 funktioniert eine Map. In diesem Moment denke ich, verwenden Sie Array-Modul (Python), um Matrizen zu erstellen.

%Vor%     
quelle