- NumPy 教程
- NumPy - 主页
- NumPy - 简介
- NumPy - 环境
- NumPy - Ndarray 对象
- NumPy - 数据类型
- NumPy - 数组属性
- NumPy - 数组创建例程
- NumPy - 来自现有数据的数组
- 来自数值范围的数组
- NumPy - 索引和切片
- NumPy - 高级索引
- NumPy - 广播
- NumPy - 迭代数组
- NumPy - 数组操作
- NumPy - 二元运算符
- NumPy - 字符串函数
- NumPy - 数学函数
- NumPy - 算术运算
- NumPy - 统计函数
- 排序、搜索和计数功能
- NumPy - 字节交换
- NumPy - 副本和视图
- NumPy - 矩阵库
- NumPy - 线性代数
- NumPy-Matplotlib
- NumPy - 使用 Matplotlib 绘制直方图
- NumPy - 使用 NumPy 进行 I/O
- NumPy 有用资源
- NumPy - 快速指南
- NumPy - 有用的资源
- NumPy - 讨论
NumPy - 索引和切片
ndarray对象的内容可以通过索引或切片来访问和修改,就像Python内置的容器对象一样。
如前所述,ndarray 对象中的项目遵循从零开始的索引。提供三种类型的索引方法:字段访问、基本切片和高级索引。
基本切片是 Python 的 n 维切片基本概念的扩展。Python 切片对象是通过向内置切片函数提供start、stop和step参数来构造的。该切片对象被传递到数组以提取数组的一部分。
实施例1
import numpy as np a = np.arange(10) s = slice(2,7,2) print a[s]
其输出如下 -
[2 4 6]
在上面的例子中,一个ndarray对象是由arange()函数准备的。然后定义一个切片对象,其开始、停止和步长值分别为 2、7 和 2。当这个切片对象被传递到 ndarray 时,它的一部分从索引 2 开始到 7,步长为 2 被切片。
通过将用冒号 : (start:stop:step) 分隔的切片参数直接赋予ndarray对象也可以获得相同的结果。
实施例2
import numpy as np a = np.arange(10) b = a[2:7:2] print b
在这里,我们将得到相同的输出 -
[2 4 6]
如果只输入一个参数,则将返回与索引对应的单个项目。如果在其前面插入 :,则将从该索引开始的所有项目都将被提取。如果使用两个参数(它们之间有 : ),则默认步骤一的两个索引之间的项目(不包括停止索引)将被切片。
实施例3
# slice single item import numpy as np a = np.arange(10) b = a[5] print b
其输出如下 -
5
实施例4
# slice items starting from index import numpy as np a = np.arange(10) print a[2:]
现在,输出将是 -
[2 3 4 5 6 7 8 9]
实施例5
# slice items between indexes 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 # slice items starting from index print 'Now we will slice the array from the index a[1:]' print a[1:]
输出如下 -
[[1 2 3] [3 4 5] [4 5 6]] Now we will slice the array from the index a[1:] [[3 4 5] [4 5 6]]
切片还可以包含省略号 (...) 以生成与数组维度长度相同的选择元组。如果在行位置使用省略号,它将返回一个由行中的项目组成的 ndarray。
实施例7
# array to begin with import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print 'Our array is:' print a print '\n' # this returns array of items in the second column print 'The items in the second column are:' print a[...,1] print '\n' # Now we will slice all items from the second row print 'The items in the second row are:' print a[1,...] print '\n' # Now we will slice all items from column 1 onwards print 'The items column 1 onwards are:' print a[...,1:]
该程序的输出如下 -
Our array is: [[1 2 3] [3 4 5] [4 5 6]] The items in the second column are: [2 4 5] The items in the second row are: [3 4 5] The items column 1 onwards are: [[2 3] [4 5] [5 6]]