【问题标题】:Query regarding numpy append function in for loop [duplicate]查询for循环中的numpy append函数[重复]
【发布时间】:2018-07-31 22:53:38
【问题描述】:

我正在努力将一个 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)。请帮忙。

【问题讨论】:

    标签: python numpy


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的帮助。它在重新分配后工作。 result_array=np.append(result_array, arr_1d, axis=0)
    猜你喜欢
    • 2017-05-18
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 2018-03-04
    • 2020-10-18
    相关资源
    最近更新 更多