numpy.nested_iters#

numpy.nested_iters(op, axes, flags=None, op_flags=None, op_dtypes=None, order='K', casting='safe', buffersize=0)#

创建用于嵌套循环的 nditers

创建一个 nditer 对象的元组,这些对象在 op 参数的不同轴上以嵌套循环迭代.第一个迭代器用于最外层循环,最后一个用于最内层循环.前进一步将更改后续迭代器以指向其新元素.

参数:
opndarray 或 array_like 序列

要迭代的数组.

axesint 列表的列表

每个项都用作nditer的”op_axes”参数

标志, op_标志, op_数据类型, 顺序, 类型转换, 缓冲区大小 (可选)

请参阅 nditer 同名参数

返回:
iterstuple of nditer

对于 axes 中的每个项目,使用 nditer,从最外层开始

参见

nditer

示例

基本用法.注意 y 是如何成为 [a[:, 0, :], a[:, 1, 0], a[:, 2, :]] 的”扁平化”版本的,因为我们指定了第一个迭代的轴为 [1]

>>> import numpy as np
>>> a = np.arange(12).reshape(2, 3, 2)
>>> i, j = np.nested_iters(a, [[1], [0, 2]], flags=["multi_index"])
>>> for x in i:
...      print(i.multi_index)
...      for y in j:
...          print('', j.multi_index, y)
(0,)
 (0, 0) 0
 (0, 1) 1
 (1, 0) 6
 (1, 1) 7
(1,)
 (0, 0) 2
 (0, 1) 3
 (1, 0) 8
 (1, 1) 9
(2,)
 (0, 0) 4
 (0, 1) 5
 (1, 0) 10
 (1, 1) 11