创建一个空的numpy数组并附加现有数组

2024-06-02 08:07:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想初始化空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)

我正在努力取得以下成果:

^{pr2}$

Error: all the input array dimensions except for the concatenation axis must match exactly


Tags: theinnumpyforindexisvaluenp
2条回答

不要使用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()]

结果:

^{pr2}$

为什么要初始化空数组?您只需根据索引对D进行切片:

index = [0,2]

E = D[index]

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

相关问题 更多 >