【数据分析之道-NumPy(五)】numpy迭代数组

在这里插入图片描述

专栏导读

✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。

本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《机器学习案例》

1、前言

迭代数组指的是遍历数组中所有元素的过程。在 Python 中,可以使用循环语句来迭代数组中的每个元素,并对其进行操作。在 NumPy 中,也可以使用 nditer 函数来实现对数组的迭代,该函数返回一个可迭代对象,可以在循环中用于遍历数组中的元素。

2、使用python循环语句

最简单的方法是使用 Python 中的 for 循环语句来迭代数组中的元素。对于多维数组,可以使用嵌套循环来遍历每个元素。

下面是一个示例代码:

import numpy as np

a = np.array([1, 2, 3])

for x in a:
    print(x)
    
b = np.array([[1, 2], [3, 4]])

for row in b:
    for x in row:
        print(x)

在这里插入图片描述

3、使用nditer函数

nditer 函数是 NumPy 提供的一种遍历数组的方法。它返回一个可迭代对象,可以在循环中用于遍历数组中的元素。可以通过 order 参数指定遍历的顺序,或者使用 C 或 F 属性来查看数组的存储方式。

3.1迭代一维数组

import numpy as np

a = np.array([1, 2, 3, 4, 5])
for x in np.nditer(a):
    print(x)

我们创建了一个一维数组 a,并使用 nditer 函数对其进行迭代。在循环中,每次迭代返回数组中的一个元素,并打印出来。

在这里插入图片描述

3.2迭代二维数组

import numpy as np

a = np.array([[1, 2], [3, 4], [5, 6]])
for x in np.nditer(a):
    print(x)

我们创建了一个二维数组 a,并使用 nditer 函数对其进行迭代。在循环中,每次迭代返回数组中的一个元素,并打印出来。注意,元素的迭代顺序是按照行优先顺序进行的。

在这里插入图片描述

3.3迭代指定顺序的数组

import numpy as np

a = np.array([[1, 2], [3, 4], [5, 6]])
for x in np.nditer(a, order='F'):
    print(x)

我们使用 nditer 函数迭代二维数组 a,但是指定了顺序为列优先顺序。在循环中,每次迭代返回数组中的一个元素,并打印出来。注意,指定顺序会影响元素的迭代顺序。

在这里插入图片描述

3.4迭代时修改数组中的元素

import numpy as np

a = np.array([1, 2, 3, 4, 5])
for x in np.nditer(a, op_flags=['readwrite']):
    x[...] = x * 2
print(a)

我们创建了一个一维数组 a,并使用 nditer 函数对其进行迭代。在循环中,我们将 op_flags 参数设置为 [‘readwrite’],表示可以读取和写入数组中的元素。每次迭代返回数组中的一个元素,并将其乘以2。最后,打印修改后的数组 a。
需要注意的是,迭代时修改数组中的元素可能会导致意外的结果,因此应该谨慎使用。

在这里插入图片描述

4、使用flat属性

flat 属性返回一个可迭代对象,可以用于遍历数组中的每个元素。与 nditer 函数类似,flat 属性也是按照 C 风格的顺序(行优先)遍历数组的。

下面是一个使用 flat 属性遍历数组的示例代码:

import numpy as np

a = np.array([[1, 2], [3, 4]])

for x in a.flat:
    print(x)

在这里插入图片描述

5、使用ndenumerate函数

ndenumerate 函数返回一个可迭代对象,可以用于遍历数组中的每个元素,并返回元素的索引和值。

下面是一个示例代码:

import numpy as np

a = np.array([[1, 2], [3, 4]])

for index, x in np.ndenumerate(a):
    print(index, x)

在这里插入图片描述

6、使用布尔索引

另一种迭代数组的方法是使用布尔索引,即使用一个布尔数组来指定要访问的元素的位置。

下面是一个示例代码:

import numpy as np

a = np.array([1, 2, 3, 4, 5])
b = a > 2

for x in a[b]:
    print(x)

在这里插入图片描述


总结

在迭代时不要修改数组中的元素,否则可能会导致意外的结果。如果需要修改数组中的元素,建议先复制一份数组,并在复制品上进行操作。

📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
NumPyPython中用于科学计算的一个重要库,它提供了高性能的多维数组对象和各种数学函数,是许多数据分析和科学计算任务的基础。在NumPy中,二维数组是最常用的数据结构之一,可以进行各种基本操作。 以下是NumPy二维数组的基本操作: 1. 创建二维数组: - 使用`numpy.array()`函数创建二维数组。 - 使用`numpy.zeros()`或`numpy.ones()`函数创建全零或全一的二维数组。 - 使用`numpy.random.rand()`或`numpy.random.randn()`函数创建随机值的二维数组。 2. 访问元素: - 使用索引访问二维数组中的元素,索引从0开始。 - 可以使用切片操作获取二维数组的子数组。 3. 数组形状: - 使用`numpy.shape`属性获取二维数组的形状,返回一个元组表示行数和列数。 - 使用`numpy.reshape()`函数改变二维数组的形状。 4. 数组操作: - 使用`numpy.transpose()`函数进行转置操作,交换行和列。 - 使用`numpy.concatenate()`函数进行数组的拼接操作。 - 使用`numpy.split()`函数进行数组的分割操作。 5. 数组运算: - 支持基本的数学运算,如加法、减法、乘法和除法。 - 可以使用`numpy.dot()`函数进行矩阵乘法运算。 - 可以使用`numpy.sum()`、`numpy.mean()`等函数计算数组的和、平均值等。 6. 数组迭代: - 可以使用`for`循环迭代二维数组的每个元素。 - 可以使用`numpy.nditer()`函数进行更灵活的迭代操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

i阿极

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值