[SciPy-User] numpy.piecewise doesn't work with lists, only ndarrays

Sebastian Berg sebastian at sipsolutions.net
Mon Oct 8 17:25:59 EDT 2012


Hey,

On Mon, 2012-10-08 at 23:14 +0200, Juan Luis Cano Rodríguez wrote:
> I have noticed this behaviour of numpy.piecewise:
> 
> In [1]: import numpy as np
> 
> In [2]: q = [1, 2, 3, 4, 5, 6]
> 
> In [3]: np.piecewise(q, [q < 3, 3 <= q], [-1, 1])

Note that [q < 3, 3 <= q] evaluates as [False, True] due to how
comparison with lists works in python. So you cannot expect a useful
result.

Regards,

Sebastian

> Out[3]: array([ 1, -1,  0,  0,  0,  0])
> 
> In [4]: q = np.array(q)
> 
> In [5]: np.piecewise(q, [q < 3, 3 <= q], [-1, 1])
> Out[5]: array([-1, -1,  1,  1,  1,  1])
> 
> Maybe the function should work the same both with lists and arrays?
> Should I file a bug?
> _______________________________________________
> SciPy-User mailing list
> SciPy-User at scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user





More information about the SciPy-User mailing list