向量化numpy追加循环

Posted

技术标签:

【中文标题】向量化numpy追加循环【英文标题】:vectorize numpy append loop 【发布时间】:2017-01-26 23:22:17 【问题描述】:

我正在尝试向量化以下循环,我正在尝试将多个数组附加到一个空数组。

# ff is a matrix of shape [100,1,96]
temp = np.array([]).reshape(0,96)
for kk in range(1,10,1):
   temp = np.append(tr,ff[kk],axis=0)
temp = temp.reshape(1,10,96)

是否可以使用 numpy 对上述循环进行矢量化?欢迎任何帮助!

【问题讨论】:

你能解释一下你要做什么吗? 我正在尝试遍历维度为 [100,1,96] 且维度为 [1,96] 的矩阵的元素,并附加到它们以创建 [10,96] 数组跨度> 那么第一个维度的前 10 个条目以及所有其他维度的所有条目? ff[:10,:,:] 不应该只是给你你正在寻找的数据吗? 是的,效果很好。非常感谢! 关于数组追加与列表追加:***.com/a/41793600/901925 【参考方案1】:

您可以使用切片来提取您需要的数据:

ff[:10,:,:]

这将产生一个形状为(10, 1, 96) 的数组。要摆脱空维度,您可以通过numpy.squeeze()运行它:

numpy.squeeze(ff[:10,:,:])

并得到一个形状数组(10, 96)

【讨论】:

以上是关于向量化numpy追加循环的主要内容,如果未能解决你的问题,请参考以下文章

无法在嵌套循环中使用 pandas 附加更大的数据帧。如何更改为 numpy 向量化?

在python中为依赖于索引的函数向量化嵌套的for循环

NumPy基础-数组与向量化计算

吴恩达-深度学习-课程笔记-3: Python和向量化( Week 2 )

Numpy Broadcast 执行欧式距离矢量化

向量化嵌套循环,其中一个循环变量依赖于另一个