如何将numpy数组转换为另一个数组

时间:2015-06-03 11:09:14

标签: python arrays numpy

我有一个函数,每秒返回一个numpy数组,我想存储在另一个数组中以供参考。例如(返回array_a)

array_a = [[    25.       50.       25.       25.       50.  ]
           [     1.        1.        1.        1.        1.  ]]

array_collect = np.append(array_a,array_collect)

但是当我打印array_collect时,我得到一个添加的数组,而不是一个包含数组的更大数组。

 array_collect = [    25.       50.       25.       25.       50.  
                       1.        1.        1.        1.        1.  
                       25.       50.       25.       25.       50.  
                       1.        1.        1.        1.        1.  
                       25.       50.       25.       25.       50.  ] 

我想要的是

 array_collect = [   [[  25.     50.       25.       25.       50.  ]
                      [1.        1.        1.        1.        1.   ]] 
                     [[  25.     50.       25.       25.       50.  ]
                      [1.        1.        1.        1.        1.   ]]
                     [[  25.     50.       25.       25.       50.  ]
                      [1.        1.        1.        1.        1.   ]]  ]

我如何得到它?

3 个答案:

答案 0 :(得分:1)

以这种方式使用np.concatenate()reshape

import numpy as np


array_collect = np.array([[25.,50.,25.,25.,50.],[1.,1.,1.,1.,1.]])
array_a = np.array([[2.,5.,2.,2.,5.],[1.,1.,1.,1.,1.]])

array_collect = np.concatenate((array_collect,array_a),axis=0).reshape(2,2,5)

>>

[[[ 25.  50.  25.  25.  50.]
  [  1.   1.   1.   1.   1.]]

 [[  2.   5.   2.   2.   5.]
  [  1.   1.   1.   1.   1.]]]

答案 1 :(得分:1)

您可以使用vstack

array_collect = np.array([[25.,50.,25.,25.,50.],[1.,1.,1.,1.,1.]])
array_a = np.array([[2.,5.,2.,2.,5.],[1.,1.,1.,1.,1.]])


array_collect=np.vstack((array_collect,array_a))

但是,如果您事先知道总分钟数,最好先定义数组(例如使用zeros)并逐渐填充它 - 这样,更容易保持在内存限制内

no_minutes = 5 #say 5 minutes
array_collect = np.zeros((no_minutes,array_a.shape[0],array_a.shape[1]))

然后,每分钟,m

array_collect[m] = array_a

答案 2 :(得分:0)

我发现了,这可以通过使用:

来完成
 np.reshape()

形成的新数组可以使用

重新整形
y= np.reshape(y,(a,b,c))

其中a是否。数组存储和(b,c)是原始数组的形状