Numpy数据选择
通过上一节python学会如何创建数组后,我们发现,在实际操作中经常面临数据选择的问题,选择其中某个数据或其中某部分数据或其中某些符合要求的数据。
因此,本节主要介绍数据选择的基本操作。
选取数据
⭕array[]
例1: 创建数组b=[[1,2,3,4],[5,6,7,8],[9,10,11,12]],分别抽取:
①第1行数据
②第二行第1列的数据
③第二行第三列和第三行第四列的数据
import numpy as np
b=np.array[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
print("①:",b[0])
print("②:",b[1,0])
print("③:",b[[1,2],[2,3]])#注意这个,抽取的是b[1,2]和b[2,3]
划分数据
⭕array[a:b,c:d]
上述语法需注意:右边为开区间。意思为选取从a行到b-1行,c列到d-1列的数据。
例2: 根据数组b,分别选取:
①前两行的数据
②前两行前三列的数据
③第二行和第三行的倒数两列的数据
print("①:",b[:2])
print("②:",b[:2,:3])
print("③:",b[1:3,-2:])
筛选数据
⭕array[array>y]
⭕np.where(array,array>y) #功能强大,可以替换满足条件或不满足条件的数
要筛选数据,条件一定要明确!!!
例3: 筛选数组b中大于6的数,并将:
①静态替换:大于6的数字全部替换为-1
②动态替换:大于6的数字全部取负再减1
print("最简单的筛选:",b[b>6])
#替换操作需要用到np.where(),引入变量condition
condition=b>6
print("静态替换:",np.where(condition,-1,b))
a=-b-1
print("动态替换:",np.where(condition,a,b))
狠狠掌握三道例题吧!!