如何过滤 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”过滤器

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注