[SciPy-User] numpy.random.choice throws AttributeError when called with a list of objects.
Sebastian Berg
sebastian at sipsolutions.net
Fri Feb 15 14:35:52 EST 2013
On Fri, 2013-02-15 at 19:13 +0000, Garvin Haslett wrote:
> The code below results in:
> AttributeError: SgCoord instance has no attribute 'ndim'
>
> Given that an example in the documentation operates on an array of strings,
> I'd expect numpy.random.choice to work with an array of objects. Is this
> not the case?
>
Hey,
Yes you are right, it is a bug by me. It is due to code ensuring that
you get an array if you give size=() being wrong for object arrays.
Anyway it means it fails for size=None and object arrays right now, so
thanks for reporting.
However, it will work perfectly fine for any other size or dtype, so I
hope it is not a big deal for you, as it will give you no trouble if
your real application draws multiple items at once.
Regards,
Sebastian
> -------------------------------
>
> import numpy as np
>
> class SgCoord():
> "A 2D coordinate"
> def __init__(self, x = 0, y = 0):
> self.x = x
> self.y = y
>
> if __name__ == '__main__':
> l = []
> l.append(SgCoord(1,1))
> np.array(l)
> np.random.choice(l)
>
> _______________________________________________
> 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