Numpy 布尔索引

import numpy as np
#布尔型索引
names = np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe'])
dataSet= np.array([1,1,1,1,1,1,1])
data = np.random.randn(7,4)#生成7行四列的正态分布的随机数
print data
# print names == 'Bob'#产生一个布尔型数组,其中这个布尔型数组可以进行索引
#布尔型数组的长度必须跟被索引轴的长度一样
print "names为Bob的索引值"
print data[names == 'Bob']
#此外布尔型数组还可以跟切片,整数混合使用
print "混合使用"
print data[names == 'Bob',2:]
print data[names == 'Bob',3]
#选择除‘Bob’以外的其他值,既可以使用不等于(!=), 也可以使用(-)对条件进行否定
print names != 'Bob'
print data[-(names == 'Bob')]
#选取这三个名字中的两个需要组合应用多个布尔条件,使用&(和)、|(或)之类的布尔条件即可
#通过布尔型索引取的数据,将总是创建数据的副本,即使返回结果一模一样的数组也是rci、
#Python 关键字and or 在布尔型数组中无效
mask = (names == 'Bob') | (names == 'Will')
print mask
print data[mask]
#通过布尔型数组设置值是一种常用的手段,为了将data中所有负值都设为0,我们只需要
data[data<0] = 0
print data
#通过一维布尔数组设置整行或列的值也很简单
data[names != 'Joe'] = 7
print data

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值