(just illustrating some porting fun)

I was struggling with another python 3.2 bug  in scikits.statsmodels
(with grunfeld data)

with numpy 1.5.1, I'm reading the data with

    data = recfromtxt(open(filepath + '/grunfeld.csv', 'rb'), delimiter=",",
            names=True, dtype="f8,f8,f8,a17,f8")


>>> grun_exog['firm'][:10]
array([b'General Motors', b'General Motors', b'General Motors',
       b'General Motors', b'General Motors', b'General Motors',
       b'General Motors', b'General Motors', b'General Motors',
       b'General Motors'],
      dtype='|S17')

using predefined firms defined as string

>>> firms = ['General Motors', 'Chrysler', 'General Electric', 'Westinghouse',
        'US Steel']

>>> i
'General Motors'

comparing bytes and string produces False not an element wise comparison

>>> grun_exog['firm'] == i
False

>>> grun_exog['firm'][0] == i
False
>>> grun_exog['firm'][0] , i
(b'General Motors', 'General Motors')

numpy has a convenient conversion function

>>> from numpy.compat import asbytes
>>> ( grun_exog['firm'] == asbytes(i) )[:10]
array([ True,  True,  True,  True,  True,  True,  True,  True,  True,
True], dtype=bool)


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

Reply via email to