2016-10-06 10 views
-1

Ich habe einen Würfel der Größe N * N * N, sagen N=8. Jede Dimension des Würfels ist auf 1 diskretisiert, so dass ich Punkte (0,0,0), (0,0,1)..(N,N,N) beschriftet habe. An jedem markierten Punkt möchte ich einen zufälligen Wert zuweisen und so ein Array erzeugen, das an jedem Eckpunkt Werte speichert. Zum Beispiel val[0,0,0]=1, val[0,0,1]=1.2 val[0,1,0]=1.3, ...Wie erzeugt man das folgende dreidimensionale Array?

Wie schreibe ich einen Python-Code, um dies zu erreichen?

+3

Können Sie Bitten Sie Ihre Frage mit dem Code aktualisieren, die Sie bisher versucht haben? – Kasramvd

Antwort

1

Sie könnten Listen von Listen einfach erzeugen. Obwohl es in keinster Weise effizient ist, würde es Ihnen erlauben, auf Ihren Würfel wie val[0][0][0] zuzugreifen.

arr = [[[] for _ in range(8)] for _ in range(8)] 

arr[0][0].append(1) 
0

Für große Matrizen, siehe numpy. Das ist das Problem, dass es entworfen ist zu lösen

1

Haben Sie dies bedeuten:

import numpy as np 
n = 5 
val = np.empty((n, n, n)) # Create an 3d array full of 0's 
val[0,0,0] = 11 
val[0,0,1] = 33 
print(val[0, 0]) 
array([ 11., 33., 0., 0., 0.])