numpy的vstack里面的for循环

时间:2018-08-31 15:37:39

标签: python arrays numpy

我想从numpy数组列表中制作一个numpy数组。 假设我们有三个数组abc (嗯,实际上我的代码列表中有2000个数组,但为简单起见,我只提取了其中的三个)

a
Out[155]: 
array([-3.6673906, -0.6282566,  5.753459 , -3.4316962,  1.1095421,
       -3.857554 ,  2.1034663,  1.1664252,  5.030331 ,  2.8712769,
       -6.43062  , -4.375715 , -1.6669037,  3.340822 ,  0.520241 ,
        1.4352009, -1.7027975, -2.5952163, -1.0833957,  1.2216603],
      dtype=float32)
b
Out[156]: 
array([-3.0786738 , -0.4769052 ,  3.9245896 , -7.2456822 , -1.3267522 ,
       -0.71329254,  0.41840628, -0.90246826,  3.9599216 ,  0.91597205,
       -2.7932754 , -2.9929597 , -1.729125  , -2.4315472 , -6.188235  ,
        6.450362  , -1.1097518 , -0.3890484 , -3.6735342 , -0.20976427],
      dtype=float32)
c
Out[157]: 
array([ 1.2807868 ,  2.9086506 , -0.90828913, -5.387167  ,  2.5136113 ,
       -6.1260514 , -4.2776265 ,  2.1921122 ,  1.8431641 , -2.623109  ,
        0.2086102 , -3.3588243 , -1.7712283 ,  3.4094403 , -3.6030903 ,
        1.8072847 ,  4.6180625 , -1.6826918 , -1.4339283 ,  0.39811078],
      dtype=float32)

我想要一个函数func(list_of_arrays),该函数返回一个仅堆积列表中元素的数组。 像这样:

array([[-3.6673906 , -0.6282566 ,  5.753459  , -3.4316962 ,  1.1095421 ,
        -3.857554  ,  2.1034663 ,  1.1664252 ,  5.030331  ,  2.8712769 ,
        -6.43062   , -4.375715  , -1.6669037 ,  3.340822  ,  0.520241  ,
         1.4352009 , -1.7027975 , -2.5952163 , -1.0833957 ,  1.2216603 ],
       [-3.0786738 , -0.4769052 ,  3.9245896 , -7.2456822 , -1.3267522 ,
        -0.71329254,  0.41840628, -0.90246826,  3.9599216 ,  0.91597205,
        -2.7932754 , -2.9929597 , -1.729125  , -2.4315472 , -6.188235  ,
         6.450362  , -1.1097518 , -0.3890484 , -3.6735342 , -0.20976427],
       [ 1.2807868 ,  2.9086506 , -0.90828913, -5.387167  ,  2.5136113 ,
        -6.1260514 , -4.2776265 ,  2.1921122 ,  1.8431641 , -2.623109  ,
         0.2086102 , -3.3588243 , -1.7712283 ,  3.4094403 , -3.6030903 ,
         1.8072847 ,  4.6180625 , -1.6826918 , -1.4339283 ,  0.39811078]],
      dtype=float32)

我可以使用以下命令完成这3个数组。

y1 = np.vstack((a,b))
y2 = np.vstack((y1,c))

但是,我无法使用2000个数组的列表来执行此操作。 我希望numpy和list一样简单,所以我可以将所有内容附加到一个空列表中。 有人可以给我一些想法吗?

1 个答案:

答案 0 :(得分:3)

var json = data; var obj = JSON.stringify(json); console.log(obj[1].id); 不仅接受两个数组。它接受可迭代的行堆栈。你可以直接做

vstack

或者通常

np.vstack([a, b, c, d, e])