加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Numpy 位运算分析

发布时间:2023-07-03 09:20:16 所属栏目:教程 来源:
导读:在Numpy中,以 bitwise_ 开头的函数是位运算函数。Numpy 位运算包括以下几个函数:

函数 描述
bitwise_and 对数组元素执行位与操作
bitwise_or 对数组元素执行位或操作
invert 按位取反
left_shi
在Numpy中,以 bitwise_ 开头的函数是位运算函数。Numpy 位运算包括以下几个函数:

函数    描述
bitwise_and    对数组元素执行位与操作
bitwise_or    对数组元素执行位或操作
invert    按位取反
left_shift    向左移动二进制表示的位
right_shift    向右移动二进制表示的位

1. 位运算
与普通运算不同,位运算是发生在二进制形式之间的,因此在演示位运算之前,先将数据进行十进制到二进制的转换。

1.1 numpy.bitwise_and函数
numpy.bitwise_and 函数对数组中整数的二进制形式执行位与运算。

案例
查看两个整数的位与运算结果:

a, b = , print(np.bitwise_and(a, b))

先看看a和b的转换为二进制的结果:

print(a 的二进制为:, bin(a))print(b 的二进制为:, bin(b))
打印结果为:

a 的二进制为: 
b 的二进制为:
a和b的位与运算可以用下表来说明:

a    0    1    1    0    1
b    1    0    0    0    1
AND    0    0    0    0    1
00001 转化为 2 进制为 1。

1.2 numpy.bitwise_or 函数
numpy.bitwise_or 函数对数组中整数的二进制形式执行位或运算。

案例
查看两个整数的位或运算结果:

print(np.bitwise_or(a, b))

a和b的位或运算可以用下表来说明:

a    0    1    1    0    1
b    1    0    0    0    1
OR    1    1    1    0    1
11101转化为十进制是24+23+22+1=29

1.3 numpy.invert函数
numpy.invert函数对数组中整数进行位取反运算,即 0 变成 1,1 变成 0。

对于有符号整数,取该二进制数的补码,然后 加1。二进制数,最高位为0表示正数,最高位为 1 表示负数。

如下是 ~1 的计算步骤:

将**1**(这里叫:原码)转二进制 = 00000001;

按位取反 = 11111110;

发现符号位(即最高位)为**1**(表示负数),将除符号位之外的其他数字取反 = 10000001;

末位加1取其补码 = 10000010;

转换回十进制 = -2。

本小节讲解了 Numpy 中常用的位运算,与普通运算不同,位运算是发生在二进制形式之间的,读者可通过观察二进制的转化过程进行学习。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章