Skip to main content
 首页 » 编程设计

Python之在满足多个条件的NumPy数组中选择行

2025年05月04日2998°冷暖

我的程序包含许多不同的 NumPy 数组,每个数组中都有各种数据。一个数组的例子是:

x = [5, 'ADC01', Input1, 25000], # Where [TypeID, Type, Input, Counts] 
    [5, 'ADC01', Input2, 40000] 

我可以从单独的数组中检索 Type 和 Input 的值。然后我需要说

Counts = x[0,3] 其中 Type = 'ADC01' 和 Input = 'Input2'

显然不会这样写。对于我只需要满足一个条件的时间,我使用了:

InstType_ID = int(InstInv_Data[InstInv_Data[:,glo.inv_InstanceName] == Instrument_Type_L][0,glo.inv_TypeID]) 

在这里,它在数组 (InstInv_Data) 中的“InstanceName”列中查找并找到与 Instrument_Type 的匹配项。然后它将“TypeID”列分配给 InstType_ID。我基本上想添加一个 和 语句,以便它还在另一列中查找另一条匹配的数据。

编辑:我只是认为我可以尝试分两个单独的步骤来完成。返回 Input 和 Counts 列,其中 Type-Column = Type。但是,我不确定如何实际返回两列,而不是特定的一列。像这样:

Intermediate_Counts = (InstDef_Data[InstDef_Data[:,glo.i_Type] == Instrument_Type_L][0,(glo.i_Input, glo.i_Counts]) 

请您参考如下方法:

您可以使用 a & b 对两个 bool 数组 a、b 执行元素级 AND:

selected_rows = x[(x[:,1] == 'ADC01') & (x[:,2] == 'Input2')] 

同样,使用a | b 表示 OR,~a 表示 NOT。