PY自学笔记——Numpy基础 布尔索引

  • 布尔索引

 设置一个存储名称的数组(含有重复项a的)

和一个存储数据的数组

names = np.array(['a','b','c','d','a','a'])

data = np.arange(18).reshape(6,3)


array([[0,1,2],
      [3,4,5],
      [6,7,8],
      [9,10,11],
      [12,13,14],
      [15,16,17]])

假设每一个名称都对应这数组的一个行,想要找出对应a的所有行

names == 'a'

#array([True,False,False,False,True,True]], dtype=bool)

data[names == 'a']


array([[0,1,2],
      [12,13,14],
      [15,16,17]])

 可以进行反选

name != 'a'

data[names!='a']
#或者
data[~(names == 'a')]

array([[3,4,5],
      [6,7,8],
      [9,10,11]])

如果需要多个组合时,可以用多个布尔条件

同样可以用和,或之类的布尔运算符(& |)

注意的是,python中的关键字 and 和 or 在布尔型的数组中无效

index = (names == 'a')|(names == 'b')

data[index]

array([[0,1,2],
      [3,4,5],
      [12,13,14],
      [15,16,17]])

a = np.arange(10).reshape(-1,5)
array([[0, 1, 2, 3, 4],
         [5, 6, 7, 8, 9]])


a[a>6]
array([7, 8, 9])

reshape(-1,5)

这个是对前面创建的一维数组进行重塑运算

-1表示该维度大小由其他未对和原始数组的长度自动推断而出的

a[2::2.::2]

行从第二行开始(第一个2)

隔一个,取下一个(第二个2)

列也是隔一个,取下一个(第三个2)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值