On Thu, May 27, 2010 at 6:02 AM, Vincent Davis <vincent@vincentdavis.net> wrote:
On Thu, May 27, 2010 at 1:27 AM, Francesc Alted <faltet@pytables.org> wrote:
A Thursday 27 May 2010 05:52:22 Vincent Davis escrigué:
How do I determine if an array's (or column in a structured array) dtype is a number or a string. I see how to determine the actual dtype but all I want to know is if it is a string or a number.
I suppose that the `.kind` attribute of dtype would help you:
In [2]: s = np.dtype("S3")
In [4]: s.kind Out[4]: 'S'
In [5]: i = np.dtype("i4")
In [6]: i.kind Out[6]: 'i'
In [7]: f = np.dtype("f8")
In [8]: f.kind Out[8]: 'f'
I know about this but the problem is that while the fist example is usable, the others are not great because to know that it is a number I would need to do something like(see below) but I might miss a number dtype, def is_number(obj): if obj.dtype.kind in ('i', 'f',..): return True
Pierre GM "Check `numpy.lib._iotools._is_string_like`"
This is ok, but I am having problem making it work, I keep getting an error that I am giving it 2 items and it only takes 1. Obviously I think I am giving it 1. This of course tells me if it is string like but not that "is" a number. Thanks Vincent
To see if it is a number could you use something like: np.issubdtype(a.dtype, float) or np.issubdtype(a.dtype, int) or np.issubdtype(a.dtype, complex) And for string: np.issubdtype(a.dtype, str)