diff --git a/openfisca_france/model/prestations/logement_social.py b/openfisca_france/model/prestations/logement_social.py index 9bdd11b705..d2b3deb88c 100644 --- a/openfisca_france/model/prestations/logement_social.py +++ b/openfisca_france/model/prestations/logement_social.py @@ -1,4 +1,4 @@ -import numpy +from numpy import char, isin, logical_not as not_, select from openfisca_core.indexed_enums import Enum from openfisca_core.periods import MONTH @@ -67,10 +67,10 @@ class zone_logement_social(Variable): def formula(menage, period): depcom = menage('depcom', period) - in_paris_communes_limitrophes = numpy.isin(depcom, paris_communes_limitrophes) - in_idf = numpy.isin(numpy.char.ljust(depcom, 2), departements_idf) + in_paris_communes_limitrophes = isin(depcom, paris_communes_limitrophes) + in_idf = isin(char.ljust(depcom, 2), departements_idf) - return numpy.select( + return select( [ in_paris_communes_limitrophes, in_idf, @@ -115,13 +115,13 @@ def formula(famille, period, parameters): # dont la somme des âges des deux conjoints est inférieure ou égale à 55 ans age = famille.members('age', period) sum_age = famille.sum(age, role = Famille.PARENT) - jeune_menage = (numpy.logical_not(personne_seule) * (sum_age <= 55)) + jeune_menage = (not_(personne_seule) * (sum_age <= 55)) - return numpy.select( + return select( [ personne_seule, # Deux personnes ne comportant aucune personne à charge, à l'exclusion des jeunes ménages. - ((nb_personnes == 2) * (personnes_a_charge == 0) * numpy.logical_not(jeune_menage)), + ((nb_personnes == 2) * (personnes_a_charge == 0) * not_(jeune_menage)), # Trois personnes, ou une personne seule avec une personne à charge, ou jeune ménage sans personne à charge. (personnes_a_charge == 1) + (jeune_menage * (personnes_a_charge == 0)), # Quatre personnes, ou une personne seule avec deux personnes à charge.