Seite 1 von 1

Mehrdimensioale Arrays

Verfasst: Donnerstag 7. September 2006, 11:19
von Da_Mike
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

Verfasst: Donnerstag 7. September 2006, 12:29
von CM
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

Verfasst: Donnerstag 7. September 2006, 13:06
von Da_Mike
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 :)

Verfasst: Donnerstag 7. September 2006, 13:36
von CM
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

Verfasst: Freitag 8. September 2006, 11:05
von Da_Mike
wie gehts mit numpy?

Verfasst: Freitag 8. September 2006, 12:06
von CM
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

Verfasst: Freitag 8. September 2006, 12:34
von Da_Mike
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!