Proposal: add vector arithmetic to array module

Paul Rubin phr-n2001 at nightsong.com
Tue Sep 25 18:08:10 CEST 2001


Chris Barker <chrishbarker at home.net> writes:
> > Please suppress the urge to reply "use NumPy".
> 
> I'm sorry, but I can't suppress it. NumPy is so clearly what you want
> here.

No, NumPy is NOT what I want:

1) doesn't come with Python
2) not maintained by Python maintainers
3) Only handles floating point data, not integer.  For example
   it doesn't provide vector boolean operations (I just remembered this--
   so earlier when I said I'd use it if it was part of standard Python,
   I was in error).

> > Numpy is a big package
> 
> It's not that big.

If it takes more than 1 minute to download over a modem, it's "big".
It imposes extra hassle and delay on a user who wants to run an app that
requires it.

Anyway, NumPy is ridiculous overkill if all I want to be able to do
is quickly xor two strings together, something like
  a = array.array('b', str1)
  array.xor(a, a, array.array('b', str2))

> > that's not part of standard Python
> 
> It should be.

That would make it mostly ok for what I'm doing, modulo the xor issue.

> with a lot of PDF documentation
> 
> Since when is lots of good documentation a BAD thing???????

Documentation good.  PDF documentation bad.  I see there's an HTML
version of the docs on pfdubois' site (it's not in the Sourceforge
site) but it's not clear where the doc sources are.  Any idea?

> > That makes it
> > a lot harder to distribute applications to non-technical users.  It's
> > bad enough that they already have to install Python to run Python apps.
> 
> Sort of. As you say, Python has to be installed, and the correct
> version, and all that. Given that, many folks have chosen to use Py2exe
> or McMillan's Istaller for distributing Python apps. with these tools,
> youcan just give them NumPy along with the rest.

Py2exe is a windows-only thing.  What's McMillan's installer?  Anyway
if there's a way I can easily include NumPy with an application, then
maybe it's ok.  But it's bizarre to have to make multiple OS-specific
distributions of an app written entirely in Python and that uses no
complicated system calls.

I think what's really needed is something like JAR files, for packaging
Python apps.  Maybe they could be called CAN files (snakes in a can) <wink>.
There was some discussion of this earlier so maybe something will happen.

> For that matter, there is something of a push to create a "batteries
> and accessories included" approach to installing Python. ActiveState
> has made a start of this with their distribution and pyppm. I have
> started a project alnong these lines as well, but havn't gotten far
> because no one else seems to think it's worth it. I still, do, but I
> lost a lot of motivation.

I thought "batteries included" was already supposed to be part of Python's
philosophy, not something that there needed to be a push to create.

> Which is easier:
> 
> Adding a bunch of functionality to a standard module.
>
> Making a widely used, robust, and powerfull module standard.

Generally, adding functionality to an existing module is easier.
Especially when, as in the particular functionality we're discussing,
it's not really "a bunch".  I don't know if that's the answer you
wanted <wink>.

> Personally, I think we should go beyond making NumPy a standard module,
> and make NumPy Arrays a built-in type.

That sounds reasonable to me.



More information about the Python-list mailing list