Hi,

The reason is that 75 is preparsed into a Sage integer. If you want to use
Python int, just do:

sage: np.percentile(a, 75r)
6.25

or

sage: np.percentile(a, int(75))
6.25

If you want to turn Sage preparser off, just do

sage: preparser(False)
sage: np.percentile(a, 75)
6.25

Note that http://ask.sagemath.org is more appropriate for such questions.

Ciao,
Thierry



On Wed, Feb 25, 2015 at 08:13:35AM -0800, Stan wrote:
> Dear all,
> 
> I just ran into a bug in sage, which is reproducible both in my local Sage 
> 6.3, 6.5 and on sage-cloud using the sage notebook but not when using 
> iPython, i.e. it seems to really be a sage bug, not a numpy bug. 
> Any ideas what might be the reason?
> 
> Just using the syntax from the numpy.percentile docstring gives:
> ┌────────────────────────────────────────────────────────────────────┐
> │ Sage Version 6.3, Release Date: 2014-08-10                         │
> │ Type "notebook()" for the browser-based notebook interface.        │
> │ Type "help()" for help.                                            │
> └────────────────────────────────────────────────────────────────────┘
> sage: import numpy as np
> sage: a = np.array([[10, 7, 4], [3, 2, 1]])
> sage: np.percentile(a, 75)
> ---------------------------------------------------------------------------
> TypeError                                 Traceback (most recent call last)
> <ipython-input-4-54a2b61d0a48> in <module>()
> ----> 1 np.percentile(a, Integer(75))
> 
> /home/sschyman/Programs/sage/local/lib/python2.7/site-packages/numpy/lib/function_base.py
>  
> in percentile(a, q, axis, out, overwrite_input)
>    2818         axis = 0
>    2819 
> -> 2820     return _compute_qth_percentile(sorted, q, axis, out)
>    2821 
>    2822 # handle sequence of q's without calling sort multiple times
> 
> /home/sschyman/Programs/sage/local/lib/python2.7/site-packages/numpy/lib/function_base.py
>  
> in _compute_qth_percentile(sorted, q, axis, out)
>    2824     if not isscalar(q):
>    2825         p = [_compute_qth_percentile(sorted, qi, axis, None)
> -> 2826              for qi in q]
>    2827 
>    2828         if out is not None:
> 
> TypeError: 'sage.rings.integer.Integer' object is not iterable
> 
> Cheers
> Stan
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to