Вопрос по использованию функции numpy "where" - PullRequest
0 голосов
/ 08 марта 2019

Итак, я пытаюсь изучить Python и некоторые характеристики. В одном примере кода о F-тесте это появляется.

np.random.seed(12)

# Generate random data

voter_race = np.random.choice(a= races, p = [0.05, 0.15 ,0.25, 0.05, 0.5], size=1000)



# Use a different distribution for white ages

white_ages = stats.poisson.rvs(loc=18, mu=32, size=1000)

voter_age = stats.poisson.rvs(loc=18, mu=30, size=1000)

voter_age = np.where(voter_race=="white", white_ages, voter_age)


# Group age data by race

voter_frame = pd.DataFrame({"race":voter_race,"age":voter_age})

groups = voter_frame.groupby("race").groups


# Extract individual groups

asian = voter_age[groups["asian"]]

black = voter_age[groups["black"]]

hispanic = voter_age[groups["hispanic"]]

other = voter_age[groups["other"]]

white = voter_age[groups["white"]]


# Perform the ANOVA

stats.f_oneway(asian, black, hispanic, other, white)

В жирном коде, почему voter_race появляется дважды, и почему white_ages также в коде np.where?

1 Ответ

0 голосов
/ 08 марта 2019

np.where возвращает x или y (второй или третий параметр) в зависимости от того, является ли первый параметр условия истинным или нет.Если условие истинно, верните x, иначе верните y.Документация для этой функции довольно хороша.

Таким образом, оператор np.where здесь вернет white_ages, если voter_race "white", в противном случае он вернет voter_age.

ТакжеНи один из вашего кода не выделен жирным шрифтом, к вашему сведению.

...