如何在两个numpy数组上查找满足不同条件的行数

时间:2019-07-06 00:11:02

标签: python arrays numpy

让我们说我们有两个numpy数组作为a = [4, 5, 8, 10, 4, 8, 4]b = [1, 0, 1, 1, 1, 0, 0]。 我们必须找到第一个数组元素为4而第二个数组元素为1的行数。

4,1
5,0
8,1
10,1
4,1
8,0
4,0

在此为2,因为有两行,其中第一个元素为4,第二个元素为1。

3 个答案:

答案 0 :(得分:3)

您应该使用类似

np.sum((a == 4) & (b == 1))

答案 1 :(得分:1)

您可以尝试python的基础知识:-

import numpy as np
a = np.array([4, 5, 8, 10, 4, 8, 4])
b = np.array([1, 0, 1, 1, 1, 0, 0])
new_pair = []
for a_value, b_value in zip(a,b):
    if a_value==4 and b_value==1:
        new_pair.append([a_value,b_value])
print( len(new_pair) )

希望对您有帮助。

答案 2 :(得分:0)

这就像将您的列表过滤到同一列表中的配对中。

您是否在熊猫中尝试过isin()方法?

import pandas as pd
df = pd.DataFrame({'List_1': a, 'List_2':b})

df_list = [] 

for i in range(0,len(a)):
    df = df.loc[df['List_1'].isin([a[i]])]
    df = df.loc[df['List_2'].isin([b[i]])]
    df_list.append(df)

#your df_list will now have the values as you need

希望这会有所帮助:))