9

How can I turn a list such as:

data_list = [0,1,2,3,4,5,6,7,8,9]

into a array (I'm using numpy) that looks like:

data_array = [ [0,1] , [2,3] , [4,5] , [6,7] , [8,9] ]

Can I slice segments off the beginning of the list and append them to an empty array?

Thanks

Flimm
  • 136,138
  • 45
  • 251
  • 267
Double AA
  • 5,759
  • 16
  • 44
  • 56

2 Answers2

24
>>> import numpy as np
>>> np.array(data_list).reshape(-1, 2)
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])

(The reshape method returns a new "view" on the array; it doesn't copy the data.)

Fred Foo
  • 355,277
  • 75
  • 744
  • 836
2
def nest_list(list1,rows, columns):    
        result=[]               
        start = 0
        end = columns
        for i in range(rows): 
            result.append(list1[start:end])
            start +=columns
            end += columns
        return result

for:

 list1=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
nest_list(list1,4,4)

Output:

[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]]
Amgad
  • 33
  • 6