http://www.runoob.com/numpy/numpy-binary-operators.html
菜鸟教程 -- 学的不仅是技术,更是梦想!
首页 HTML CSS JAVASCRIPT JQUERY BOOTSTRAP SQL MYSQL PHP PYTHON2 PYTHON3 C C++ C# JAVA 本地书签 我的圈子
NumPy 教程
NumPy 教程NumPy 安装NumPy Ndarray 对象NumPy 数据类型NumPy 数组属性NumPy 创建数组NumPy 从已有的数组创建数组NumPy 从数值范围创建数组NumPy 切片和索引NumPy 高级索引NumPy 广播(Broadcast)NumPy 迭代数组Numpy 数组操作NumPy 位运算NumPy 字符串函数NumPy 数学函数NumPy 算术函数NumPy 统计函数NumPy 排序、条件刷选函数NumPy 字节交换NumPy 副本和视图NumPy 矩阵库(Matrix)NumPy 线性代数NumPy IONumPy Matplotlib
Numpy 数组操作
NumPy 字符串函数
NumPy 位运算
NumPy "bitwise_" 开头的函数是位运算函数。
NumPy 位运算包括以下几个函数:
函数描述bitwise_and对数组元素执行位与操作bitwise_or对数组元素执行位或操作invert按位取反left_shift向左移动二进制表示的位right_shift向右移动二进制表示的位
注:也可以使用 "&"、 "~"、 "|" 和 "^" 等操作符进行计算。
bitwise_and
bitwise_and()函数对数组中整数的二进制形式执行位与运算。
实例
import numpy as np print ('13 和 17 的二进制形式:') a,b = 13,17 print (bin(a), bin(b)) print ('\n') print ('13 和 17 的位与:') print (np.bitwise_and(13, 17))
输出结果为:
13 和 17 的二进制形式:
0b1101 0b10001
13 和 17 的位与:
1
以上实例可以用下表来说明:
1101AND 10001运算结果00001
位与操作运算规律如下:
ABAND111100010000
bitwise_or
bitwise_or()函数对数组中整数的二进制形式执行位与运算。
实例
import numpy as np a,b = 13,17 print ('13 和 17 的二进制形式:') print (bin(a), bin(b)) print ('13 和 17 的位或:') print (np.bitwise_or(13, 17))
输出结果为:
13 和 17 的二进制形式:
0b1101 0b10001
13 和 17 的位或:
29
以上实例可以用下表来说明:
1101OR 10001运算结果11101
位或操作运算规律如下:
ABOR111101011000
invert
invert() 函数对数组中整数进行位取反运算,即 0 变成 1,1 变成 0。
对于有符号整数,取该二进制数的补码,然后 +1。二进制数,最高位为0表示正数,最高位为 1 表示负数。
看看 ~1 的计算步骤:
表达式 二进制值(2 的补数) 十进制值500000000 00000000 00000000 00000105~511111111 11111111 11111111 11111010-6
将1(这里叫:原码)转二进制 = 00000001按位取反 = 11111110发现符号位(即最高位)为1(表示负数),将除符号位之外的其他数字取反 = 10000001末位加1取其补码 = 10000010转换回十进制 = -2
实例
import numpy as np print ('13 的位反转,其中 ndarray 的 dtype 是 uint8:') print (np.invert(np.array([13], dtype = np.uint8))) print ('\n') # 比较 13 和 242 的二进制表示,我们发现了位的反转 print ('13 的二进制表示:') print (np.binary_repr(13, width = 8)) print ('\n') print ('242 的二进制表示:') print (np.binary_repr(242, width = 8))
输出结果为:
13 的位反转,其中 ndarray 的 dtype 是 uint8:
[242]
13 的二进制表示:
00001101
242 的二进制表示:
11110010
left_shift
left_shift() 函数将数组元素的二进制形式向左移动到指定位置,右侧附加相等数量的 0。
实例
import numpy as np print ('将 10 左移两位:') print (np.left_shift(10,2)) print ('\n') print ('10 的二进制表示:') print (np.binary_repr(10, width = 8)) print ('\n') print ('40 的二进制表示:') print (np.binary_repr(40, width = 8)) # '00001010' 中的两位移动到了左边,并在右边添加了两个 0。
输出结果为:
将 10 左移两位:
40
10 的二进制表示:
00001010
40 的二进制表示:
00101000
right_shift
right_shift() 函数将数组元素的二进制形式向右移动到指定位置,左侧附加相等数量的 0。
实例
import numpy as np print ('将 40 右移两位:') print (np.right_shift(40,2)) print ('\n') print ('40 的二进制表示:') print (np.binary_repr(40, width = 8)) print ('\n') print ('10 的二进制表示:') print (np.binary_repr(10, width = 8)) # '00001010' 中的两位移动到了右边,并在左边添加了两个 0。
输出结果为:
将 40 右移两位:
10
40 的二进制表示:
00101000
10 的二进制表示:
00001010
Numpy 数组操作
NumPy 字符串函数
写笔记...
分享笔记
昵称 (必填)邮箱 (必填)引用地址
分类导航
HTML / CSSJavaScript服务端数据库移动端XML 教程ASP.NETWeb Service开发工具网站建设
Advertisement
反馈/建议反馈/建议
在线实例
·HTML 实例
·CSS 实例
·JavaScript 实例
·Ajax 实例
·jQuery 实例
·XML 实例
·Java 实例
字符集&工具
· HTML 字符集设置
· HTML ASCII 字符集
· HTML ISO-8859-1
· HTML 实体符号
· HTML 拾色器
· JSON 格式化工具
最新更新
· Python 实现秒表...
· 关于程序员鄙视链
· 1.10 基数排序
· 1.9 桶排序
· 1.8 计数排序
· 1.7 堆排序
· 1.6 快速排序
站点信息
· 意见反馈
· 合作联系
· 免责声明
· 关于我们
· 文章归档
关注微信
Copyright © 2013-2019 菜鸟教程 runoob.com All Rights Reserved. 备案号:闽ICP备15012807号-1
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。