按位或(“|”) and 按位与(“&”)

在python和numpy中

一、按位与(&):

元素类型为布尔值或者可以隐式转换为布尔值,
整数:  非0  视为True ;  0  视为False,
按照元素逐个进行逻辑与的规则.

元素与元素之间按照二进制进行按位与的规则

按位与的规则:
只有两个操作数都为True,结果为Ture,
只要两个操作数中有一个为False,结果为False

二、按位或(|)

整数:  非0  视为true ;  0  视为False,
按照元素逐个进行按位或的规则.

元素与元素之间按照二进制进行按位或的规则

按位或的规则:
只有当两个操作数都是False时结果是False
只要两个操作数中有一个为True,结果为True,

三、示例

import numpy as np

a = np.array([0, 0, 1, 0])
b = np.array([0, 1, 1, 0])

print(a & b)
print(a | b)

输出:[0 0 1 0]
[0 1 3 0]

按位或 (|) 运算:
a[0] | b[0]:0 | 0 → 0
a[1] | b[1]:0 | 1 → 1
a[2] | b[2]:1 | 3 → 0001 | 0011 → 0011 → 3 (二进制: 0001 与 0011 结果为 0011,即十进制 3)
a[3] | b[3]:0 | 0 → 0

按位与 (&) 运算:
a[0] & b[0]:0 & 0 → 0
a[1] & b[1]:0 & 1 → 0
a[2] & b[2]:1 & 3 → 0001 & 0011 → 0001 → 1
a[3] & b[3]:0 & 0 → 0

四、总结:

对于布尔值而非数值:非0可以替换为True,0可以替换为False。

&操作:当对应整数均非0时,会保留较小的非0整数

当对应整数有一个为0时,返回0。

|操作:当对应整数均为非0时,会保留较大的非0整数。

对应整数存在一个非0时会保留非0整数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值