NumPy - 位操作

下面是 NumPy 包中可用的位操作函数。

序号 操作及描述
1. bitwise_and 对数组元素执行位与操作
2. bitwise_or 对数组元素执行位或操作
3. invert 计算位非
4. left_shift 向左移动二进制表示的位
5. right_shift 向右移动二进制表示的位

bitwise_and

通过np.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

你可以使用下表验证此输出。 考虑下面的位与真值表。

A B AND
1 1 1
1 0 0
0 1 0
0 0 0
    1 1 0 1
AND
  1 0 0 0 1
result 0 0 0 0 1

bitwise_or

通过np.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

你可以使用下表验证此输出。 考虑下面的位或真值表。

A B OR
1 1 1
1 0 1
0 1 1
0 0 0
    1 1 0 1
OR
  1 0 0 0 1
result 1 1 1 0 1

invert

此函数计算输入数组中整数的位非结果。 对于有符号整数,返回补码。

例子

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

请注意,np.binary_repr()函数返回给定宽度中十进制数的二进制表示。

left_shift

numpy.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

numpy.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位操作的更多相关文章

  1. NumPy教程目录

    NumPy Ndarray对象 NumPy数组属性 NumPy数据类型 NumPy数组创建例程 NumPy来自现有数据的数组 NumPy来自数值范围的数组 NumPy切片和索引 NumPy - 高级索 ...

  2. Python之Numpy详细教程

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前 ...

  3. 安装numpy

    为了运行机器学习书上的实例,安装numpy.照着网上教程安装的,网上教程 1)下载numpy包 下载地址:https://pypi.python.org/pypi/numpy/#downloads 自 ...

  4. numpy安装-【老鱼学numpy】

    要玩numpy,就得要安装numpy. 安装python 3.6.3 64位 首先需要安装python,安装python的具体方法这里就不细讲了. 可以到官网上下载相应的python版本就可以了,目前 ...

  5. numpy学习笔记(三)

    (1)numpy的位操作 序号         操作及描述 1.      bitwise_and 对数组元素执行位与操作 2.      bitwise_or 对数组元素执行位或操作 3.      ...

  6. Python numpy 安装以及处理报错 is not a supported wheel on this platform

    1.    安装 1)去这里搜索https://pypi.org/ 2)搜索框输入numpy 3)一般第一个就是搜索到的 4)点进去 5) Download files 点进去,找自己的版本 6)nu ...

  7. numpy函数查询手册

    写了个程序,对Numpy的绝大部分函数及其说明进行了中文翻译. 原网址:https://docs.scipy.org/doc/numpy/reference/routines.html#routine ...

  8. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  9. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

随机推荐

  1. HDU 5157 Harry and magic string(回文树)

    Harry and magic string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  2. k8s更新Pod镜像

    实际使用k8s中,如果使用RC启动pod可以直接使用滚动更新进行pod版本的升级,但是我们使用的情况是在pod里面启动有状态的mysql服务,没有和RC进行关联,这样更新的时候只能通过 更新pod的配 ...

  3. 程序运行时 0xC0000005: 读取位置 0x00000000 时发生访问冲突 ,可能是 com 组件引入各种问题

    在使用com组件事,可能引入很多不是问题的问题,比如CString 定义出运行时出错等等,这些问题解决的办法就是初始化组件 然后释放组件, 在使用组件时,如果仅仅用在按钮事件或者别的mfc 对话框类里 ...

  4. Checksum 磁盘扇区故障检测

    w https://en.wikipedia.org/wiki/Checksum https://zh.wikipedia.org/wiki/校验和 A checksum is a small-siz ...

  5. pytho创建二维码简单版

    pytho创建二维码简单版 import qrcode aa = qrcode.make("https://github.com/phygerr/") aa.save('C:\Us ...

  6. Scrapy(爬虫)基本运行机制

    Scrapy(爬虫)基本运行机制

  7. 多线程threading.local的作用及原理?

    1.示例代码 import time import threading v = threading.local() def func(arg): # 内部会为当前线程创建一个空间用于存储:phone= ...

  8. 我的Android进阶之旅------>Android关于HttpsURLConnection一个忽略Https证书是否正确的Https请求工具类

    下面是一个Android HttpsURLConnection忽略Https证书是否正确的Https请求工具类,不需要验证服务器端证书是否正确,也不需要验证服务器证书中的域名是否有效. (PS:建议下 ...

  9. 设置EditText明文切换

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mingyue_1128/article/details/37651793 if (!isChecke ...

  10. Python(调用函数、定义函数)

    函数的返回值: return 值:只能返回一次,只要执行return函数就终止 返回值:没有类型限制,也没有个数限制 没有return:None 返回一个值 返回多个值:元组 先定义,后使用,定义阶段 ...