Jesh Kundem Jesh Kundem - 1 year ago 103
Python Question

Numpy unicode to int

Using python 2.7 through Pycharm

I have a python code - which is very simple.

a = [2, 3, 4, 5]

b = [30,32,33,34]
c = ['test1', 'test2', 'test3', 'test4']
a = np.asarray(a) # -- Similarly for b and c

I converted these lists to numpy array.

Then I did the following

d = np.transpose(np.vstack((a,b,c)))

Through which I got a 3D numpy array.

when I print d I see a
before each element, Which probably indicating unicode data type.

Now how can I access the columns of a,b and do some arithmetic operations on those values. Whenever I am trying to access a value and convert them to int -- it is saying
invalid literal for int() with base 10

All I need is read the first or second column -- do some arithmetic operations. First and second column values will be of

Answer Source

Because the last column is text, the other two columns are converted to text also. You can have only one type for one matrix. The solution would be a structured array:

a = [2, 3, 4, 5]
b = [30,32,33,34]
c = ['test1', 'test2', 'test3', 'test4']
matrix = np.array(zip(a,b,c), dtype=[('a',int),('b',int),('c','S5')])

To access the values, you have to use the column name: