Piecewise
Re: Piecewise
Il faudrait que tu donnes un exemple qui ne s'exécute pas comme tu le souhaiterais…
Re: Piecewise
def f(x):
a=numpy.piecewise(x,[(x<=0),(x>0)*(x<=5),(x>=5)],[1,3,4])
return(int(a))
Je ne comprend pas pourquoi je trouve f=0 pour x>0, la fonction a été bien définie dans la première condition mais pour les 2 dernières elle m'envoie 0.
a=numpy.piecewise(x,[(x<=0),(x>0)*(x<=5),(x>=5)],[1,3,4])
return(int(a))
Je ne comprend pas pourquoi je trouve f=0 pour x>0, la fonction a été bien définie dans la première condition mais pour les 2 dernières elle m'envoie 0.
Re: Piecewise
La fonction piecewise exige un tableau en argument (et renvoie un tableau).
Pour obtenir un comportement conforme à ce que tu souhaites, il faudrait écrire quelque chose comme :
def f(x):
....x = numpy.array([x])
....a = numpy.piecewise(x, [x <= 0, x > 0 and x <= 5, x >= 5], [1, 3, 4])
....return a[0]
Personnellement, je préfère une succession de if / elif / else. La fonction piecewise me parait surtout intéressante lorsque x est un ensemble de valeurs.
Pour obtenir un comportement conforme à ce que tu souhaites, il faudrait écrire quelque chose comme :
def f(x):
....x = numpy.array([x])
....a = numpy.piecewise(x, [x <= 0, x > 0 and x <= 5, x >= 5], [1, 3, 4])
....return a[0]
Personnellement, je préfère une succession de if / elif / else. La fonction piecewise me parait surtout intéressante lorsque x est un ensemble de valeurs.