numpy矩阵位运算

http://www.runoob.com/numpy/numpy-binary-operators.html

菜鸟教程 -- 学的不仅是技术,更是梦想!

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

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

  1101
AND
 10001
运算结果00001

位与操作运算规律如下:

ABAND
111
100
010
000

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

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

  1101
OR
 10001
运算结果11101

位或操作运算规律如下:

ABOR
111
101
011
000

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 / CSS
  • JavaScript
  • 服务端
  • 数据库
  • 移动端
  • XML 教程
  • ASP.NET
  • Web 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

NumPy是Python中用于科学计算的重要库之一,其中的ndarray对象能够高效处理大规模数组数据。下面介绍一些常见的numpy矩阵运算。 1. 创建矩阵 可以使用numpy中的array函数来创建矩阵,例如: ```python import numpy as np # 创建一个2x3的矩阵 A = np.array([[1, 2, 3], [4, 5, 6]]) ``` 2. 矩阵加法和减法 矩阵加法和减法需要两个矩阵形状相同,可以直接使用加法和减法运算符,例如: ```python import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) C = A + B # 矩阵加法 D = A - B # 矩阵减法 print(C) # [[ 6 8] # [10 12]] print(D) # [[-4 -4] # [-4 -4]] ``` 3. 矩阵乘法 矩阵乘法有两种方式:点积和矩阵乘法。点积是两个矩阵对应元素相乘再相加的结果,可以使用numpy中的dot函数实现。矩阵乘法是指两个矩阵的乘积,需要满足第一个矩阵的列数等于第二个矩阵的行数,可以使用numpy中的matmul函数实现。 ```python import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) # 点积 C = np.dot(A, B) # 矩阵乘法 D = np.matmul(A, B) print(C) # [[19 22] # [43 50]] print(D) # [[19 22] # [43 50]] ``` 4. 矩阵转置 可以使用numpy中的transpose函数或者T属性来将矩阵转置。 ```python import numpy as np A = np.array([[1, 2], [3, 4]]) # 转置 B = np.transpose(A) C = A.T print(B) # [[1 3] # [2 4]] print(C) # [[1 3] # [2 4]] ``` 这些是numpy中的常见矩阵运算,当然还有很多其他的操作,可以参考官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值