Re: [Numpy-discussion] How to distinguish between number and string dypes

2010-05-27 Thread Francesc Alted
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'

-- 
Francesc Alted
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] How to distinguish between number and string dypes

2010-05-27 Thread Vincent Davis
On Thu, May 27, 2010 at 1:27 AM, Francesc Alted fal...@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


 --
 Francesc Alted
 ___
 NumPy-Discussion mailing list
 NumPy-Discussion@scipy.org
 http://mail.scipy.org/mailman/listinfo/numpy-discussion


  *Vincent Davis
720-301-3003 *
vinc...@vincentdavis.net
 my blog http://vincentdavis.net |
LinkedInhttp://www.linkedin.com/in/vincentdavis
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] How to distinguish between number and string dypes

2010-05-27 Thread Keith Goodman
On Thu, May 27, 2010 at 6:02 AM, Vincent Davis vinc...@vincentdavis.net wrote:

 On Thu, May 27, 2010 at 1:27 AM, Francesc Alted fal...@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)
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] How to distinguish between number and string dypes

2010-05-27 Thread Vincent Davis
On Thu, May 27, 2010 at 8:39 AM, Keith Goodman kwgood...@gmail.com wrote:

 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)


These are valid but what I don't like is that I need to know the list of
possible number types. Basically I don't like a test that fails because I
didn't know about a dtype. For string It is ok, the universe of is either
string or not string. Maybe this is as good as it gets.

I guess my use case is that I want to be sure I can perform math on the
values. So maybe I should just do someting like
numpy.lib._iotools._is_string_like
but _is_number_like, Maybe there is such and I missed it. If not there
should be.

Vincent



___
 NumPy-Discussion mailing list
 NumPy-Discussion@scipy.org
 http://mail.scipy.org/mailman/listinfo/numpy-discussion


  *Vincent Davis
720-301-3003 *
vinc...@vincentdavis.net
 my blog http://vincentdavis.net |
LinkedInhttp://www.linkedin.com/in/vincentdavis
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] How to distinguish between number and string dypes

2010-05-27 Thread Robert Kern
On Thu, May 27, 2010 at 11:40, Vincent Davis vinc...@vincentdavis.net wrote:

 On Thu, May 27, 2010 at 8:39 AM, Keith Goodman kwgood...@gmail.com wrote:

 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)

 These are valid but what I don't like is that I need to know the list of 
 possible number types. Basically I don't like a test that fails because I 
 didn't know about a dtype. For string It is ok, the universe of is either 
 string or not string. Maybe this is as good as it gets.

The dtypes have a hierarchy.

In [2]: np.issubdtype(float, np.number)
Out[2]: True

In [3]: np.issubdtype(str, np.number)
Out[3]: False

--
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
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] How to distinguish between number and string dypes

2010-05-27 Thread Bruce Southey

On 05/27/2010 10:40 AM, Vincent Davis wrote:
On Thu, May 27, 2010 at 8:39 AM, Keith Goodman kwgood...@gmail.com 
mailto:kwgood...@gmail.com wrote:


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)


These are valid but what I don't like is that I need to know the list 
of possible number types. Basically I don't like a test that fails 
because I didn't know about a dtype. For string It is ok, the universe 
of is either string or not string. Maybe this is as good as it gets.


I guess my use case is that I want to be sure I can perform math on 
the values. So maybe I should just do someting like 
numpy.lib._iotools._is_string_like but _is_number_like, Maybe 
there is such and I missed it. If not there should be.


Vincent




Can you give an example of what you are trying to do?

If some of your string arrays only have string representations of 
numbers that you want to do the math on then you have to attempt to 
convert those arrays into a numeric dtype (probably float) using for 
example asarray().


Bruce

 import numpy as np
 a=np.array([1,2,3])
 c=np.array(['1','2','3'])
 d=np.array(['a','b','1'])
 np.asarray(a, dtype=float)
array([ 1.,  2.,  3.])
 np.asarray(c,dtype=float)
array([ 1.,  2.,  3.])
 np.asarray(d,dtype=float)
Traceback (most recent call last):
  File stdin, line 1, in module
  File /usr/lib64/python2.6/site-packages/numpy/core/numeric.py, line 
284, in asarray

return array(a, dtype, copy=False, order=order)
ValueError: invalid literal for float(): a
 try:
... np.asarray(d,dtype=float)
... except:
... print 'fail'
...
fail


___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] How to distinguish between number and string dypes

2010-05-27 Thread Vincent Davis
On Thu, May 27, 2010 at 10:25 AM, Bruce Southey bsout...@gmail.com wrote:

  On 05/27/2010 10:40 AM, Vincent Davis wrote:
 Can you give an example of what you are trying to do?


arr = np.array([(1,'a'),(2,'b')], dtype =[(num,int),(str, |s2)]

No supposed I want to know if I can sum the values in 'num'. I could just
try and then handle the exemption, but I would like to do something more
like

for col in arr.dtypes.names:
if arr[col] is a number:
sum(arr[col])

I think i can use Roberts suggestion, I was not aware of np.number, I guess
I need to look into the hierarchy more.

The dtypes have a hierarchy.

 In [2]: np.issubdtype(float, np.number)
 Out[2]: True

 In [3]: np.issubdtype(str, np.number)
 Out[3]: False

 --
 Robert Kern


Thanks
Vincent




 If some of your string arrays only have string representations of numbers
 that you want to do the math on then you have to attempt to convert those
 arrays into a numeric dtype (probably float) using for example asarray().

 Bruce

  import numpy as np
  a=np.array([1,2,3])
  c=np.array(['1','2','3'])
  d=np.array(['a','b','1'])
  np.asarray(a, dtype=float)
 array([ 1.,  2.,  3.])
  np.asarray(c,dtype=float)
 array([ 1.,  2.,  3.])
  np.asarray(d,dtype=float)
 Traceback (most recent call last):
   File stdin, line 1, in module
   File /usr/lib64/python2.6/site-packages/numpy/core/numeric.py, line
 284, in asarray
 return array(a, dtype, copy=False, order=order)
 ValueError: invalid literal for float(): a
  try:
 ... np.asarray(d,dtype=float)
 ... except:
 ... print 'fail'
 ...
 fail



 ___
 NumPy-Discussion mailing list
 NumPy-Discussion@scipy.org
 http://mail.scipy.org/mailman/listinfo/numpy-discussion


  *Vincent Davis
720-301-3003 *
vinc...@vincentdavis.net
 my blog http://vincentdavis.net |
LinkedInhttp://www.linkedin.com/in/vincentdavis
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


[Numpy-discussion] How to distinguish between number and string dypes

2010-05-26 Thread Vincent Davis
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.

  *Vincent Davis
720-301-3003 *
vinc...@vincentdavis.net
 my blog http://vincentdavis.net |
LinkedInhttp://www.linkedin.com/in/vincentdavis
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion