types as functions convert 1 elm arrays to scalars

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

types as functions convert 1 elm arrays to scalars

Hoyt Koepke
Hello,

I have a quick question that I'm hoping will improve my numpy
understanding.  I noticed some behavior when using float64 to convert
a matrix type that I didn't expect:


In [35]: b1 = array([1.0])

In [36]: float64(b1)
Out[36]: 1.0

In [37]: b2 = array([1.0, 2.0])

In [38]: float64(b2)
Out[38]: array([ 1.,  2.])


I didn't expect calling float64 would convert b1 to a scalar. Seems
like an inconsistency.  I assume this is intentional, as someone would
have noticed it a long time ago if not, so could someone explain the
reasoning behind it?  (or point me to a source that will help?)

Thanks!
--Hoyt

--
+++++++++++++++++++++++++++++++++++
Hoyt Koepke
UBC Department of Computer Science
http://www.cs.ubc.ca/~hoytak/
[hidden email]
+++++++++++++++++++++++++++++++++++
_______________________________________________
Numpy-discussion mailing list
[hidden email]
http://projects.scipy.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: types as functions convert 1 elm arrays to scalars

Charles R Harris


On Tue, Apr 29, 2008 at 12:28 AM, Hoyt Koepke <[hidden email]> wrote:
Hello,

I have a quick question that I'm hoping will improve my numpy
understanding.  I noticed some behavior when using float64 to convert
a matrix type that I didn't expect:


In [35]: b1 = array([1.0])

In [36]: float64(b1)
Out[36]: 1.0

In [37]: b2 = array([1.0, 2.0])

In [38]: float64(b2)
Out[38]: array([ 1.,  2.])


I didn't expect calling float64 would convert b1 to a scalar. Seems
like an inconsistency.  I assume this is intentional, as someone would
have noticed it a long time ago if not, so could someone explain the
reasoning behind it?  (or point me to a source that will help?)

It's inconsistent and looks like a bug:

In [4]: float32(array([[[1]]]))
Out[4]: array([[[ 1.]]], dtype=float32)

In [5]: float64(array([[[1]]]))
Out[5]: 1.0

Float64 is a bit special because it starts as the python float. Maybe Travis can say what the differences are.

Chuck



_______________________________________________
Numpy-discussion mailing list
[hidden email]
http://projects.scipy.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: types as functions convert 1 elm arrays to scalars

Hoyt Koepke
To be honest, this doesn't seem justifiable.

Where it got me is interfacing with c-code that expected a 1d array,
and I was calling it with arrays of varying length.  I was using this
to ensure the proper typing; however, when the array was length 1, the
program crashed...

Should I file a bug report?

--Hoyt

On Mon, Apr 28, 2008 at 11:51 PM, Charles R Harris
<[hidden email]> wrote:

>
>
>
> On Tue, Apr 29, 2008 at 12:28 AM, Hoyt Koepke <[hidden email]> wrote:
> > Hello,
> >
> > I have a quick question that I'm hoping will improve my numpy
> > understanding.  I noticed some behavior when using float64 to convert
> > a matrix type that I didn't expect:
> >
> >
> > In [35]: b1 = array([1.0])
> >
> > In [36]: float64(b1)
> > Out[36]: 1.0
> >
> > In [37]: b2 = array([1.0, 2.0])
> >
> > In [38]: float64(b2)
> > Out[38]: array([ 1.,  2.])
> >
> >
> > I didn't expect calling float64 would convert b1 to a scalar. Seems
> > like an inconsistency.  I assume this is intentional, as someone would
> > have noticed it a long time ago if not, so could someone explain the
> > reasoning behind it?  (or point me to a source that will help?)
> >
>
> It's inconsistent and looks like a bug:
>
> In [4]: float32(array([[[1]]]))
> Out[4]: array([[[ 1.]]], dtype=float32)
>
> In [5]: float64(array([[[1]]]))
> Out[5]: 1.0
>
> Float64 is a bit special because it starts as the python float. Maybe Travis
> can say what the differences are.
>
> Chuck
>
>
>
> _______________________________________________
>  Numpy-discussion mailing list
>  [hidden email]
>  http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>



--
+++++++++++++++++++++++++++++++++++
Hoyt Koepke
UBC Department of Computer Science
http://www.cs.ubc.ca/~hoytak/
[hidden email]
+++++++++++++++++++++++++++++++++++
_______________________________________________
Numpy-discussion mailing list
[hidden email]
http://projects.scipy.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: types as functions convert 1 elm arrays to scalars

Charles R Harris


On Thu, May 1, 2008 at 7:49 PM, Hoyt Koepke <[hidden email]> wrote:
To be honest, this doesn't seem justifiable.

Where it got me is interfacing with c-code that expected a 1d array,
and I was calling it with arrays of varying length.  I was using this
to ensure the proper typing; however, when the array was length 1, the
program crashed...

Should I file a bug report?


I already did, it's ticket #764.

Chuck


_______________________________________________
Numpy-discussion mailing list
[hidden email]
http://projects.scipy.org/mailman/listinfo/numpy-discussion
Reply | Threaded
Open this post in threaded view
|

Re: types as functions convert 1 elm arrays to scalars

Hoyt Koepke
Okay, thanks!  I didn't check.

--Hoyt

On Thu, May 1, 2008 at 7:00 PM, Charles R Harris
<[hidden email]> wrote:

>
>
>
> On Thu, May 1, 2008 at 7:49 PM, Hoyt Koepke <[hidden email]> wrote:
> > To be honest, this doesn't seem justifiable.
> >
> > Where it got me is interfacing with c-code that expected a 1d array,
> > and I was calling it with arrays of varying length.  I was using this
> > to ensure the proper typing; however, when the array was length 1, the
> > program crashed...
> >
> > Should I file a bug report?
> >
> >
>
> I already did, it's ticket #764.
>
> Chuck
>
>
> _______________________________________________
>  Numpy-discussion mailing list
>  [hidden email]
>  http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>



--
+++++++++++++++++++++++++++++++++++
Hoyt Koepke
UBC Department of Computer Science
http://www.cs.ubc.ca/~hoytak/
[hidden email]
+++++++++++++++++++++++++++++++++++
_______________________________________________
Numpy-discussion mailing list
[hidden email]
http://projects.scipy.org/mailman/listinfo/numpy-discussion