2017-10-28 1 views
-1

Ich habe ein schmackhaftes, leeres Array genannt fajita:Einfügen von Werten in ein np.empty-Array, wie ersetzt man?

fajita = np.empty(2) 
array([ 2.00000000e+00, 1.72723382e-77]) 

Wenn ich:

np.insert(fajita,0,[2,2]) 

ich:

array([ 2.00000000e+00, 2.00000000e+00, 2.00000000e+00, 1.72723382e-77]) 

Das hier Problem ist, dass ich will nur die 2 Werte, die ich eingefügt habe, ich möchte nicht die vorherigen Werte aus dem leeren Array beibehalten. Die erwartete Ausgabe sollte ein Array mit nur zwei Werten sein, die eingefügt wurden. Etwas wie:

array([ 2.00000000e+00, 2.00000000e+00]) 
+0

Ich denke das leere ist was ich will, gibt es eine Alternative zum Einfügen? –

+0

Ich habe versucht, dass eine –

+0

immer noch nicht funktioniert, ich bekomme die Werte, die ich will aber ein Bündel von 0 am Ende –

Antwort

4

Eine Möglichkeit, es zu tun mit empty und in Scheiben schneiden Einstellung:

import numpy as np 
fajita = np.empty(2) 
fajita[:] = [2, 2] 

Noch ein anderer Weg, es zu tun mit fill:

fajita = np.empty(2) 
fajita.fill(2) 

Eine andere Lösung wäre, die Anordnung direkt mit den Werten erstellen Sie wollen (ich denke, das ist das, was Sie tun sollten, und das ist einer der Gründe, warum ich Ihre Frage nicht auf den ersten verstanden haben):

fajita = np.array([2,2]) 
1

this helps

# When you want to replace your empty array/matrix 
fajita = [2.00000000e+00, 2.00000000e+00] 
0

Oder:

arr = np.empty(0) # you want it to contain 0 elements 
np.insert(arr, 0, [2,2]) 
+0

Ich wollte ein "pre-sized" Array der Daten, die ich hatte –

+0

Dann sollten Sie nie Verwenden Sie 'insert', um die Größe von Arrays zu ändern. – Eric

+0

Okay, also meine Frage ist, was sollte ich stattdessen verwenden? –

Verwandte Themen