创建一个基于空的numpy数组并追加现有数组

时间:2018-09-11 21:00:01

标签: python arrays list numpy

我想初始化空numpy(E)数组,然后将现有数组(D)中的选定行附加到空数组(E)。我无法初始化匹配D维的空数组。我该如何解决。

E = np.array([ [ ] ])

D = np.array([ [20, 23 ], [19, 23],[19,22] ]) 

for i in np.where(index):  ## assume index value is ([0],[2])

    E = np.append( E , D[i] , axis = 0)

我正在尝试实现以下结果:

E = ([ [20, 23 ], [19,22] ]) 
  

错误:除串联轴外,所有输入数组维都必须完全匹配

2 个答案:

答案 0 :(得分:0)

为什么要初始化一个空数组?您可以根据自己的索引对D进行切片:

index = [0,2]

E = D[index]

>>> E
array([[20, 23],
       [19, 22]])

答案 1 :(得分:0)

请勿使用np.append

np.append创建数据副本。您会发现它效率低下。除非绝对必要,否则应避免使用它。

读入np.array并切片

将单项列表的元组转换为NumPy数组并直接建立索引:

D = np.array([[20, 23], [19, 23], [19, 22]])
index = ([0], [2])

E = D[np.array(index).ravel()]

结果:

array([[20, 23],
       [19, 22]])