关于for循环中numpy append函数的查询

时间:2018-02-21 11:19:42

标签: python numpy

我正在努力将一个numpy数组附加到另​​一个......

data_X = load_dataset()
print(data_X.shape) # (6794, 11)
result_array = np.empty((0, 110))

for i in range(0, 1000, 10):
    arr_1d = data_X[i:i+10].reshape(1, 110)
    np.append(result_array, arr_1d, axis=0)

print(result_array.shape)

不确定我做错了什么..没有错误,result_array的形状是(0,110)。请帮忙。

1 个答案:

答案 0 :(得分:2)

list.append不同,numpy.append不能就地工作,但会返回一个新对象。要使循环正常工作,您必须重新分配到result_array

请注意numpy.append效率很低,不应该那样使用。

实现等效循环的推荐方法包括

  • 使用np.empty预分配然后使用切片分配
  • 追加到列表并最后使用np.concatenate