Numeric array and for loops problem
Terry Reedy
tjreedy at udel.edu
Mon Jan 6 13:45:06 EST 2003
"Stan" <dragonscraft at yahoo.it> wrote in message
news:c5598079.0301060856.4012672b at posting.google.com...
> Hi all
> I've made the following pice of code
[Note: if you want people with certain news readers to easily read
your code,
use spaces instead of tabs.]
> try:
> f = open(os.path.join("xxx", fname))
> except IOError:
> print "no such a file"
> else:
> lines = f.readlines()
> worldy = len(lines)
> worldx = len(lines[0])/2
> worldarray = Numeric.zeros((worldy,worldx))
Should you use wx,wy to match x,y below?
> y = -1 #***because arrays starts at 0***
If you increment x and y after you use them, you can start with 0
> for line in lines:
> y += 1
> vals = split(line)
> x = -1 #***same as y***
> for val in vals:
> x += 1
> worldarray[x,y] = val
> f.close()
>
> It should read some strings from a file and insert their value into
> worldarray
> The file is so strocturated:
> Some string of numbers (all same lenght) all separated by
whitespace.
> But python give me this message error!!! I really can't understand
> where's the matter? It's not possible such an assignment?
> worldarray[x,y] = val
> ValueError: array too large for destination
You initialized worldarray as an array of floats. Perhaps you want
worldarray[x,y] = float(val)
Terry J. Reedy
More information about the Python-list
mailing list