python中ndarray数组的索引和切片的使用

 更新时间:2022年07月07日 15:13:50   作者:梧桐雪  
本文主要介绍了python中ndarray数组的索引和切片的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

索引和切片相当于是对数组中内容的读(read)或者查询(inquiry)。是我们获取有用信息(demanded infomation)的重要方法。

对于索引

  • 对于1维数组:在数组名的后面用中括号[]包括索引编号,括号中填写所查询数组的编码。比如:data[1]
  • 对于n维数组:有两种方式
    • 第一种:用列表表示所查询数的坐标值,如data_2dim[1,0]
    • 第二种:把多维数组看成一位数组套娃,依次取值,如data_2dim[1][0]

对于切片

  • 对于1维数组:在数组名后加上中括号[],在括号中填写切片的范围,m:n注意这个式子用冒号作为分隔符,表示的意义是m≤index<n,如:data[2:4];特别要注意的是m和n如果省略了,则默认m=0,n=length(array),也就是说默认是第一位和最后一位。这个和matlab中的冒号表达式是不一样的。
  • 对于n维数组:把多维数组看成一位数组套娃,依次取值,要注意的是,多维数组的切片往往还是多维数组,如果需要得到具体某一个元素,则在切片之后还要进行索引操作。

可以在一下代码中演示索引和切片操作:

import numpy as np
data = np.array([0,1,2,3,4,5])
print(data[1])
print(data[2:4])

data_2dim = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(data_2dim[1,0])
print(data_2dim[1][0])
print(data_2dim[1:4])
print(data_2dim[1:4][1:3][1][2])

运行结果如下:

1
[2 3]
4
4
[[ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
12
[Finished in 1.3s]

总结一下,索引和切片都是对数组读的操作,都使用方括号[] (squre bracket)进行编号的框定。

特别要注意的是切片存放的变量和原来的数组变量在本质上共享同一片内存,如果修改了切片存放的变量,那么原来的数组的对应元素也会对应修改。如以下代码所示:

data = np.arange(10)
data_slice = data[3:6]
print(data)
print(data_slice)
data_slice[2] = 100
print(data)
print(data_slice)

结果如下所示:

[0 1 2 3 4 5 6 7 8 9]
[3 4 5]
[  0   1   2   3   4 100   6   7   8   9]
[  3   4 100]
[Finished in 2.2s]

如果需要在修改切片的同时不改变原来数组中的数据,可以使用.copy()方法。对上述代码稍作修改,结果如下:

data = np.arange(10)
data_slice = data[3:6].copy()
print(data)
print(data_slice)
data_slice[2] = 100
print(data)
print(data_slice)

[0 1 2 3 4 5 6 7 8 9]
[3 4 5]
[0 1 2 3 4 5 6 7 8 9]
[  3   4 100]
[Finished in 2.5s]

到此这篇关于python中ndarray数组的索引和切片的实现的文章就介绍到这了,更多相关python ndarray数组索引和切片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用正则表达式实现文本替换的方法

    Python使用正则表达式实现文本替换的方法

    这篇文章主要介绍了Python使用正则表达式实现文本替换的方法,结合实例形式分析了Python使用正则表达式实现文本替换的具体操作步骤与相关使用注意事项,需要的朋友可以参考下
    2017-04-04
  • Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】

    Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】

    这篇文章主要介绍了Python开发SQLite3数据库相关操作,结合实例形式较为详细的分析了Python操作SQLite3数据库的连接,查询,插入,更新,删除,关闭等相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • Python使用Yagmail库实现自动化邮件营销

    Python使用Yagmail库实现自动化邮件营销

    在数字营销领域,自动化邮件营销是一种高效、低成本的方式,能够帮助企业与客户保持沟通,提升品牌忠诚度,而Yagmail是一个简洁且功能强大的Python库,可以大大简化邮件发送的过程,本文将详细介绍如何使用Yagmail库来实现自动化邮件营销,需要的朋友可以参考下
    2024-12-12
  • Python使用Socket实现简单聊天程序

    Python使用Socket实现简单聊天程序

    这篇文章主要介绍了Python使用Socket实现简单聊天程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python实现两组数据纵向排序

    Python实现两组数据纵向排序

    在数据分析和处理过程中,排序是一项非常常见的操作,本文将详细讲解如何使用Python实现两组数据的纵向排序,并提供完整的开发思路和代码示例,需要的可以参考下
    2024-12-12
  • 使用PyTorch将数据从CPU移动到GPU的四个方法

    使用PyTorch将数据从CPU移动到GPU的四个方法

    这篇文章给大家介绍了在 PyTorch 中,将数据从 CPU 移动到 GPU 的几种方法,使用 .to() 方法,使用 .cuda() 方法,使用 torch.Tensor 构造函数和使用 torch.tensor 构造函数这四个方法,通过代码示例介绍非常详细,需要的朋友可以参考下
    2024-01-01
  • django中的自定义分页器的实现示例

    django中的自定义分页器的实现示例

    本文主要介绍了django中的自定义分页器的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Python psutil模块简单使用实例

    Python psutil模块简单使用实例

    这篇文章主要介绍了Python psutil模块简单使用实例,本文直接给出使用脚本,实现查看cpu的信息、查看内存信息、查看系统启动时间、查看网卡信息等,需要的朋友可以参考下
    2015-04-04
  • Python学习之路之pycharm的第一个项目搭建过程

    Python学习之路之pycharm的第一个项目搭建过程

    这篇文章主要介绍了Python学习之路之pycharm的第一个项目搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Python 绘制酷炫的三维图步骤详解

    Python 绘制酷炫的三维图步骤详解

    本文分步骤给大家介绍了Python 绘制如此酷炫的三维图效果 ,需要的朋友可以参考下
    2019-07-07

最新评论