为了账号安全,请及时绑定邮箱和手机立即绑定

从具有给定步长/步长的numpy数组中提取子数组

从具有给定步长/步长的numpy数组中提取子数组

12345678_0001 2019-06-29 10:41:27
从具有给定步长/步长的numpy数组中提取子数组假设我有一个PythonNumpy数组a.a = numpy.array([1,2,3,4,5,6,7,8,9,10,11])我想从这个长度为5的步长为3的数组中创建一个子序列矩阵。因此,结果矩阵如下所示:numpy.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])实现这一目标的一种可能方法是使用for-循环。result_matrix = np.zeros((3, 5))for i in range(0, len(a), 3):   result_matrix[i] = a[i:i+5]在Numpy中有更干净的方法来实现这一点吗?
查看完整描述

3 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

你是否也得到了一个疯狂的结果strided_app(np.array([np.arange(6)]),3,1)?我在Anaconda中使用python3.6和numpy 1.13.1。

查看完整回答
反对 回复 2019-06-29
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞


我用过as_strided以前却发现它造成了非常严重的内存泄漏。这不是小型数组的问题,但即使在服务器上使用64 GB的RAM,我的python程序也会引发MemoryError。强烈建议使用broadcasting_app方法。
查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 2171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信