# [Numpy-discussion] Numeric 24.0

Sébastien de Menten sdementen at hotmail.com
Wed Apr 6 00:36:39 CDT 2005

```Hi Travis,

Could you look at bug
[ 635104 ] segfault unpickling Numeric 'O' array
[ 567796 ] unpickling of 'O' arrays causes segfault   (duplicate of previous
one)

I proposed a (rather simple) solution that I put in the comment of bug [
635104 ]. But apparently, nobody is looking at those bugs...

>
>I'd like to release a Numeric 24.0  to get the array interface out there.
>There are also some other bug fixes in Numeric 24.0
>
>Here is the list so far from Numeric 23.7
>
>[Greenfield]  Changed so a[0,0] and a[0][0] returns same type when a is 2-d
>of Int16

This is quite disturbing. In fact for all types that are not exactly
equivalent to python type, indexing a multidimensional array (rank > 1)
return arrays even if the final shape is ().
So
type(zeros((5,2,4), Int8 )[0,0,0])  => <type 'array'>
type(zeros((5,2,4), Int32 )[0,0,0])  => <type 'array'>
type(zeros((5,2), Float32 )[0,0])  => <type 'array'>
But
type(zeros((5,2,4), Int )[0,0,0])  => <type 'int'>
type(zeros((5,2,4), Float64)[0,0,0])  => <type 'float'>
type(zeros((5,2,4), Float)[0,0,0])  => <type 'float'>
type(zeros((5,2,4), PyObject)[0,0,0])  => <type 'int'>

Notice too the weird difference betweeb Int <> Int32 and Float == Float64.

However, when indexing a onedimensional array (rank == 1), then we get back
scalar for indexing operations on all types.

So, when you say "return the same type", do you think scalar or array (it
smells like a recent discussion on Numeric3 ...) ?

>[unreported]  Allow Long Integers to be used in slices
>[1123145]     Handle mu==0.0 appropiately in ranlib/ignpoi.
>[unreported]  Return error info in ranlib instead of printing it to stderr
>[1151892]     dot() would quit python with zero-sized arrays when using
>               dotblas. The BLAS routines *gemv and *gemm need LDA >= 1.
>[unreported]  Fixed empty for Object arrays
>
>Version 23.8  March 2005
>[Cooke]       Fixed more 64-bit issues (patch 117603)
>[unreported]  Changed arrayfnsmodule back to PyArray_INT where the code
>               typecasts to (int *).  Changed CanCastSafely to check
>               if sizeof(long) == sizeof(int)
>
>
>I'll wait a little bit to allow last minute bug fixes to go in, but I'd
>realy like to see this release get out there.  For users of Numeric  >23.7
>try
>Numeric.empty((10,20),'O')  if you want to see an *interesting* bug that is
>fixed in CVS.
>
>-Travis
>
>

```