【问题标题】:Merge two numpy array's of different shape into a single array将两个不同形状的numpy数组合并到一个数组中
【发布时间】:2014-02-15 16:35:03
【问题描述】:

我有两个长度分别为 53 和 82 的 numpy 数组 ab。我想将它们合并到一个数组中,因为我想使用 53+82=135 长度的数组,比如调用它 c 进行绘图。

我试过了

c = a+b 

但我收到 ValueError: shape mismatch: objects cannot be broadcast to a single shape

这可能吗?

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    你需要使用numpy.concatenate而不是数组加法

    c = numpy.concatenate((a, b))
    

    实施

    import numpy as np
    a = np.arange(53)
    b = np.arange(82)
    c = np.concatenate((a, b))
    

    输出

    c.shape
    (135, )
    

    【讨论】:

      【解决方案2】:

      使用numpy.concatenate:

      In [5]: import numpy as np
      
      In [6]: a = np.arange(5)                                                                         
      
      In [7]: b = np.arange(11)                                                                        
      
      In [8]: np.concatenate((a, b))                                                                   
      Out[8]: array([ 0,  1,  2,  3,  4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
      

      对于一维数组,您也可以使用numpy.hstack

      In [9]: np.hstack((a, b))                                                                       
      Out[9]: array([ 0,  1,  2,  3,  4,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10]
      

      【讨论】:

      • 我收到“只有整数标量可以转换为标量索引”的错误
      • @DineshVG 分享您的输入数据?
      • 类似的东西 - 0.00764538, 0.00871098, 0.00959187, 0.01028805, 0.00884634 用于一个数组,0.17873864, 0.1273831 , 0.07530486, 0.08724997, 0.07698863, 0.04452086, 0.04699075, 0.06169301, 0.08862764, 0.12403291, 0.26097335, 0.49944897, 0.4297591 , 0.37918886 用于第二个数组...
      猜你喜欢
      • 2020-04-04
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 2020-10-02
      相关资源
      最近更新 更多