微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我如何使用for循环在numpy中堆叠行

如何解决我如何使用for循环在numpy中堆叠行

我试图将行迭代添加到二维np.array

A = np.zeros((1,14),dtype = float)
for i in arr:
    A = np.vstack(fn(i))# function returns array 
    

因此,我总是只得到堆叠的最后一个数组 有人可以解释一下我如何堆叠所有行吗,为什么这行不通

解决方法

您不应vstack进行迭代,因为它会人为地增加内存使用,如this similar question but related to pandas中所述。

第二,假设fn(i)返回一个要附加到A的新数组,则该行应为A = np.vstack((A,fn(i))

考虑到所有这些,一个更好的选择是将所有数组创建并收集到一个列表中,以便以后堆叠。

A = np.zeros((1,14),dtype=float)
arrays = [A] + [fn(i) for i in arr] # assuming `arr` is an iterable
A = np.vstack(tuple(arrays))

您可以在numpy.vstack docs

中阅读更多内容 ,

您必须在vstack上添加A:

A = np.zeros((1,dtype = float)
for i in arr:
    A = np.vstack([A,fn(i)])# function returns array 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。