我无法迭代numpy数组的外轴。在
import numpy as np
a = np.arange(2*3).reshape(2,3)
it = np.nditer(a)
for i in it:
print i
正如人们所期望的那样:
^{pr2}$但是,我希望输出分成三个部分,这样我就可以在外部轴上迭代:
(0, 1, 2)
(3, 4, 5)
我知道有很多方法可以实现这一点,但是在仔细研究了nditer documentation之后,我似乎找不到使用nditer的解决方案。我正利用这个机会学习nditer。所以我宁愿不使用其他解决方案,除非它真的更有效或者更像Python。在
您可以像迭代一维数组一样迭代它以获得所需的输出。在
使用普通的
for
控制迭代更容易:用
nditer
做这件事实在是太尴尬了。除非您需要广播使用cython
,如页面末尾所述,nditer
不提供任何速度优势。即使使用cython
,我使用memoryviews
比使用nditer
获得更好的速度。在看
^{pr2}$np.ndindex
。它创建了一个降维的虚拟数组,并对其进行了指示:明白了:
就像我说的-很尴尬
我最近研究了一维结构化数组上的直接迭代和nditer之间的区别:https://stackoverflow.com/a/43005985/901925
相关问题 更多 >
编程相关推荐