繁体   English   中英

列表到 Numpy 阵列和重塑(尺寸问题)

[英]List to Numpy Array and Reshape (Dimension Problem)

我有一个附加 2 numpy 数组的列表。

mylist=

[array([[5.45, 2.97, 6.25],
        [7.27, 5.28, 4.18]]),
array([[4.54, 2.06, 2.53],
       [7.2, 5.28, 1.29]])]

我想从此列表中重新创建 numpy 数组,如下所示:

array([[5.45, 2.97, 6.25,4.54, 2.06, 2.53]],
       [7.27, 5.28, 4.18,7.2, 5.28, 1.29]])

我尝试了 np.array(mylist).reshape(2,6),但结果不是我的目标。

arr = np.array(mylist)
arr

>>> [[[5.45, 2.97, 6.25],
      [7.27, 5.28, 4.18]],

     [[4.54, 2.06, 2.53],
      [7.2 , 5.28, 1.29]]]

您需要在重塑之前交换第一个和第二个轴

brr = arr.transpose([1, 0, 2]).reshape(2, -1)
brr

>>> [[5.45, 2.97, 6.25, 4.54, 2.06, 2.53],
     [7.27, 5.28, 4.18, 7.2 , 5.28, 1.29]]
In [145]: alist = [np.array([[5.45, 2.97, 6.25],
     ...:         [7.27, 5.28, 4.18]]),
     ...:         np.array([[4.54, 2.06, 2.53],
     ...:         [7.2, 5.28, 1.29]])]

In [147]: np.hstack(alist)
Out[147]: 
array([[5.45, 2.97, 6.25, 4.54, 2.06, 2.53],
       [7.27, 5.28, 4.18, 7.2 , 5.28, 1.29]])

这只是一种紧凑的调用方式

In [148]: np.concatenate(alist, axis=1)
Out[148]: 
array([[5.45, 2.97, 6.25, 4.54, 2.06, 2.53],
       [7.27, 5.28, 4.18, 7.2 , 5.28, 1.29]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM