Пусть говорит, что у нас есть два 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.

1
Asis 6 Июл 2019 в 03:11

3 ответа

Лучший ответ

Вы должны использовать что-то вроде

np.sum((a == 4) & (b == 1))
3
Robin Nicole 6 Июл 2019 в 00:16

Это похоже на фильтрацию ваших списков в пару в том же списке.

Вы пробовали 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

Надеюсь это поможет :))

0
Joe 6 Июл 2019 в 00:26

Вы можете попробовать основы 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) )

Я надеюсь, что это может помочь вам.

1
Rahul charan 6 Июл 2019 в 06:01