首页 > 解决方案 > 如何通过多个一维数组附加一个空数组

问题描述

我想通过多个 1D 数组创建 2D 数组,(1,7680)以便在彼此下有多个数组创建 2D 数组(n,7680)

任何帮助,将不胜感激

代码

y=[]
t=0
movement=int(S*256)
if(S==0):
    movement=_SIZE_WINDOW       
while data.shape[1]-(t*movement+_SIZE_WINDOW) > 0:
    for i in range(0, 22):
        start = t*movement
        stop = start+_SIZE_WINDOW
        signals[i,:]=data[i,start:stop]
        y=np.append(signals[i,:],y)

     t=t+1

标签: pythonarraysnumpymultidimensional-arrayappend

解决方案


如果您要创建的数组的形状定义明确,那么最简单和最佳的方法是创建一个空数组,如下所示:

array_NxM = np.empty((N,M))

这将创建一个具有所需形状的空数组,然后您可以通过迭代其元素来填充数组。

通过附加一维数组来创建一个数组绝对不是最佳的,但可以接受的方法是创建一个列表,将一维数组附加到它,然后将列表转换为一个 numpy 数组,如下所示:

array_NxM = []
for i in range(M):
    array_NxM.append(array_1xM)
array_NxM = np.array(array_NxM)

最糟糕的方法肯定是使用 np.append。如果可能,请始终避免附加到 numpy 数组,因为此操作会导致数组内存中的完整副本和对其的读/写。


推荐阅读