[Numpy-discussion] behaviour of np.loadtxt
Derek Homeier
derek@astro.physik.uni-goettingen...
Wed Sep 14 10:45:55 CDT 2011
On Wed, 14 Sep 2011, Davide wrote:
> Dear list,
>
> I'm encountering a problem with np.loadtxt.
>
> Suppose i have a file containing three columns of data (and 10 rows), like:
>
> 0.001 0.003 0.005
> 0.001 0.003 0.006
> 0.002 0.004 0.002
> 0.004 0.002 0.007
> 0.001 0.003 0.006
> 0.002 0.004 0.002
> 0.004 0.002 0.007
> 0.001 0.003 0.006
> 0.002 0.004 0.002
> 0.004 0.002 0.007
>
> If i give:
>
> len ( np.loadtxt( filename, unpack=True ) )
>
> i get 3, since i have a three rows array. That's fine.
>
> If instead the file has a single column, i.e.,
>
> 0.004
> 0.002
> 0.007
> 0.004
> 0.002
> 0.007
> 0.004
> 0.002
> 0.007
> 0.004
>
> the command
>
> len ( np.loadtxt( filename, unpack=True ) )
>
> returns 10, where i would expect it to return 1, to be consistent with
> the behaviour when there are multiple columns.
>
> Is there a reason for why it is not like that?
Yes, the default for loadtxt is to automatically "squeeze" the output to the
minimum no. of dimensions required, thus it returns a 1D-array in the latter
case. If you are using numpy 1.6 or later, you can ensure to get a consistent
shape by passing the "ndmin=2" option.
Cheers,
Derek
--
----------------------------------------------------------------
Derek Homeier Centre de Recherche Astrophysique de Lyon
ENS Lyon 46, Allée d'Italie
69364 Lyon Cedex 07, France +33 1133 47272-8894
----------------------------------------------------------------
More information about the NumPy-Discussion
mailing list