2017-01-25 1 views
0

Lassen Sie uns sagen, dass ich eine Matrix/Array initialisiert haben, die 400 Zeilen hat, 3 Spalten:Einfügen/Hinzufügen/Aktualisieren von Elementen in der Matrix

distances = np.zeros([400, 3], dtype=np.float64) 

Jetzt habe ich eine for-Schleife, die 1200 Objekte (float Werte zurückgibt) und ich möchte diese float-Werte auf „anhängen“ jedes Element in distances (Zeile für Zeile) oder weisen Sie auf jedes Element in der Matrix wie:

distances[0,1] = item1, 
distances[0,2] = item2, 
distances[0,3] = item3, 
distances[1,1] = item4, 
distances[1,2] = ..... 

Wie kann ich das tun? Ich versuchte numpy.append und numpy.insert, aber ich scheiterte. Irgendwelche Ideen?

+0

Sie möchten die Größe der Matrix ändern oder möchten, dass die Elemente der vorhandenen 400x3-Matrix diese Werte zugewiesen bekommen? – dawg

+0

Ich möchte diese 1200 Objekte (Float-Werte) in die 400x3 Matrix – misheekoh

Antwort

1

Sammeln Sie Elemente in einer Liste, diese Liste in NumPy Array umwandeln und neu zu gestalten:

distances = np.array([item1, item2, ... item1200], dtype=float).reshape((400, 3)) 
+0

Yep zuweisen! Das funktioniert perfekt. Vielen Dank! – misheekoh

1

Wenn Sie zufällig zugreifen möchten, können Sie es mit Aufzählungs tun können, und in Scheiben schneiden Zuordnung (Zeile für Zeile Zugang zu bekommen) :

distances = np.zeros([400, 3], dtype=np.float64) 

start=[1,2,3] 
for i,_ in enumerate(distances): 
    distances[i][:]=start 
    start=[x+1 for x in start] 
>>> distances 
[[ 1. 2. 3.] 
[ 2. 3. 4.] 
[ 3. 4. 5.] 
..., 
[ 398. 399. 400.] 
[ 399. 400. 401.] 
[ 400. 401. 402.]] 
Verwandte Themen