【问题标题】:how merge array in numpy in the specific way?如何以特定方式在numpy中合并数组?
【发布时间】:2021-08-03 14:13:49
【问题描述】:

嗨,我有 3 个数组,我想逐个元素地合并它们。例如

a=array([3.1, 3.3])
b=array([4.1, 4.3])
c=array([6.1, 1.3])

我如何合并添加它们以获得此

array([3.1, 4.1,6.1],[3.3,4.3,1.3])

【问题讨论】:

标签: numpy


【解决方案1】:

您可以先将数组堆叠在一起

a=np.array([3.1, 3.3])
b=np.array([4.1, 4.3])
c=np.array([6.1, 1.3])

stacked = np.vstack([a, b, c])

然后转置结果

result = stacked.T

给了

>>> result
array([[3.1, 4.1, 6.1],
       [3.3, 4.3, 1.3]])

【讨论】:

    【解决方案2】:
    In [374]: a=np.array([3.1, 3.3])
         ...: b=np.array([4.1, 4.3])
         ...: c=np.array([6.1, 1.3])
    

    从其他人创建新数组的常用方法是使用np.array

    In [375]: np.array((a,b,c))
    Out[375]: 
    array([[3.1, 3.3],
           [4.1, 4.3],
           [6.1, 1.3]])
    

    这些是数字;只是布局不同,(3,2) 与其transpose 不同。

    或使用concatenate/stack 的变体。例如:

    In [380]: np.column_stack((a,b,c))
    Out[380]: 
    array([[3.1, 4.1, 6.1],
           [3.3, 4.3, 1.3]])
    
    In [381]: np.stack((a,b,c),axis=1)
    Out[381]: 
    array([[3.1, 4.1, 6.1],
           [3.3, 4.3, 1.3]])
    

    甚至打一个电话给transpose(虽然在幕后,这首先会执行 [375] 步骤):

    In [382]: np.transpose((a,b,c))
    Out[382]: 
    array([[3.1, 4.1, 6.1],
           [3.3, 4.3, 1.3]])
    

    这些函数都有文档记录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-13
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      相关资源
      最近更新 更多