如何过滤 numpy 数组(4 个示例)
您可以使用以下方法来过滤 NumPy 数组的值:
方法一:基于单一条件过滤值
#filter for values less than 5 my_array[my_array < 5 ]
方法2:使用“OR”条件过滤值
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )]
方法3:使用“AND”条件过滤值
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )]
方法4:过滤列表中包含的值
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])]
本教程解释了如何在实践中使用以下 NumPy 数组的每种方法:
import numpy as np
#create NumPy array
my_array = np. array ([1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
#view NumPy array
my_array
array([ 1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
示例1:根据条件过滤值
以下代码展示了如何根据单个条件过滤 NumPy 数组值:
#filter for values less than 5 my_array[(my_array < 5 )] array([1, 2, 2, 3]) #filter for values greater than 5 my_array[(my_array > 5 )] array([6,7,10,12,14]) #filter for values equal to 5 my_array[(my_array == 5 )] array([5])
示例2:使用“OR”条件过滤值
以下代码展示了如何使用“OR”条件过滤 NumPy 数组的值:
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )] array([ 1, 2, 2, 3, 10, 12, 14])
此过滤器返回小于 5或大于 9 的 NumPy 数组值。
示例3:使用“AND”条件过滤值
下面的代码展示了如何使用“AND”条件过滤NumPy数组的值:
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )] array([6, 7])
该过滤器从 NumPy 数组中返回大于 5且小于 9 的值。
示例4:过滤列表中包含的值
以下代码显示了如何过滤列表中包含的 NumPy 数组值:
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])] array([ 2, 2, 3, 5, 12])
该过滤器仅返回等于 2、3、5 或 12 的值。
注意:您可以在此处找到 NumPy in1d()函数的完整文档。
其他资源
以下教程解释了如何在Python中执行其他常见的过滤操作:
如何过滤包含特定字符串的 Pandas DataFrame 行
如何根据多个条件过滤 Pandas DataFrame
如何在 Pandas DataFrame 中使用“NOT IN”过滤器