广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何遍历numpy数组
  • 1034
分享到

Python如何遍历numpy数组

Python遍历数组遍历numpy数组pythonnumpy数组 2022-11-13 19:11:17 1034人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录python遍历numpy数组numpy中数组的遍历技巧分享1. 内置for循环2. flat迭代器3. nditer迭代器Python遍历numpy数组 下面是示例代码: im

Python遍历numpy数组

下面是示例代码:

import numpy as np
num = np.zeros([2, 3])
[rows, cols] = num.shape
print(rows, cols)
for i in range(rows):
    for j in range(cols):
        print(num[i, j])

运行结果:

2 3
0.0
0.0
0.0
0.0
0.0
0.0

numpy中数组的遍历技巧分享

在numpy中,当需要循环处理数组中的元素时,能用内置通函数实现的肯定首选通函数,只有当没有可用的通函数的情况下,再来手动进行遍历,遍历的方法有以下几种

1. 内置for循环

最基础的遍历方法还是for循环,用法如下

# 一维数组,和普通的python序列对象一致
>>> a
array([0, 1, 2, 3, 4])
>>> for i in a:
... print(i)
...
0
1
2
3
4
# 二维数组,每次遍历一行,以列表的形式返回一行的元素
>>> a = np.arange(12).reshape(3, 4)
>>> a
array([[ 0, 1, 2, 3],
       [ 4, 5, 6, 7],
       [ 8, 9, 10, 11]])
 
>>> for i in a:
... print(i)
...
[0 1 2 3]
[4 5 6 7]
[ 8 9 10 11]

for循环中得到的是对应元素的副本,所以通过上述方式只能访问,不能修改原始数组中的值。

2. flat迭代器

数组的flat属性返回的是数组的迭代器,通过这个迭代器,可以一层for循环就搞定多维数组的访问,用法如下

>>> a
array([[ 0, 1, 2, 3],
       [ 4, 5, 6, 7],
       [ 8, 9, 10, 11]])
>>> for i in a.flat:
...     print(i)
...
0
1
2
3
4
5
6
7
8
9
10
11

3. nditer迭代器

numpy中的nditer函数可以返回数组的迭代器,该迭代器的功能比flat更加强大和灵活,在遍历多维数组时,通过order参数可以指定遍历的顺序,C表示C语言的风格,优先处理行,F表示Fortran语言的风格,优先处理列,用法如下

>>> a
array([[ 0, 1, 2, 3],
       [ 4, 5, 6, 7],
       [ 8, 9, 10, 11]])
# 默认按行处理
>>> for i in np.nditer(a, order='C'):
... print(i)
...
0
1
2
3
4
5
6
7
8
9
10
11
# 按列处理
>>> for i in np.nditer(a, order='F'):
... print(i)
...
0
4
8
1
5
9
2
6
10
3
7
11

普通的遍历只能访问元素,而nditer可以允许我们在遍历的同时修改原始数组中的元素,只需要op_flags参数即可,用法如下

>>> a
array([[ 0, 1, 2, 3],
       [ 4, 5, 6, 7],
       [ 8, 9, 10, 11]])
>>> for i in np.nditer(a, op_flags = ['readwrite']):
... i *= 2
...
>>> a
array([[ 0, 2, 4, 6],
       [ 8, 10, 12, 14],
       [16, 18, 20, 22]])
 
>>> for i in np.nditer(a, op_flags = ['writeonly']):
... i += 2
...
>>> a
array([[ 2, 4, 6, 8],
       [10, 12, 14, 16],
       [18, 20, 22, 24]])

nditer更强大的功能在于广播遍历,通过内置的广播机制,可以实现两个数组的组合,用法如下

>>> a = np.arange(12).reshape(3, 4)
>>> a
array([[ 0, 1, 2, 3],
       [ 4, 5, 6, 7],
       [ 8, 9, 10, 11]])
>>> b = np.arange(4)
>>> b
array([0, 1, 2, 3])
>>> np.nditer([a, b])
<numpy.nditer object at 0x7f9db6b11170>
>>> for x,y in np.nditer([a,b]):
... print(x,y)
...
0 0
1 1
2 2
3 3
4 0
5 1
6 2
7 3
8 0
9 1
10 2
11 3
```
```
>>> b = np.arange(3).reshape(-1, 1)
>>> b
array([[0],
       [1],
       [2]])
>>> a
array([[ 0, 1, 2, 3],
       [ 4, 5, 6, 7],
       [ 8, 9, 10, 11]])
>>> for x,y in np.nditer([a,b]):
... print(x,y)
...
0 0
1 0
2 0
3 0
4 1
5 1
6 1
7 1
8 2
9 2
10 2
11 2

简单的元素访问直接使用for循环迭代数组即可,注意二维数组和一维数组的区别,nditer的3个特点对应不同的使用场景,当遇到对应的情况时,可以选择nditer来进行遍历。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Python如何遍历numpy数组

本文链接: https://www.lsjlt.com/news/170978.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python如何遍历numpy数组
    目录Python遍历numpy数组numpy中数组的遍历技巧分享1. 内置for循环2. flat迭代器3. nditer迭代器Python遍历numpy数组 下面是示例代码: im...
    99+
    2022-11-13
    Python遍历数组 遍历numpy数组 python numpy 数组
  • python numpy库中数组遍历的方法
    1.对于一维数组,可以有: 2. 对于二维数组:考虑可将其看作为矩阵,故可以如下书写二重遍历  这里外层循环的是二维数组A的行,内层则是列 同时c的作用:不想用肉眼直接...
    99+
    2022-11-11
  • 怎么在Python中使用Numpy遍历数组
    本篇文章给大家分享的是有关怎么在Python中使用Numpy遍历数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python可以做什么Python是一种编程语言,内置了许多有...
    99+
    2023-06-14
  • Python数组的遍历
    Python的数组是一个好东西啊, 在Python中,我们习惯这样遍历: for item in sequence: process(item) 这样遍历取不到item的序号i,所有就有了下面的遍历方法: for index in ...
    99+
    2023-01-31
    遍历 数组 Python
  • python中的Numpy二维数组遍历与二维数组切片后遍历效率比较
    在python-numpy使用中,可以用双层 for循环对数组元素进行访问,也可以切片成每一行后进行一维数组的遍历。 代码如下: import numpy as np import ...
    99+
    2022-11-13
  • php如何遍历数组
    在php中对数组进行遍历的几种方法:1.使用for循环遍历;2.使用forEach循环遍历;3.使用指针遍历;在php中对数组进行遍历的几种方法使用for循环遍历数组for($i=0;$i<count($subject1);$i++)...
    99+
    2022-10-09
  • shell如何遍历数组
    这篇文章主要介绍了shell如何遍历数组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 遍历数组array=( one&...
    99+
    2022-10-19
  • jquery如何遍历数组
    在jquery中遍历数组的方法:1.新建html项目,引入jquery;2.在项目中声明数组;3.使用$.each方法遍历数组;具体步骤如下:首先,在新建一个html项目,在项目中引入jquery;<script type="...
    99+
    2022-10-03
  • java如何遍历json数组
    在Java中,可以使用JsonArray类来遍历JSON数组。下面是一个遍历JSON数组的示例代码:javaimport org.j...
    99+
    2023-10-18
    java
  • Bash中如何遍历数组?
    在Bash中,数组是一种非常方便的数据结构,可以用于存储一组相关的值。在处理数组时,遍历数组是一项非常基本的操作。本文将介绍如何在Bash中遍历数组,并提供一些示例代码帮助您更好地理解。 一、Bash数组的定义 在Bash中,可以使用下面的...
    99+
    2023-09-30
    数组 bash windows
  • php中 数组如何遍历
    在 PHP 中,数组是一种非常常用的数据类型。当我们处理大量相似数据时,数组可以方便我们进行存储和操作。其中,数组遍历是我们在日常使用中经常操作的一个过程。下面,我将介绍在 PHP 中,数组如何遍历。使用for循环遍历数组在 PHP 中,可...
    99+
    2023-05-19
  • php如何遍历关联数组
    这篇文章将为大家详细讲解有关php如何遍历关联数组,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。遍历关联数组如需遍历并输出关联数组的所有值,您可以使用 foreach 循...
    99+
    2022-10-19
  • LINQ如何遍历多个数组
    这篇文章主要介绍了LINQ如何遍历多个数组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在一个循环中LINQ遍历多个数组有个朋友问我一个C#的问题:有没有办法在一个循环中LI...
    99+
    2023-06-17
  • jquery如何遍历多维数组
    在jquery中遍历多维数组的方法:1.新建html项目,引入jquery;2.在项目中创建多维数组;3.使用$.each方法遍历;具体步骤如下:首先,在新建一个html项目,在项目中引入jquery;<script typ...
    99+
    2022-10-17
  • php如何遍历索引数组
    小编给大家分享一下php如何遍历索引数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!遍历索引数组如需遍历并输出索引数组的所有值...
    99+
    2022-10-19
  • php如何遍历三维数组
    在php中使用foreach循环遍历三维数组,具体方法如下:首先,新建一个php项目文件;php项目文件新建好后,在文件中定义一个三维数组;$arr array(array('a'=>'1','...
    99+
    2022-10-12
  • php如何循环遍历数组
    PHP是一种广泛使用的Web编程语言,它的数组是一种非常重要的数据结构,也是进行数据处理的重要工具之一。如果要对数组进行操作,通常需要使用循环来遍历整个数组。本文将介绍如何在PHP中使用不同的循环方法来遍历数组。for循环for循环是PHP...
    99+
    2023-05-19
  • 详解Python如何循环遍历Numpy中的Array
    目录1. 引言2. 使用For循环遍历3. 函数 nditer()4. 函数 ndenumerate()5. 结论1. 引言 Numpy是Python中常见的数据处理库。Numpy是...
    99+
    2022-11-10
  • python遍历数组的两种方法
    python遍历数组的两种方法第一种,最常用的,通过for in遍历数组 [cpp] view plain copy colours = ["red","green","blue"]   for colour in col...
    99+
    2023-01-31
    两种 遍历 数组
  • php如何使用foreach遍历数组
    这篇文章主要介绍了php如何使用foreach遍历数组,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。foreach遍历数组的方法:1、使用“foreach (数组表达式 as...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作