NumPy - 切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,就像 Python 的内置容器对象一样。

如前所述,ndarray对象中的元素遵循基于零的索引。 有三种可用的索引方法类型: 字段访问,基本切片高级索引

基本切片是 Python 中基本切片概念到 n 维的扩展。 通过将startstopstep参数提供给内置的slice函数来构造一个 Python slice对象。 此slice对象被传递给数组来提取数组的一部分。

示例 1

import numpy as np
a = np.arange(10)
s = slice(2,7,2)
print a[s]

输出如下:

[2  4  6]

在上面的例子中,ndarray对象由arange()函数创建。 然后,分别用起始,终止和步长值272定义切片对象。 当这个切片对象传递给ndarray时,会对它的一部分进行切片,从索引27,步长为2

通过将由冒号分隔的切片参数(start:stop:step)直接提供给ndarray对象,也可以获得相同的结果。

示例 2

import numpy as np
a = np.arange(10)
b = a[2:7:2]
print b

输出如下:

[2  4  6]

如果只输入一个参数,则将返回与索引对应的单个项目。 如果使用a:,则从该索引向后的所有项目将被提取。 如果使用两个参数(以:分隔),则对两个索引(不包括停止索引)之间的元素以默认步骤进行切片。

示例 3

# 对单个元素进行切片
import numpy as np a = np.arange(10)
b = a[5]
print b

输出如下:

5

示例 4

# 对始于索引的元素进行切片
import numpy as np
a = np.arange(10)
print a[2:]

输出如下:

[2  3  4  5  6  7  8  9]

示例 5

# 对索引之间的元素进行切片
import numpy as np
a = np.arange(10)
print a[2:5]

输出如下:

[2  3  4]

上面的描述也可用于多维ndarray

示例 6

import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print a
# 对始于索引的元素进行切片
print '现在我们从索引 a[1:] 开始对数组切片'
print a[1:]

输出如下:

[[1 2 3]
[3 4 5]
[4 5 6]] 现在我们从索引 a[1:] 开始对数组切片
[[3 4 5]
[4 5 6]]

切片还可以包括省略号(...),来使选择元组的长度与数组的维度相同。 如果在行位置使用省略号,它将返回包含行中元素的ndarray

示例 7

# 最开始的数组
import numpy as np
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print '我们的数组是:'
print a
print '\n'
# 这会返回第二列元素的数组:
print '第二列的元素是:'
print a[...,1]
print '\n'
# 现在我们从第二行切片所有元素:
print '第二行的元素是:'
print a[1,...]
print '\n'
# 现在我们从第二列向后切片所有元素:
print '第二列及其剩余元素是:'
print a[...,1:]

输出如下:

我们的数组是:
[[1 2 3]
[3 4 5]
[4 5 6]] 第二列的元素是:
[2 4 5] 第二行的元素是:
[3 4 5] 第二列及其剩余元素是:
[[2 3]
[4 5]
[5 6]]

NumPy切片和索引的更多相关文章

  1. NumPy 切片和索引

    NumPy 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样. ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以 ...

  2. 5、numpy——切片和索引

    1.一维数组 1.1 一维数组很简单,基本和列表一致.ndarray 数组可以基于 0 - n 的下标进行索引. 切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step ...

  3. 吴裕雄--天生自然Numpy库学习笔记:NumPy 切片和索引

    ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组. import ...

  4. numpy数组的索引和切片

    numpy数组的索引和切片 基本切片操作 >>> import numpy as np >>> arr=np.arange(10) >>> arr ...

  5. Numpy | 09 高级索引

    NumPy 比一般的 Python 序列提供更多的索引方式.除了之前看到的用整数和切片的索引外,数组可以由整数数组索引.布尔索引及花式索引. 整数数组索引 实例1:获取数组中(0,0),(1,1)和( ...

  6. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  7. numpy切片和布尔型索引

    numpy 标签(空格分隔): numpy 数据挖掘 切片 数组切片是原始数组的视图.这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上 In [16]: arr Out[16]: arr ...

  8. Numpy | 08 切片和索引

    ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样. (1)ndarray 数组索引可以基于 0 - n 的下标进行: (2)切片对象可以通过内置的 ...

  9. 【NumPy学习指南】day4 多维数组的切片和索引

    ndarray支持在多维数组上的切片操作.为了方便起见,我们可以用一个省略号(...)来 表示遍历剩下的维度. (1) 举例来说,我们先用arange函数创建一个数组并改变其维度,使之变成一个三维数组 ...

随机推荐

  1. chardet库:识别文件的编码格式

    chardet库文档 http://chardet.readthedocs.io/en/latest/usage.html 小文件的编码判断 detect函数只需要一个 非unicode字符串参数,返 ...

  2. 搭建SVN和eclipse添加svn插件

    在ubuntu服务器下安装svn服务器端,在window下使用eclipse的svn插件团队开发. 安装SVN服务端 1.在ubuntu上安装svn服务器 sudo apt-get install s ...

  3. Powershell实现Telnet Port

    Telnet Port 脚本 $servers = get-content D:\ps\ServerIPAddress.TXT $portToCheck = '80' for($i=1;$i -le ...

  4. ios 画图总结

    0 CGContextRef context = UIGraphicsGetCurrentContext(); 设置上下文1 CGContextMoveToPoint 开始画线2 CGContextA ...

  5. 细数Python中的数据类型以及他们的方法

    一.数据类型的种类及主要功能 1.数字类型 数字类型主要是用来计算,它分为整数类型int和浮点类型float 2.布尔类型 布尔类型主要是用于判断,它分为真True和False两种 3.字符串类型 字 ...

  6. 我的Android进阶之旅------>解决Android Studio编译后安装apk报错:The APK file does not exist on disk

    1.错误描述 今天用Android Studio编译应用后安装APK的时候,报错了,错误如下所示: The APK file build\outputs\apk\OYP_2.3.4_I2Base_64 ...

  7. Linux学习笔记(4)磁盘分区(fdisk)、挂载与文件系统命令

    Linux学习笔记(4)磁盘分区(fdisk).挂载与文件系统命令 1.磁盘分区是怎么表示的? 1.1 对于IDE接口,第一主盘为hda,第1从盘为hdb,第1从盘的第1个分区为hdb1 1.2 对于 ...

  8. [译转]深入理解LayoutInflater.inflate()

    原文链接:https://www.bignerdranch.com/blog/understanding-androids-layoutinflater-inflate/ 译文连接:http://bl ...

  9. centos Docker安装前升级内核3.10的方法

    首先我虚拟机系统都是Centos 6.5 .ESXI ,后安装devel .ESXI 后来 .ESXI 我所操作的都是虚拟机,但是在真实机上面如何我就不清楚了~~ 大家一定要记得安装步骤,,,不然就是 ...

  10. python3条件表达式和字符串

    1.布尔表达式 布尔表达式的值只有两个:真和假.在python中,真值为1,假值为0 2.逻辑操作符 三种逻辑操作:and.or.not 3.条件语句 if. if...else.if...elif. ...