2015-02-18 3 views
-1

Я следующий массив NumPy,Изменение формы Numpy массив

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

Я хочу, чтобы разделить его следующим образом:

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

Может ли кто-то предложить?

+1

возможный дубликат [изменить массив в NumPy] (http://stackoverflow.com/questions/14476415/reshape-an-array-in-numpy) –

ответ

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']]]) 
+0

Я лил смущен .... что если мой массив [[date1, num1], [date2, num2], [date3, num3], [date4, num4], [date5, [num5], [date6] , [num6]] .. какой параметр я должен изменить? –

+0

получил это .. спасибо –

0

Вы можете использовать метод Numpy в reshape и -1 аргумента для изменения формы массивов произвольной длины между двумя формами вы укажете. Как так:

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)) 

дает

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

     [['date2', 'num2'], 
     ['date3', 'num3']], 
     ... 
Смежные вопросы