我是靠谱客的博主 无聊大门,最近开发中收集的这篇文章主要介绍关于pandas或numpy中 bool 类型运算,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于pandas或numpy中 bool 类型运算

            • or 和 and 运算
            • 异或运算
            • 取反

or 和 and 运算

pandasnumpy 中,bool类别,orand 操作和常规操作是一样(需使用操作符 |&,否则报错)

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]
异或运算

异或运算在 numpypandas 下操作都是有效的;

xor_in = a ^ b
print(xor_in)
#[False
True
True
True False]

异或在需求上,可用于获取只存在于 ab 其一数据中的数据

only_a_in = xor_in & a
#只存在于 a
only_b_in = xor_in & b
#只存在于 b
取反

numpypandas 下都可以使用 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

因此 pandasDataFrameSeries 格式下的 bool 类型取反,均可直接使用 np.bitwise_not 函数,且不改变其格式;
对于 &|^ 都是可以使用 np.bitwise_andnp.bitwise_ornp.bitwise_xor 替换相对应的操作符,对于速度来说,操作符显然是更快,但对于 bool 取反,则只能使用 np.bitwise_not

注意:在一些操作系统中,np.bitwise_xor(a, b) 可能会修改 b 的元素,曾在公司的mac上遇到此问题,但个人电脑上未发现此问题,因此使用该函数做 异或 需多加检查;

最后

以上就是无聊大门为你收集整理的关于pandas或numpy中 bool 类型运算的全部内容,希望文章能够帮你解决关于pandas或numpy中 bool 类型运算所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部