【发布时间】:2020-06-01 09:02:23
【问题描述】:
我的程序在 for 循环中创建了一个 numpy 数组。例如,它创建形状为(100*30*10) 的数组,然后是(160*30*10),然后可能是(120*30*10)。我必须将上述内容附加到一个空的 numpy 数组中,这样在循环结束时,它将是一个形状为 (380*30*10) 的 numpy 数组(即 100+160+120 的总和)。 numpy 数组中的第二维和第三维没有变化。
如何在 python 中执行上述操作。我尝试了以下方法。
np_model = np.append(np_model,np_temp1)
print("Appended model shape is",np_model.shape)
np_label = np.append(np_label,np_temp2)
print("Appended label shape is",np_label.shape)
np_model 是一个空数组,我将其定义为 np_model = np.empty(1,30,10),将 np_label 定义为 np_label = np.empty(1 ,str)
np_temp1 对应于每个 for 循环中的数组,例如 100*30*10、120*30*10 等,np_temp2 是带有“item1”、“item2”等的字符串
np_label 是一个字符串 numpy 数组,有 1 个标签对应于np_temp1.shape[0]。但是我在 np_model 中得到的结果是扁平数组,大小为380*30*10 = 1140000
感谢任何帮助。
【问题讨论】:
-
您正在寻找
np.stack(),特别是np.vstack() -
那么,应该如何定义空数组呢?
-
为什么需要一个空数组?
-
你不应该重复使用数组追加。先列个清单。
标签: python arrays numpy append concatenation