我大约有100个numpy
数组。它们每个都具有(100,40000,4)的形状。我想将这些数组沿第一轴(即axis=0
)有效地串联成一个大数组。
我使用了np.concatenate
,如下所示-
def concatenate(all_data):
for index, data in enumerate(all_data):
if index == 0:
arr = data.copy()
else:
arr = np.concatenate((arr, data), axis=0)
return arr
我在熊猫中创建了面板,然后使用pd.concat
,如下所示-
def concatenate(all_data):
for index, data in enumerate(all_data):
if index == 0:
pn = pd.Panel(data)
else:
pn = pd.concat([pn, pd.Panel(data)])
return pn # numpy array can be acquired from pn.values
第二种方法似乎比第一种更快。但是,此方法在创建pd.Panel
时会显示过时的警告。
我想知道是否存在更好的方法来连接python中的大型3维数组。
答案 0 :(得分:3)
反复调用np.concatenate()
是一种反模式。相反,请尝试以下操作:
np.concatenate(all_data)
简单,快速。