TG wrote: > Hi there ! > > I'm just starting to use Numeric here, and I'm wondering : how can I > efficiently initialize every values of a N-dimensional array, given I > don't know the number of dimensions ? > > I'm looking for something like a map function, or a way to conveniently > iterate through the whole N-array, but I didn't find anything ... yet. > If anyone has a clue, I'm listening.
Since you're just starting, you should know that Numeric is no longer being developed. The actively developed version is numpy: http://www.scipy.org/NumPy You will want to ask numpy questions on the numpy-discussion mailing list. The answers one gets here tend to be hit or miss. https://lists.sourceforge.net/lists/listinfo/numpy-discussion As to your actual question, I'm not entirely sure what you are asking for, but you should look at the .flat attribute. In [5]: from numpy import * In [6]: a = empty((2, 3)) In [7]: a.flat[:] = 10 In [8]: a Out[8]: array([[10, 10, 10], [10, 10, 10]]) # Note, in numpy, .flat is not a real array although it should be usable in most # places that need an array. However, unlike Numeric, it can always be used # even if the array is not contiguous. If you need a real array, use the # .ravel() method, but know that it will make a copy if the array is not # contiguous (for example, if it is the result of a .transpose() call). In [9]: a.flat Out[9]: <numpy.flatiter object at 0x196a800> In [10]: a.flat = arange(10) In [11]: a Out[11]: array([[0, 1, 2], [3, 4, 5]]) In [12]: for i in a.flat: ....: print i ....: ....: 0 1 2 3 4 5 -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco -- http://mail.python.org/mailman/listinfo/python-list