脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python中ndarray数组的索引和切片的使用

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

2022-07-07 17:20梧桐雪 Python

本文主要介绍了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维数组:把多维数组看成一位数组套娃,依次取值,要注意的是,多维数组的切片往往还是多维数组,如果需要得到具体某一个元素,则在切片之后还要进行索引操作。

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

?
1
2
3
4
5
6
7
8
9
10
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)进行编号的框定。

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

?
1
2
3
4
5
6
7
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()方法。对上述代码稍作修改,结果如下:

?
1
2
3
4
5
6
7
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数组索引和切片内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_41855010/article/details/104235465

延伸 · 阅读

精彩推荐
  • Pythonpython编程使用PyQt制作预览窗口游戏中的小地图

    python编程使用PyQt制作预览窗口游戏中的小地图

    这篇文章主要为大家介绍了python使用PyQt制作预览窗口游戏中的小地图实现示例过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...

    在逆境中蜕变4382022-02-20
  • PythonPython中struct模块对字节流/二进制流的操作教程

    Python中struct模块对字节流/二进制流的操作教程

    最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解...

    monitor13795282020-09-18
  • Python关于Pycharm安装第三方库超时 Read time-out的问题

    关于Pycharm安装第三方库超时 Read time-out的问题

    这篇文章主要介绍了关于Pycharm安装第三方库超时 Read time-out的问题, 找了几个命令都不是很好用,最后找到解决的步骤,感兴趣的朋友跟随小编一起看看吧...

    u0107115655952022-02-10
  • Python详解Python开发中如何使用Hook技巧

    详解Python开发中如何使用Hook技巧

    这篇文章主要介绍了详解Python开发中如何使用Hook技巧,详细的介绍了Python Hook的用法和示例,有兴趣的可以了解一下...

    51CTO3692020-12-15
  • Pythonpymongo中group by的操作方法教程

    pymongo中group by的操作方法教程

    这篇文章主要给大家介绍了关于pymongo中group by的操作方法,文中通过示例代码介绍的非常详细,对大家学习或者使用pymongo具有一定的参考学习价值,需要的...

    lionets11292021-06-08
  • PythonwxPython的安装与使用教程

    wxPython的安装与使用教程

    wxPython是Python语言的一套优秀的GUI图形库。wxPython可以很方便的创建完整的、功能键全的GUI用户界面。这篇文章给大家介绍了wxPython的安装与使用,感兴趣的...

    Jimmy.li9402021-03-31
  • PythonPython 条件,循环语句详解

    Python 条件,循环语句详解

    这篇文章主要介绍了详解Python中的条件,循环语句,循环语句是学习各个编程语言的最基本的基础知识,需要的朋友可以参考下...

    逾期不候°8592022-01-11
  • Python致Python初学者 Anaconda入门使用指南完整版

    致Python初学者 Anaconda入门使用指南完整版

    相信大多数 Python 的初学者们都曾为环境问题而头疼不已,但你并不孤独,大家都是这么折腾过来的。为了在入门时少走弯路,并且让高涨的积极性不至于...

    鱼心DrFish9492021-01-28