如何在Python中反转布尔数组的元素?
有时,任务是反转布尔数组。如果文件包含包含True或False值的列,并且需要以相反的方式使用该列的值,则通常需要使用列的相反值。例如,如果CSV文件包含Covid Negative状态的数据列,表示Covid-ve患者的True,则需要创建一个Covid + ve状态的列。在这种情况下,需要进行布尔值的数组反转。在本Python文章中,使用四个不同的示例介绍了不使用numpy或使用numpy反转布尔数组的不同方法。此外,还展示了表示原始数组和反转数组中布尔值的图形。
用于获取布尔列数据的data.csv文件
示例1:使用Numpy反转布尔数组并比较布尔值图形
算法
-
第1步: 首先导入pandas、numpy和plotly。Plotly是用于制作散点图的Python开源绘图库。
-
第2步: 现在读取data.csv文件,将其转换为dataframe,并绘制散点图,将布尔列“covidnegative”显示在Y轴上。
-
第3步: 读取布尔列值。现在,使用numpy函数将其转换为数组,然后使用numpy的invert函数反转数组。
-
第4步: 将新列“covidpositive”添加到dataframe,并添加反转值。
-
第5步: 再次绘制散点图,将布尔列“covidpositive”显示在Y轴上。
-
第6步: 编写函数以显示散点图。使用cmd窗口运行程序。图表将在浏览器的新选项卡中打开。比较两个图的y轴。
输出
在命令窗口中运行Python文件 −
以下图显示了原始数组和反转数组中布尔值的图。
示例2:使用Numpy的~反转布尔值数组
算法
-
第一步 – 首先导入pandas和numpy。
-
第二步 – 现在读取data.csv文件,将其转换为数据框,并打印数据框。
-
第三步 – 读取布尔列的值。使用numpy函数将其转换为数组,然后使用numpy的数组上的~反转数组。
-
第四步 – 在数据框中添加一个名为“covidpositive”的新列,并添加反转值。再次打印数据框。
-
第五步 – 在命令窗口中运行程序。比较原始值与反转值布尔列。
输出
在命令窗口中运行Python文件 –
示例3:使用 Numpy 的 Logical_not 反转布尔值数组
算法
-
第一步 – 首先导入pandas和numpy。
-
第二步 – 现在读取data.csv文件,并将其转换为数据框。
-
第三步 – 读取布尔列的值。使用numpy函数将其转换为数组并打印。现在使用逻辑非(logical_not)在NumPy的数组上反转数组,并再次打印数组。
-
第四步 – 在数据框中添加一个名为“covidpositive”的新列,并添加反转值。
-
第五步 – 在命令窗口中运行程序。比较原始值和两个数组中的反转值。
输出
在命令窗口中运行Python文件 –
示例4: 不使用Numpy 反转布尔值数组
算法
-
第一步 – 导入CSV,然后使用csv.DictReader读取具有布尔值列的CSV文件。
-
第二步 – 制作分别为空的数组,以容纳CSV文件的列值,并将列值附加到这些数组中。
-
第三步 – 定义一个函数“reverse_bool”,将true转换为false,false转换为true,并返回反转值。
-
第四步 – 使用map函数使用“reverse_bool”函数将每个false转换为true,true转换为false。
-
第五步 – 在命令窗口中运行程序。比较两个数组中的原始值和反转值。
输出
在命令窗口中运行Python文件 –
输出
在命令窗口中运行 python 文件 −
在这篇 Python 文章中,通过四个不同的示例,演示了反转布尔数组的方法。前三种方法使用 NumPy 的函数来反转布尔值。然后编写了一个 Python 程序,不使用 numpy 来生成反转的数组。在第一个示例中,还比较了散点图,以显示原始布尔值以及反转后的值。