我想初始化空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] ])
错误:除串联轴外,所有输入数组维都必须完全匹配
答案 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]])