Python/Numeric users be aware!

B

Benyang

Maybe it has been reported somewhere, but it is a big surprise to me.

# Try the following:
import Numeric
a = Numeric.ones(10)
a[5:] = -1
print a

It works correctly on 32-bit linux machines and on 32-bit Windows XP:
[ 1 1 1 1 1 -1 -1 -1 -1 -1]

It is totally screwed up on 64-bit linux machines:
[1 1 1 1 1 1 1 1 1 1]

# The following works correctly on both 32-bit and 64-bit machines
(notice the comma):
a[5:,] *= -1

The Python version is 2.5.1, and Numeric is the latest version 24.2.
 
J

Jerry Hill

The Python version is 2.5.1, and Numeric is the latest version 24.2.

While 24.2 is the latest version of Numeric, it's also three years old
and no longer supported. From http://numpy.scipy.org/ - "Numeric was
the first arrayobject built for Python. It has been quite successful
and is used in a wide variety of settings and applications.
Maintenance has ceased for Numeric, and users should transisition to
NumPy as quickly as possible."

So, you are unlikely to find anyone to do bug fixes on Numeric.
 
B

Benyang Tang

I also found that the a[5:] problem is Python version dependent.

On a 64-bit linux, of the following combinations I have tried, only
the first one has the problem. The other two are ok.
* Python 2.5.1 and Numeric 24.2
* Python 2.4.5 and Numeric 24.2
* Python 2.3.7 and Numeric 24.2
 
R

Robert Kern

Benyang said:
I also found that the a[5:] problem is Python version dependent.

On a 64-bit linux, of the following combinations I have tried, only
the first one has the problem. The other two are ok.
* Python 2.5.1 and Numeric 24.2
* Python 2.4.5 and Numeric 24.2
* Python 2.3.7 and Numeric 24.2

Python 2.5.1 introduced the use of Py_ssize_t for indices. Previously, those
functions took C ints. Numeric 24.2 predates Python 2.5 substantially.

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,774
Messages
2,569,599
Members
45,170
Latest member
Andrew1609
Top