【问题标题】:Append Numpy arrays附加 Numpy 数组
【发布时间】:2017-04-21 08:29:01
【问题描述】:

我有以下问题。我想在循环中扩展一个 numpy 数组,以便每个数组与下一个数组分开,如a=[[1,2,3,4,5],[1,2,3,4,5]],b=[[1,2,3,4,5],[1,2,3,4,5]]-->[[[1,2,3,4,5],[1,2,3,4,5]],[[1,2,3,4,5],[1,2,3,4,5]]]

到目前为止我的方法:

count=0
for i in range(int(max(allCoo[:,4]))+1):

        mask1 = allCoo[:,4] == count 
        if count>0:
            trackList=np.vstack((trackList,np.array((allCoo[mask1]))))
        else:
            trackList=np.array((allCoo[mask1]))

        count+=1 

但这只是给我这样的东西:[[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]

最好的问候

【问题讨论】:

  • 收集列表或列表列表中的数组,并在最后执行一次stack/concatenate

标签: python arrays numpy scipy


【解决方案1】:

如果你想要一个新维度,你想使用dstack 而不是vstack

p.dstack([a,b]).swapaxes(1,2)

array([[[1, 2, 3, 4, 5],
        [1, 2, 3, 4, 5]],

       [[1, 2, 3, 4, 5],
        [1, 2, 3, 4, 5]]])

np.vstack([a,b])

array([[1, 2, 3, 4, 5],
       [1, 2, 3, 4, 5],
       [1, 2, 3, 4, 5],
       [1, 2, 3, 4, 5]])

【讨论】:

  • 很好,谢谢。但是对于具有不同数组维度的数组,例如 np.dstack(([[[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4, 5]],[[1,2,3,4,5],[1,2,3,4,5]]])).swapaxes(1,2)。在这里我得到错误:ValueError:除了连接轴之外的所有输入数组维度必须完全匹配
  • 该输出将是一个参差不齐的数组(因为第二维不会固定),因此不是有效的numpy 数组。那你最好列出一个数组列表。
  • np.stack 是一个较新的函数,在添加新维度方面具有更大的灵活性。
猜你喜欢
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 2019-08-26
  • 2021-03-20
  • 2017-05-22
  • 2020-06-02
  • 2015-03-31
相关资源
最近更新 更多