What are the available datatypes for 'dtype' with NumPy's loadtxt() an genfromtxt?

Question:

What are the available numpy.loadtxt or numpy.genfromtxt for importing table data with varying datatypes, and what are the available abbreviations for the use (e.g. i32 for integer)?

This post demonstrates the use of conditions, which I was curious if somebody might elaborate on.

Asked By: ryanjdillon

||

Answers:

Generic info about dtypes: http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

From http://docs.scipy.org/doc/numpy/reference/arrays.scalars.html#arrays-scalars-built-in

In NumPy, there are 24 new fundamental Python types to describe different types of scalars. These type descriptors are mostly based on the types available in the C language that CPython is written in, with several additional types compatible with Python’s types.

And what I didn’t realise, is:

The C-like names are associated with character codes, which are shown in the table. Use of the character codes, however, is discouraged.

I doubt the numpy code/doc base is going anyway anytime soon, so that says it all I guess!

Answered By: Jon Clements

for k, v in np.sctypeDict.iteritems(): print '{0:14s} : {1:40s}'.format(str(k), v)

Q              : <type 'numpy.uint64'>      
U              : <type 'numpy.unicode_'>
a              : <type 'numpy.string_'>

etc.

Answered By: Joel Vroom

In addition to np.sctypeDict, there are these variables:

In [141]: np.typecodes
Out[141]: 
{'All': '?bhilqpBHILQPefdgFDGSUVOMm',
 'AllFloat': 'efdgFDG',
 'AllInteger': 'bBhHiIlLqQpP',
 'Character': 'c',
 'Complex': 'FDG',
 'Datetime': 'Mm',
 'Float': 'efdg',
 'Integer': 'bhilqp',
 'UnsignedInteger': 'BHILQP'}

In [143]: np.sctypes
Out[143]: 
{'complex': [numpy.complex64, numpy.complex128, numpy.complex192],
 'float': [numpy.float16, numpy.float32, numpy.float64, numpy.float96],
 'int': [numpy.int8, numpy.int16, numpy.int32, numpy.int32, numpy.int64],
 'others': [bool, object, str, unicode, numpy.void],
 'uint': [numpy.uint8, numpy.uint16, numpy.uint32, numpy.uint32, numpy.uint64]}
Answered By: hpaulj
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.