2016-04-05 6 views
-2

Ich bin neu bei Python und arbeite derzeit an einem Projekt, bei dem eine Indoor-Umgebung abgebildet wird. Ich hoffe, eine Funktion zu erstellen, die in sensorischen Daten nehmen und es in eine einfache Karte wie folgt drehen:So wandeln Sie ein 2D-Array in Raster

maps = [------------------------------------------------------------------ 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                |                 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |                | 
     |-----------------------------------------------------------------] 

Wie dann würde ich mich über dieses Array in ein beschrifteten Raster-basierten System zu ändern, wo die linken oberen Gitter wäre A-1 und das untere rechte Gitter E-5?

+2

Was genau über Sie fragen? Wie man es beschriftet? Wie sehen die Daten eigentlich aus? Liste der Zeichenfolgen? Liste von Listen von etwas? – glibdud

+0

Ich frage, ob es eine Methode oder Funktion gibt, die das erreicht, wonach ich frage. Die Daten sind eine Array-Map wie die obige, die aus Strings besteht, um die in der Umgebung gefundenen Objekte zu bezeichnen. Wie verwandle ich dieses Array in ein gitterbasiertes System wie das von mir beschriebene? – user4357505

+0

Was ist eine "Array-Map" in Python-Begriffen? Verwenden Sie ein Drittanbieter-Modul? Es wäre hilfreich, den obigen gültigen Python-Code zu bearbeiten, der Beispieldaten generiert. – glibdud

Antwort

1

Vielleicht kann ich vorschlagen pandas, die Ihnen helfen, sich auf die Strategie zu konzentrieren.

Ein generisches willkürliches Beispiel:

themap=pd.DataFrame(take(list(' xo'),randint(0,5,(10,10))),\ 
arange(10)+1,list('ABCDEFGHIJ')) 

In [268]: themap 
Out[268]: 
    A B C D E F G H I J 
1   x o     x 
2  o  o x x x  
3 x  x o   o 
4    o   x 
5 o o x o o   x 
6 o o  x     o 
7 o  x   x  o 
8    o o  o  
9 x  x  o   o x 
10 o x   x  x o 
+0

zu generieren. Ist es möglich, diese Methode zu verwenden und statt zu haben Haben die 'x' den Teil der Karte, auf den sich dieses Gitter bezieht? Also A1 ist die obere linke Hand der Karte? – user4357505

+0

Natürlich. Was meinen Sie mit * dem Teil der Karte, auf den sich dieses Gitter bezieht *? –

+0

Damit A1 die obere linke Seite des Arrays anzeigt, ist E5 die untere rechte Seite und der Rest sind die Zwischenwerte. Es tut mir leid, ich bin mir nicht sicher, wie ich das sonst noch sagen soll. – user4357505

Verwandte Themen