NumPy 数组迭代2024 年 8 月 29 日 | 阅读 3 分钟 NumPy 提供了一个迭代器对象,即 nditer,可以使用 python 标准迭代器接口来迭代给定的数组。 请看以下示例。 示例输出 Printing array: [[ 1 2 3 4] [ 2 4 5 6] [10 20 39 3]] Iterating over the array: 1 2 3 4 2 4 5 6 10 20 39 3 迭代的顺序不遵循任何特殊的排序,如行优先或列优先。但是,它旨在匹配数组的内存布局。 让我们迭代上面示例中给出的数组的转置。 示例输出 Printing the array: [[ 1 2 3 4] [ 2 4 5 6] [10 20 39 3]] Printing the transpose of the array: [[ 1 2 10] [ 2 4 20] [ 3 5 39] [ 4 6 3]] 1 2 3 4 2 4 5 6 10 20 39 3 迭代顺序我们知道,有两种方法可以将值存储到 numpy 数组中
让我们看一个例子,说明 numpy 迭代器如何处理特定的顺序(F 或 C)。 示例输出 Printing the array: [[ 1 2 3 4] [ 2 4 5 6] [10 20 39 3]] Printing the transpose of the array: [[ 1 2 10] [ 2 4 20] [ 3 5 39] [ 4 6 3]] Iterating over the transposed array 1 2 3 4 2 4 5 6 10 20 39 3 Sorting the transposed array in C-style: [[ 1 2 10] [ 2 4 20] [ 3 5 39] [ 4 6 3]] Iterating over the C-style array: 1 2 10 2 4 20 3 5 39 4 6 3 [[ 1 2 10] [ 2 4 20] [ 3 5 39] [ 4 6 3]] Iterating over the F-style array: 1 2 3 4 2 4 5 6 10 20 39 3 我们可以在定义迭代器对象本身时提到 'C' 或 'F' 顺序。 考虑以下示例。 示例输出 Iterating over the transposed array 1 2 3 4 2 4 5 6 10 20 39 3 Sorting the transposed array in C-style: Iterating over the C-style array: 1 2 10 2 4 20 3 5 39 4 6 3 数组值修改我们不能在迭代期间修改数组元素,因为与迭代器对象关联的 op-flag 设置为只读。 但是,我们可以将此标志设置为 readwrite 或仅写以修改数组值。 考虑以下示例。 示例输出 Printing the original array: [[ 1 2 3 4] [ 2 4 5 6] [10 20 39 3]] Iterating over the modified array 3 6 9 12 6 12 15 18 30 60 117 9 下一个主题NumPy 位运算符 |
我们请求您订阅我们的新闻通讯以获取最新更新。