Anfängerproblem: MultiArray

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hallo

ich will ein MultiArray anlegen und auslesen und scheitere schon :evil:

Das hab ich gemacht:

import numpy as np

data = np.array([ [0.00, 1.97, 0.03, 0.00, 0.20, 0.00],
[0.00, 0.00, 1.37, 0.93, 0.04, 0.10],
[0.93, 0.88, 0.07, 1.90, 0.03, 0.00] ])

Auslesen dann über:

value = data [row] [col] , also zBsp: value = data [1] [2]

Bekomme aber die Meldung:
Die List Indizes müssen Int sein und keine Tupel.

Was übersehe ich?

Danke

lg
codergirl
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

CoderGirl hat geschrieben:Bekomme aber die Meldung:
Die List Indizes müssen Int sein und keine Tupel.
Dass da eine deutsche Fehlermeldung rauskommt, entspricht nicht dem Numpy-Verhalten und auch nicht einem Standard-Python. Da sollte normalerweise etwas auf Englisch stehen. Welche Umgebung verwendest du zum Programmieren? Sehr gut möglich, dass das Problem dort liegt. Denn wenn der gezeigte Quelltext tatsächlich deinem "echten" Code entspricht, dann sieht das erstmal korrekt aus und sollte zu keinem Fehler führen.
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hallo

Ich ruf es aus eine GIS-Umgebung auf:
"list indices must be integers" ist die Meldung
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

CoderGirl hat geschrieben:Hallo

Ich ruf es aus eine GIS-Umgebung auf:
"list indices must be integers" ist die Meldung
Irgendwas stimmt dann vielleicht mit deiner GIS Umgebung nicht; der Python-Interpreter selbst, führt das wie snafu schon sagte tadellos aus:

Code: Alles auswählen

In [1]: import numpy as np

In [2]: data = np.array([ [0.00, 1.97, 0.03, 0.00, 0.20, 0.00],
   ...: [0.00, 0.00, 1.37, 0.93, 0.04, 0.10],
   ...: [0.93, 0.88, 0.07, 1.90, 0.03, 0.00] ])

In [3]: data[1][2]
Out[6]: 1.3700000000000001
Liest du die Werte als Literale ein, oder sind es Namen? Sollte letzteres der Fall sein, kann du dir ja mal mit 'type' ausgeben lassen, ob es sich tatsächlich um einen Integer handelt, den du da als Index übergibst.
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hi

liegt wohl an der Umgebung.
Dann muss es irgendwie anders lösen. Findet sich auch
ein Weg :-)

Danke euch für die Hilfe :D

codergirl
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@CoderGirl: Wenn es wirklich an der Umgebung liegt, würde ich jetzt ernsthaft beginnen mir Gedanken zu machen, ob diese Umgebung praxistauglich und verlässlich ist. Vielleicht möchtest Du auch Deinen Code posten, der zu Problemen führt; eventuell befindet sich ja doch ein Fehler darin.
Benutzeravatar
CoderGirl
User
Beiträge: 74
Registriert: Samstag 22. April 2017, 17:47

Hallo

nee, ich habe es gefunden. Es war ein Zeichen seltsamerweise
als String und nich int.

Ich habe es peu a peu neu aufgebaut und es läuft

1000Danke euch allen :)

lg

cg
Nur ein Mädchen, das nie so viel weiss, wie die Jungs :ugeek:
Antworten