前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >numpy矩阵位运算

numpy矩阵位运算

作者头像
用户7886150
修改2020-12-25 10:12:53
9890
修改2020-12-25 10:12:53
举报
文章被收录于专栏:bit哲学院

参考链接: Numpy 字符串运算

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 的位与:

以上实例可以用下表来说明: 

  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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
网站建设
网站建设(Website Design Service,WDS),是帮助您快速搭建企业网站的服务。通过自助模板建站工具及专业设计服务,无需了解代码技术,即可自由拖拽模块,可视化完成网站管理。全功能管理后台操作方便,一次更新,数据多端同步,省时省心。使用网站建设服务,您无需维持技术和设计师团队,即可快速实现网站上线,达到企业数字化转型的目的。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档