Questions on np.piecewise
Hello, I have two questions and hope that you can help me. 1.) Is np.piecewise only defined for two conditions or should something like [0 < x <= 90, 90 < x <= 180, 180 < x <= 270] also work? 2.) Why does np.piecewise(np.array([50]), [0 < x <= 90, 90 < x <= 180], [1.1, 2.1]) return [2] and not [2.1] ? Kind regards, Joe
On 2017/09/15 2:02 AM, Joe wrote:
Hello,
I have two questions and hope that you can help me.
1.) Is np.piecewise only defined for two conditions or should something like
[0 < x <= 90, 90 < x <= 180, 180 < x <= 270]
also work?
2.) Why does
np.piecewise(np.array([50]), [0 < x <= 90, 90 < x <= 180], [1.1, 2.1])
return [2] and not [2.1] ?
Kind regards, Joe
Your example doesn't run, but here is one that does: In [8]: x = np.array([50], dtype=float) In [9]: np.piecewise(x, [0 < x <= 90, 90 < x <= 180], [1.1, 2.1]) array([ 1.1]) The answer to your second question is that it is returning an array with the same dtype as its first argument. The answer to your first question is "yes", and evidently if more than one condition matches, it is the last that prevails: In [10]: np.piecewise(x, [0 < x <= 90, 90 < x <= 180, 30<x<80], [1.1, 2.1, 3.3]) array([ 3.3]) Eric
Your example doesn't run, but here is one that does:
In [8]: x = np.array([50], dtype=float)
In [9]: np.piecewise(x, [0 < x <= 90, 90 < x <= 180], [1.1, 2.1]) array([ 1.1])
The answer to your second question is that it is returning an array with the same dtype as its first argument.
The answer to your first question is "yes", and evidently if more than one condition matches, it is the last that prevails:
In [10]: np.piecewise(x, [0 < x <= 90, 90 < x <= 180, 30<x<80], [1.1, 2.1, 3.3]) array([ 3.3])
Thank you very much for the good answer!
participants (2)
-
Eric Firing -
Joe