Seite 1 von 1

Ausgabe der der Datei ändern

Verfasst: Dienstag 21. Oktober 2008, 18:32
von redbomberle
Hallo zusammen, ich bin neu hier und habe gleich mal eine Frage an euch:

Ich habe hier folgendes Python Programm welches mir verschiedene Zufallszahlen ausgibt:

Code: Alles auswählen

import mdp
import sys

#mdp.numx_rand.seed(1266090063)
mdp.numx_rand.seed(None)

def uniform(min_, max_, dims):
	"""Return a random number between min_ and max_ ."""
	return mdp.numx_rand.random(dims)*(max_-min_)+min_
	
def circumference_distr(center, radius, n):
	"""Return n random points uniformly distributed on a circumference."""
	phi = uniform(0, 2*mdp.numx.pi, (n,1))
	x = radius*mdp.numx.cos(phi)+center[0]
	y = radius*mdp.numx.sin(phi)+center[1]
	return mdp.numx.concatenate((x,y), axis=1)
	

def circle_distr(center, radius, n):
	"""Return n random points uniformly distributed on a circle."""
	phi = uniform(0, 2*mdp.numx.pi, (n,1))
	sqrt_r = mdp.numx.sqrt(uniform(0, radius*radius, (n,1)))
	x = sqrt_r*mdp.numx.cos(phi)+center[0]
	y = sqrt_r*mdp.numx.sin(phi)+center[1]
	return mdp.numx.concatenate((x,y), axis=1)


def rectangle_distr(center, w, h, n):
	"""Return n random points uniformly distributed on a rectangle."""
	x = uniform(-w/2., w/2., (n,1))+center[0]
	y = uniform(-h/2., h/2., (n,1))+center[1]
	return mdp.numx.concatenate((x,y), axis=1)






def node_belongs_to_cluster(node):
	n_clusters = len(gng.graph.connected_components())
	for clus in range(0, n_clusters, 1):
		gnode = gng.graph.connected_components()[clus]
		n_cluster_members = len(gnode)
		for j in range(0, n_cluster_members, 1):
			if gnode[j] is node:
				return clus
	return -1
		
		
		
		
		
def get_str(x):
	st=""
	for i in range(0, len(x), 1):
		st = "%s %f" % (st, x[i])
	return st


N = 50
cf1 = circumference_distr([16,-0.5], 2, N)
cf2 = circumference_distr([3,-2], 0.3, N)
cl1 = circle_distr([-5,3], 0.5, N/2)
cl2 = circle_distr([3.5,2.5], 0.7, N)
r1 = rectangle_distr([-1.5,0], 1, 4, N)
r2 = rectangle_distr([+1.5,0], 1, 4, N)
r3 = rectangle_distr([0,+1.5], 2, 1, N/2)
r4 = rectangle_distr([0,-1.5], 2, 1, N/2)
x = mdp.numx.concatenate([cf1, cf2, cl1, cl2, r1,r2,r3,r4], axis=0)
x = mdp.numx.take(x,mdp.numx_rand.permutation(x.shape[0]), axis=0)
print x
exit()


Dieser Code gibt mir folgendes aus:

[ 1.75671351e+00 1.29173403e+00]
[ 3.14788920e+00 -1.73898509e+00]
[ -1.95571088e+00 -9.23473588e-01]
[ -6.20502733e-01 -1.50751907e+00]
[ -5.02186499e+00 3.26380875e+00]
[ 1.61860006e+00 1.22023659e+00]
usw.


Wie kann ich mir bitte nur die Zahlen ausgeben lassen, also ohne die [ und ] Klammern?
Ich werde da aus dem Code nicht schlau, wo diese Klammern denn gesetzt werden.

Verfasst: Dienstag 21. Oktober 2008, 19:04
von Leonidas
Hallo redbomberle, willkommen im Forum,

du bekommst da eine einelementige Liste raus, also musst du via [0] auf den ersten Eintrag der Liste zugreifen.

Verfasst: Dienstag 21. Oktober 2008, 19:16
von BlackJack
Die Lösung wird wahrscheinlich die selbe sein, aber es sind keine Listen, sondern wahrscheinlich eher so etwas wie Matrix- oder Array-Objekte. An der Stelle wäre es hilfreich zu wissen was `mdp` für ein Modul/Paket ist!?

Verfasst: Dienstag 21. Oktober 2008, 19:46
von redbomberle
also die Daten kommen wie folgt heraus:

[ [zahlx zahly] [zahlx zahly]...[zahlx zahly] ]

Dabei handelt es sich um Punkte in einem 2Dimensionalem Raum. mdp ist ein Modular toolkit for Data Processing.

Ich möchte nun die Daten von dem File einlesen, aber dazu möchte ich die Klammern weg haben.

Ist in dem Code x mein "Array" in dem sich die Werte befinden?
Soll ich dann auf diesen mit x[0],x[1]... zugreifen?

Verfasst: Dienstag 21. Oktober 2008, 20:00
von Hyperion
Versuch macht kluch ;-) Leonidas hatte Dir das doch schon geschrieben!

Verfasst: Mittwoch 22. Oktober 2008, 07:55
von BlackJack
Neben herum probieren kann man auch mal die Dokumentation lesen. So wie's aussieht sind das `numpy`-Arrays und da gibt's auch Funktionen/Methoden Werte in Dateien zu schreiben und auch wieder ein zu lesen.