📜  如何在Python中反转布尔数组的元素?

📅  最后修改于: 2022-05-13 01:55:46.827000             🧑  作者: Mango

如何在Python中反转布尔数组的元素?

给定一个布尔数组,这里的任务是反转其元素。布尔数组是只包含布尔值的数组,例如 True 或 False、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]