可以通过索引或切片来访问和修改ndarray对象的内容,就像Python的内置容器对象 一样。
slice切片是Python切片概念的扩展,向内置的 slice 函数提供 start,stop 和 step 参数来构造Python切片对象 ,将此切片对象传递到数组以提取数组的一部分。
示例1
import numpy as np a = np.arange(10) s = slice(2,7,2) print a[s]
其输出如下-
[2 4 6]
传递给ndarray时,将对它的一部分进行索引(从索引2到7并以2的步长)进行切片。
,也可以获得相同的输出。
示例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
# 从索引开始切片元素 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 '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
# 数组开始 import numpy as np a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print 'Our array is:' print a print '\n' # 这将返回第二列中的元素数组 print 'The items in the second column are:' print a[...,1] print '\n' # 现在我们将从第二行切片所有元素 print 'The items in the second row are:' print a[1,...] print '\n' # 现在我们将从第 1 列开始切片所有元素 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]]
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)