numpy中位操作函数和比较函数

Posted draven123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy中位操作函数和比较函数相关的知识,希望对你有一定的参考价值。

位操作函数和比较函数

位操作函数可以在整数或整数数组的位上进行操作

Key_Function

xor操作符, 当两个操作数的符号不一致时, 结果为负数

位操作符:

^ 对应bitwise_xor函数, 当两个元素的正负号不一致时, 返回是负数的那个数字

& 对二进制字节进行AND操作, 只有都是1的时候才返回1

|

<< 位的左移, 数值翻倍

>> 位的右移, 数值减半

比较运算符:

<  对应less函数, 这个就是小于符号

> 大于符号

==  等于符号

Code

import numpy as np

x = np.arange(-9, 9)
y = -x
print((x ^ y) < 0)
‘‘‘
[ True  True  True  True  True  True  True  True  True False  True  True
  True  True  True  True  True  True]
‘‘‘

print(np.less(np.bitwise_xor(x, y), 0))
‘‘‘
[ True  True  True  True  True  True  True  True  True False  True  True
  True  True  True  True  True  True]
‘‘‘

print((x & (x - 1)) == 0)   # & 为并运算, 0 1 取 1
# 在二进制数中, 2的幂数表示为一个1后面跟一连串0的形式
# 而比2的幂数小1的数表示为一串二进制1
‘‘‘
[False False False False False False False False False  True  True  True
 False  True False False False  True]
‘‘‘

print(np.equal(np.bitwise_and(x, (x - 1)), 0))
‘‘‘
[False False False False False False False False False  True  True  True
 False  True False False False  True]
 ‘‘‘
 
print(x & ((1 << 2) - 1))   
# 二进制数的位左移一位, 则数值翻倍
# [3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0]

‘‘‘
2的幂数减去1得到一串1组成的二进制数,可以作为掩码,与其他数字取AND运算
相当于加了个过滤,原值为1的还是1,原值为0的还是0
这个掩码是2位的, 那么AND运算只针对其他数字的后两位进行过滤
‘‘‘

print(np.bitwise_and(x, np.left_shift(1, 2) - 1))
# [3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0]

 

以上是关于numpy中位操作函数和比较函数的主要内容,如果未能解决你的问题,请参考以下文章

python使用numpy中的equal函数比较两个numpy数组中每个位置的元素是否相同并计算相同元素的比例

Python使用numpy包编写自定义函数计算中位数绝对偏差(MADMedian Absolute Deviation)度量数据列中数据的分散性( measures of dispersion)

使用通用函数的 Python numpy 网格转换

使用Numpy进行深度学习中5大反向传播优化算法的性能比较

第89天:NumPy 排序和筛选函数

第89天:NumPy 排序和筛选函数