如何在Python中反转布尔数组的元素?
给定一个布尔数组,这里的任务是反转其元素。布尔数组是只包含布尔值的数组,例如 True 或 False、1 或 0。
Input : A=[true , true , false]
Output: A= [false , false , true]
Input: A=[0,1,0,1]
Output: A=[1,0,1,0]
方法一:
您可以使用简单的 if else 方法来反转数组。在下面显示的实现方法中,您只需要检查数组中每个索引的值,如果值为真,则将其更改为假,否则将其更改为真。这是可用于反转布尔数组元素的最简单方法之一。
程序:
Python3
a1 = ((0, 1, 0, 1))
a = list(a1)
for x in range(len(a)):
if(a[x]):
a[x] = 0
else:
a[x] = 1
print(a)
Python
import numpy as np
a = np.array((True, True, False, True, False))
b = np.invert(a)
print(b)
Python3
a1 = ((0, 1, 0, 1))
a = list(a1)
for x in range(len(a)):
# using Tilde operator(~)
a[x] = ~a[x]
print(a)
输出:
[1, 0, 1, 0]
方法二:
您还可以使用 numpy 库的内置函数来反转整个数组。
句法:
np.invert(boolean[] a)
程序:
Python
import numpy as np
a = np.array((True, True, False, True, False))
b = np.invert(a)
print(b)
输出:
[False False True False True]
方法三:
我们还可以在计算中使用波浪号运算符( ~ ) 也称为按位否定运算符来反转给定数组。它将数字 n 作为二进制数并将所有 0 位“翻转”为 1 和 1 为 0 以获得补码二进制数。
因此,在True 或 1的布尔数组中,结果为-2 ,而False 或 0的结果为-1。再次使用 if..else 我们可以将数组转换为或所需的答案。
程序:
蟒蛇3
a1 = ((0, 1, 0, 1))
a = list(a1)
for x in range(len(a)):
# using Tilde operator(~)
a[x] = ~a[x]
print(a)
输出:
[-1, -2, -1, -2]