-1

I have the following NumPy array,

[[date1,num1],[date2,num2],[date3,num3],[date4,num4]]

I want to divide it as follows:

[ [ [date1,num1],[date2,num2] ] , [ [date3,num3],[date4,num4] ] ]

Can anyone suggest something?

Alex Riley
  • 169,130
  • 45
  • 262
  • 238
gaurav gurnani
  • 2,789
  • 3
  • 19
  • 18

2 Answers2

0
a = np.array([['date1','num1'],['date2','num2'],['date3','num3'],['date4','num4']])

a.reshape((2,2,2))
array([[['date1', 'num1'],
    ['date2', 'num2']],

   [['date3', 'num3'],
    ['date4', 'num4']]])
Aidan Kane
  • 3,856
  • 2
  • 25
  • 28
  • i am a lil confused.... what if my array is [[date1,num1],[date2,num2],[date3,num3],[date4,num4],[date5,[num5],[date6],[num6]].. what parameter should i change? – gaurav gurnani Feb 18 '15 at 20:29
0

You can use Numpy's reshape method and the -1 argument to reshape arrays of arbitrary length between the two forms you specify. Like so:

import numpy as np

#Generate an array of the form you specify of arbitrary length
arraylen = 10
a        = np.array([ ['date'+str(i),'num'+str(i)] for i in range(arraylen*2)])

#Reshape the array per your specifications
a.reshape((-1,2,2))

Gives

array([[['date0', 'num0'],
        ['date1', 'num1']],

       [['date2', 'num2'],
        ['date3', 'num3']],
        ...
Richard
  • 56,349
  • 34
  • 180
  • 251