Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python converting lists into 2D numpy array

Tags:

python

list

numpy

I have some lists that I want to convert into a 2D numpy array.

list1 = [ 2, 7 , 8 , 5]
list2 = [18 ,29, 44,33]
list3 = [2.3, 4.6, 8.9, 7.7]

The numpy array I want is:

[[  2.   18.    2.3]
 [  7.   29.    4.6]
 [  8.   44.    8.9]
 [  5.   33.    7.7]]

which I can get by typing the individual items from the list directly into the numpy array expression as np.array(([2,18,2.3], [7,29, 4.6], [8,44,8.9], [5,33,7.7]), dtype=float).

But I want to be able to convert the lists into the desired numpy array.

like image 624
piccolo Avatar asked Mar 13 '16 22:03

piccolo


2 Answers

One way to do it would be to create your numpy array and then use the transpose function to convert it to your desired output:

import numpy as np

list1 = [ 2, 7 , 8 , 5]
list2 = [18 ,29, 44,33]
list3 = [2.3, 4.6, 8.9, 7.7]

arr = np.array([list1, list2, list3])
arr = arr.T
print(arr)

Output

[[  2.   18.    2.3]
 [  7.   29.    4.6]
 [  8.   44.    8.9]
 [  5.   33.    7.7]]
like image 192
gtlambert Avatar answered Oct 20 '22 23:10

gtlambert


you could use np.transpose directly:

np.transpose([list1, list2, list3])

and this will convert the list of your lists to a numpy array and transpose it (change rows to columns and columns to rows) afterwards:

array([[  2. ,  18. ,   2.3],
       [  7. ,  29. ,   4.6],
       [  8. ,  44. ,   8.9],
       [  5. ,  33. ,   7.7]])
like image 34
MSeifert Avatar answered Oct 21 '22 01:10

MSeifert