numpy 布尔索引

 一,ndarray 与条件运算符

# 导入 numpy 库
import numpy as np

# 创建一个 ndarray 类型数组
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# 获取 arr 与条件运算符的运算结果
out = arr < 5

# 打印运算结果 out
print(out)

 运行结果:

[ True  True  True  True False False False False False False]

 可见,arr < 5 的返回值是一个与 arr 相同规模的布尔数组,当 arr 中的元素符合条件时,布尔数组的对应元素为 True,否则为False。这就是所谓的布尔索引。当然,布尔索引可以自行创建,只要规模和原数组相同即可,并非一定要借助条件运算符。

二,通过布尔索引访问 ndarray

# 导入 numpy 库
import numpy as np

# 创建一个 ndarray 类型数组
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# 创建布尔索引
idx_bool = np.array([True,True,True,True,False,False,False,False,False,False])

#通过布尔索引访问 arr
arr[idx_bool] = 99

# 打印 arr
print(arr)

 运行结果:

[99 99 99 99  5  6  7  8  9 10]

可见,布尔索引的元素为 True 时,arr 的对应元素被访问。当布尔索引的元素为 False 时,arr 的对应元素未被访问。

而如果直接将数组的布尔索引访问结果返回,则会生成一个新的 ndarray。

# 导入 numpy 库
import numpy as np

# 创建一个 ndarray 类型数组
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# 创建布尔索引
idx_bool = np.arrat([True,True,True,True,False,False,False,False,False,False])

#通过布尔索引访问 arr
arr_2 = arr[idx_bool]

# 打印 arr_2
print(arr_2)

运行结果:

[1 2 3 4]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值