不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

总结3类方法Numpy获取数组中的元素

1. 本文介绍

前面我借着3个函数,为大家讲述了数组与列表的相互转化,数组的数据类型转化,以及如何改变ndarray数组的形状。
今天黄同学就为大家介绍以下内容:
  • Ⅰ 普通索引+切片;
  • Ⅱ 通过整数数组进行索引(这个比较有用);
  • Ⅲ 通过布尔数组进行索引;

2. 普通索引+切片

这里构造一个数组:
a = np.arange(1,13,1).reshape(3,4)
print(a)
结果如下:
获取某一个元素,有如下两种方式:
a[1][2]
a[1,2]
结果如下:
获取某一行元素,也有如下两种方式:
a[1])
a[1,:]
结果如下:
获取某一列元素:
a[:,1]
结果如下:

3. 通过整数数组进行索引

  • 当要选取的元素不连续时,可以提供一个索引数组来选择(或修改)对应索引位置的元素。
  • 通过整数数组索引,返回的是原数组的拷贝,而不是视图。
构造一个数组:
a = np.arange(1,21,1).reshape(5,4)
print(a)
结果如下:
选取数组a中的第2、第4、第5行数据:
a[[1,3,4]]
结果如下:
a = np.arange(1,21,1).reshape(5,4)
print(a)b = a[[1,3]]
print(b)b[1,2] = 888
print(b)
print(a)

结果如下:
可以看出:当返回的是原数组的拷贝的时候,相当于将原始数组复制了一份,在内存中重新开辟了一块儿空间,存储起来了。因此,当我修改任何一个数组,相互之间没有任何影响。

4. 通过布尔数组进行索引

  • 含义:我们可以提供一个布尔类型的数组(A),然后通过该数组(A)来对另外一个数组(B)进行索引(元素选取)。索引的原则为:如果为True,则选取对应位置的元素,否则不选取。
  • 作用:通过布尔类型的数组进行索引是常见且实用的操作,我们通常用来进行元素选择(或过滤)操作。
① 通过布尔数组取一维数组中的元素
a = np.array([17,19,32,13,27,10,40])
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)

结果如下:
② 通过布尔数组取二维数组中的元素
b = np.arange(10,30).reshape(5,4)
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)

结果如下:
③ 构造布尔数组的几种常用的运算符
再看看下面几个例子:
c = np.array([15,18,19,23,24,28,30,35,37,40,41,45])
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)

结果如下:
④ 取出两个数组中相同的元素
a = np.array([1, 3, 9, 10])
b = np.array([1, 8, 6, 10])# 对应位置的元素,会进行比较;
print(a[a == b])
结果如下:
赞(0) 打赏
未经允许不得转载:seo优化_前端开发_渗透技术 » 总结3类方法Numpy获取数组中的元素

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏