Mehrdimensioale Arrays

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
Da_Mike
User
Beiträge: 4
Registriert: Donnerstag 7. September 2006, 11:07

hallo,
bin neu in python und habe folgendes problem. ich möchte ein mehrdimensionales array in python erstellen (mindestens 2 dimensional). ich möchte strings darin speichern. ich möchte keine listen verwenden sondern bewusst arrays, da es mit listen probleme bei der übergabe von objekten an R (mathematisch orientierte programmiersprache) probleme gibt (werden nicht automatisch als zweidimensional erkannt). für zahlen funktioniert das ganze ohne probleme mit hilfe von numeric arrays. nur kann ich in numeric arrays halt keine strings stecken. vielleicht gibts ja auch n modul für strings oder objekte allgemein.
danke schon mal
mike
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,
nur kann ich in numeric arrays halt keine strings stecken
Doch, das geht. Folgendes bereitet mir keine Probleme:

Code: Alles auswählen

>>> from Numeric import *
>>> l = ['a']
>>> x = array(l)
Mehrdimensional funktioniert genauso wie mit anderen arrays in Numeric - manchmal leichter mit dem Umweg über eine Liste, so wie oben gezeigt.

Davon ab: Kennst Du RPy? Falls nicht kann Dir das auch bei der Interaktion von Python und R weiterhelfen.

Gruß,
Christian
Da_Mike
User
Beiträge: 4
Registriert: Donnerstag 7. September 2006, 11:07

rpy kenn ich. damit arbeite ich auch. bin wie gesagt neu in python und bring noch viel durcheinander. der code funktioniert. nur krieg ichs immer noch net hin das array jetzt zu füllen. sagen wir ich will einfach mal eine liste [["Aa","aA"],["Bb","bB"]] in ein zweidimensionales array überführen. damit wär ich fürs erste schon glücklich :)
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Oh, shit. Entschuldige, da ist mir ein blöder Fehler unterlaufen: Einen einzelnen Character schluckt meine Numeric-Version zwar, aber auch nicht mehr. numpy schon, aber RPy ist noch nicht umgestellt ... Tja, so kam mein Fehler zu stande, aber das hilft Dir nicht weiter.

Vielleicht magst Du Deine Frage nochmal auf der RPy-Mailingliste stellen (link ist auf der RPy-Homepage)? Vielleicht kennt man dort einen Weg um das Problem herum.

Gruß,
Christian
Da_Mike
User
Beiträge: 4
Registriert: Donnerstag 7. September 2006, 11:07

wie gehts mit numpy?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hoi,

na so wie für Numeric oben gezeigt. Aber hier noch mal copy&paste vom Schirm, damit es diesmal auch stimmt

Code: Alles auswählen

>>> from numpy import array
>>> sl = [['hall','o'],['Du','da']]
>>> a = array(sl)
>>> a
array([[hall, o],
       [Du, da]], dtype=(string,4))
Habe gerade erst gelesen, daß RPy doch mit numpy kompatibel sein soll. (Ich selber nutze es nicht und bin deshalb nicht auf dem Laufenden.) Aber dann ist das README doch etwas irreführend.

Gruß,
Christian
Da_Mike
User
Beiträge: 4
Registriert: Donnerstag 7. September 2006, 11:07

habs jetzt grade eben auch für numeric hingekriegt.

Code: Alles auswählen

from Numeric import *

list = [["aa","bb","cc"],["aa","bb","cc"],["aa","bb","cc"]]
feld = array(list, PyObject)
den typ PyObject (oder wie man das in dem fall nennt) hab ich grad erst gefunden. eigenartigerweise im pdf zu numpy und nicht zu numeric... und schon funktionierts. werd mir aber auch numpy etz dann mal genauer anschauen. auf jeden fall vielen dank!
Antworten