向量化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 向量化?