其他
Numpy获取数组中的元素,我总结了3类方法!
The following article is from 数据分析与统计学之美 Author 黄伟呢
文 | 黄伟呢
出品 | 数据分析与统计学之美(ID:huang_superme)
1. 本文介绍
前面我借着3个函数,为大家讲述了数组与列表的相互转化,数组的数据类型转化,以及如何改变ndarray数组的形状。今天黄同学就为大家介绍以下内容:Ⅰ 普通索引+切片; Ⅱ 通过整数数组进行索引(这个比较有用); Ⅲ 通过布尔数组进行索引;
2. 普通索引+切片
这里构造一个数组:print(a)
a[1,2]
a[1,:]
3. 通过整数数组进行索引
当要选取的元素不连续时,可以提供一个索引数组来选择(或修改)对应索引位置的元素。 通过整数数组索引,返回的是原数组的拷贝,而不是视图。
print(a)
print(a)
b = a[[1,3]]
print(b)
b[1,2] = 888
print(b)
print(a)
4. 通过布尔数组进行索引
含义:我们可以提供一个布尔类型的数组(A),然后通过该数组(A)来对另外一个数组(B)进行索引(元素选取)。索引的原则为:如果为True,则选取对应位置的元素,否则不选取。 作用:通过布尔类型的数组进行索引是常见且实用的操作,我们通常用来进行元素选择(或过滤)操作。
① 通过布尔数组取一维数组中的元素
print(a)
a1 = a[[True,True,False,True,False,False,True]]
print(a1)
bool_index = a > 15
print(bool_index)
a2 = a[bool_index]
print(a2)
② 通过布尔数组取二维数组中的元素
print(b)
# 这个表示选取第1,2,4行;
b1 = b[[True,True,False,True,False]]
print(b1)
bool_index = b > 20
print(bool_index)
b2 = b[bool_index]
print(b2)
③ 构造布尔数组的几种常用的运算符
再看看下面几个例子:print(c)
c1 = c[c>25]
print(c1)
c2 = c[(c>20) & (c<35)]
print(c2)
c3 = c[(c<20) | (c>40)]
print(c3)
c4 = c[~(c>40)]
print(c4)
④ 取出两个数组中相同的元素
b = np.array([1, 8, 6, 10])
# 对应位置的元素,会进行比较;
print(a[a == b])
关注视频号,参与留言送书活动
推荐阅读:
到底该选择32位还是64位版本的Office?微软为你解答疑惑
漫话:如何给女朋友解释为什么Java 中"1000==1000"为false,而"100==100"为true?