我是靠谱客的博主 虚拟母鸡,这篇文章主要介绍[Numpy] 数组索引和切片,现在分享给大家,希望可以做个参考。

美图欣赏2022/07/27

如果数组是一维的,那么索引和切片就是和Python的列表是一样的

复制代码
1
2
3
4
5
6
7
8
9
import numpy as np # 一维数组的索引和切片 arr1 = np.arange(10) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) ## 进行索引操作 arr1[5] # 5 arr1[-1] # 9 ## 进行切片操作 arr1[4:6] # array([4, 5]) arr1[::2] # array([0, 2, 4, 6, 8])

如果数组是多维的(这里以二维数组为例),那么在中括号[]中,给两个值,两个值是通过逗号,分隔的,逗号前面的是行,逗号后面的列;如果中括号[]中只有一个值,那么就是代表行

arr2

注意:arr2是随机的

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import numpy as np # 多维数组的索引和切片 arr2 = np.random.randint(0,10,size=(4,6)) # 获取第0行数据 arr2[0] # array([8, 8, 0, 0, 9, 2]) # 获取第1,2行数据 ''' array([[9, 2, 9, 7, 5, 0], [6, 0, 8, 3, 4, 7]]) ''' arr2[1:3] # 获取多行数据 例0,2,3行数据 ''' array([[8, 8, 0, 0, 9, 2], [6, 0, 8, 3, 4, 7], [2, 7, 6, 5, 0, 9]]) ''' arr2[[0,2,3]] # 获取第2行第1列数据 arr2[2,1] # 0 # 获取多个数据 例第1行第4列、第2行第5列数据 arr2[[1,2],[4,5]] # array([5, 7]) # 获取多个数据 例第1、2行的第4、5列的数据 ''' array([[5, 0], [4, 7]]) ''' arr2[1:3,4:6] # 获取某一列数据 例第1列的全部数据 arr2[:,1] # array([8, 2, 0, 7]) # 获取多列数据 例第1、3列的全部数据 ''' array([[8, 0], [2, 7], [0, 3], [7, 5]]) ''' arr2[:,[1,3]]

扩展补充知识: 布尔索引

布尔索引通过布尔运算(如:比较运算符)来获取符合指定条件的元素的数组

复制代码
1
2
3
4
5
6
7
import numpy as np # 生成1-24的4行6列的二维数组 arr = np.arange(24).reshape((4,6)) # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) arr[arr < 10] # array([ 0, 1, 2, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,23]) arr[(arr < 5)|(arr > 10)]

例1:获取大于5的元素 

复制代码
1
2
3
4
5
import numpy as np arr = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]]) # 获取大于5的元素 # array([ 6, 7, 8, 9, 10, 11]) arr[arr > 5]

例2:过滤NaN 

复制代码
1
2
3
4
import numpy as np arr = np.array([np.nan,1,2,np.nan,3,4,5]) # array([1., 2., 3., 4., 5.]) arr[~np.isnan(arr)]

例3:使用&连接两个条件,筛选大于5且小于10的元素  

复制代码
1
2
3
4
5
import numpy as np arr = np.array([[0,1,2],[3,4,5],[6,7,8],[9,10,11]]) # 筛选大于5且小于10的元素 # array([6, 7, 8, 9]) arr[(arr > 5) & (arr < 10)]

提示

1.布尔索引是通过相同数据上的True和False来进行提取的

2.提取条件可以为一个或多个,当提取条件为多个时使用&代表且,使用|代表或

3.当提取条件为多个时,每个条件要使用圆括号括起来 

最后

以上就是虚拟母鸡最近收集整理的关于[Numpy] 数组索引和切片的全部内容,更多相关[Numpy]内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部