как найти количество строк, удовлетворяющих разным условиям на двух массивах - PullRequest
1 голос
/ 06 июля 2019

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

3 голосов
/ 06 июля 2019

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

np.sum((a == 4) & (b == 1))
1 голос
/ 06 июля 2019

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

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

0 голосов
/ 06 июля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...