概述
关于pandas或numpy中 bool 类型运算
- or 和 and 运算
- 异或运算
- 取反
or 和 and 运算
pandas 或 numpy 中,bool类别,or
和 and
操作和常规操作是一样(需使用操作符 |
和 &
,否则报错)
import pandas as pd
import numpy as np
a = np.array([True, True, False, False, False])
b = np.array([True, False,True, True, False])
print(a | b)
#[ True
True
True
True False]
print(a & b)
#[ True False False False False]
异或运算
异或运算在 numpy 或 pandas 下操作都是有效的;
xor_in = a ^ b
print(xor_in)
#[False
True
True
True False]
异或在需求上,可用于获取只存在于 a 或 b 其一数据中的数据
only_a_in = xor_in & a
#只存在于 a
only_b_in = xor_in & b
#只存在于 b
取反
在 numpy 或 pandas 下都可以使用 np.bitwise_*
函数,且返回的结果不改变原有结果
any_in = a | b
not_in = np.bitwise_not(any_in)
print(not_in)
#[False False False False
True]
print(np.bitwise_not(pd.DataFrame(any_in)))
#
0
# 0
False
# 1
False
# 2
False
# 3
False
# 4
True
因此 pandas 的 DataFrame
和 Series
格式下的 bool 类型取反,均可直接使用 np.bitwise_not
函数,且不改变其格式;
对于 &
、|
和 ^
都是可以使用 np.bitwise_and
、np.bitwise_or
和 np.bitwise_xor
替换相对应的操作符,对于速度来说,操作符显然是更快,但对于 bool 取反,则只能使用 np.bitwise_not
;
注意:在一些操作系统中,np.bitwise_xor(a, b) 可能会修改 b 的元素,曾在公司的mac上遇到此问题,但个人电脑上未发现此问题,因此使用该函数做 异或 需多加检查;
最后
以上就是无聊大门为你收集整理的关于pandas或numpy中 bool 类型运算的全部内容,希望文章能够帮你解决关于pandas或numpy中 bool 类型运算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复