【问题标题】:Appending numpy array without flattening附加 numpy 数组而不展平
【发布时间】:2019-08-26 02:16:38
【问题描述】:

假设我有三个这样的数组:

Total = [], A = [1,2,3]B = [4,5,6]

当我使用 Total = np.append(Total,A) 时,它给了我:[1,2,3]

当我使用 Total = np.append(Total,B) 时,它给了我:[1,2,3,4,5,6]

第二次追加后我想要的是:Total = [[1,2,3],[4,5,6]]

【问题讨论】:

  • np.vstack((A, B)) 做你想做的事吗?
  • @JonClements 不,因为尺寸不匹配。
  • 嗯 - 他们在你的例子中?您能否提供一个实际用例,其中它们不匹配,以及您期望从尺寸不匹配的二维数组中得到什么输出?
  • 看起来你在这里没有使用 numpy 只是想要total = [A, B]
  • 不阅读其文档就不要使用np.appwnd。最好不要使用它。不要反复stackvstack 一次所有项目的列表。

标签: python arrays numpy append


【解决方案1】:

您可以通过以下几种方式做到这一点:

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

np.vstack([a, b])
np.stack([a, b], axis=0)
np.c_[a, b].T
np.concatenate([a[np.newaxis], b[np.newaxis]])

【讨论】:

    【解决方案2】:

    为什么不把它们堆叠起来?

    A = [1,2,3]
    B = [4,5,6]
    
    Total = np.vstack((A,B))    
    print(Total)  
    

    输出

    [[1 2 3]
     [4 5 6]]
    

    只需添加列表:

    T = [A] + [B]    
    print(T)
    

    输出

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

    【讨论】:

      猜你喜欢
      • 2019-01-11
      • 2018-08-01
      • 1970-01-01
      • 2020-07-29
      • 2016-02-16
      • 2014-08-29
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多