diff options
author | Ralf Gommers <ralf.gommers@googlemail.com> | 2011-04-03 12:33:07 +0200 |
---|---|---|
committer | Ralf Gommers <ralf.gommers@googlemail.com> | 2011-04-03 13:02:14 +0200 |
commit | a311969ea2f47b486da14da99a26e72c12a0c20f (patch) | |
tree | f42c8786574e6f1929724cb6d541d41f9a5fafb3 /numpy/lib/npyio.py | |
parent | e340e665adba35a5aba7fac09e28ac1f2e4d949b (diff) | |
download | numpy-a311969ea2f47b486da14da99a26e72c12a0c20f.tar.gz |
ENH: add ndmin keyword to loadtxt. Closes #1562.
Thanks to Paul Anton Letnes and Derek Homeier.
Diffstat (limited to 'numpy/lib/npyio.py')
-rw-r--r-- | numpy/lib/npyio.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/numpy/lib/npyio.py b/numpy/lib/npyio.py index 25737cbbe..d891c6be1 100644 --- a/numpy/lib/npyio.py +++ b/numpy/lib/npyio.py @@ -583,7 +583,8 @@ def _getconv(dtype): def loadtxt(fname, dtype=float, comments='#', delimiter=None, - converters=None, skiprows=0, usecols=None, unpack=False): + converters=None, skiprows=0, usecols=None, unpack=False, + ndmin=0): """ Load data from a text file. @@ -621,6 +622,9 @@ def loadtxt(fname, dtype=float, comments='#', delimiter=None, If True, the returned array is transposed, so that arguments may be unpacked using ``x, y, z = loadtxt(...)``. When used with a record data-type, arrays are returned for each field. Default is False. + ndmin : int, optional + The returned array must have at least `ndmin` dimensions. + Legal values: 0 (default), 1 or 2. Returns ------- @@ -799,7 +803,20 @@ def loadtxt(fname, dtype=float, comments='#', delimiter=None, X = np.array(X, dtype) - X = np.squeeze(X) + # Verify that the array has at least dimensions `ndmin`. + # Check correctness of the values of `ndmin` + if not ndmin in [0, 1, 2]: + raise ValueError('Illegal value of ndmin keyword: %s' % ndmin) + # Tweak the size and shape of the arrays + if X.ndim > ndmin: + X = np.squeeze(X) + # Has to be in this order for the odd case ndmin=1, X.squeeze().ndim=0 + if X.ndim < ndmin: + if ndmin == 1: + X.shape = (X.size, ) + elif ndmin == 2: + X.shape = (X.size, 1) + if unpack: if len(dtype_types) > 1: # For structured arrays, return an array for each field. |