python – 通过多维数组的所有1维子阵列进行迭代
发布时间:2020-09-25 23:17:29 所属栏目:Python 来源:互联网
导读:在 python中迭代遍历n维数组的所有一维子数组的最快方法是什么? 例如考虑3-D数组: import numpy as np a = np.arange(24)a = a.reshape(2,3,4) 迭代器的期望产量序列是: a[:,0,0]a[:,0,1]..a[:,2,3]a[0,:,0]..a[1,:,3]a[0,0,:]..a[1,2,:] 这是一个这样一个
在 python中迭代遍历n维数组的所有一维子数组的最快方法是什么? 例如考虑3-D数组: import numpy as np a = np.arange(24) a = a.reshape(2,3,4) 迭代器的期望产量序列是: a[:,0] a[:,1] .. a[:,2,3] a[0,:,0] .. a[1,:] .. a[1,:] 解决方法这是一个这样一个迭代器的紧凑实现:def iter1d(a): return itertools.chain.from_iterable( numpy.rollaxis(a,axis,a.ndim).reshape(-1,dim) for axis,dim in enumerate(a.shape)) 这将按照你在帖子中给出的顺序生成子数组: for x in iter1d(a): print x 版画 [ 0 12] [ 1 13] [ 2 14] [ 3 15] [ 4 16] [ 5 17] [ 6 18] [ 7 19] [ 8 20] [ 9 21] [10 22] [11 23] [0 4 8] [1 5 9] [ 2 6 10] [ 3 7 11] [12 16 20] [13 17 21] [14 18 22] [15 19 23] [0 1 2 3] [4 5 6 7] [ 8 9 10 11] [12 13 14 15] [16 17 18 19] [20 21 22 23] 这里的技巧是遍历所有的轴,并且对于每个轴将阵列重新形成二维数组,其中的行是所需的一维子阵列. (编辑:大庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – Scipy.optimize Inequality Constraint – 不平等
- python – 如何获得正确的alpha值,以完美地融合两个图像?
- python – Pip默认行为与virtualenv冲突?
- python – 使用PyGtk时,GUI未从其他线程更新
- python – 为什么使用整数作为pymongo的键不起作用?
- python – Django Crispy形式分割字段布局
- python – 如何在DataFrame中增加groupby中的行数
- python – TypeError:尝试模拟classmethod时的未绑定方法
- 带标签python
- 无法弄清楚如何在此Python代码中重新分配列表中的元素