[Numpy-discussion] NumPy 1.2.0b2 released
Stéfan van der Walt
stefan at sun.ac.za
Mon Aug 18 21:49:51 EDT 2008
2008/8/18 Andrew Dalke <dalke at dalkescientific.com>:
> How do users know that those are present? How do users
> view those docs? You're the one who added that directory, yes?,
> so you've probably got the most experience with it. I
> couldn't figure out it, and the README in the doc/ directory
> wasn't helpful.
The numpy/doc directory existed before I implemented this, which may
explain some "odd" design decisions. Usage is meant to happen via
"help" or IPython's "?":
In [2]: np.doc?
Type: module
Base Class: <type 'module'>
String Form: <module 'numpy.doc' from
'/Users/stefan/lib/python2.5/site-packages/numpy/doc/__init__.pyc'>
Namespace: Interactive
File: /Users/stefan/lib/python2.5/site-packages/numpy/doc/__init__.py
Docstring:
The following topics are available:
- basics
- broadcasting
- creation
- glossary
- howtofind
- indexing
- internals
- io
- jargon
- methods_vs_functions
- misc
- performance
- structured_arrays
- ufuncs
In [3]: np.doc.broadcasting?
Type: module
Base Class: <type 'module'>
String Form: <module 'numpy.doc.reference.broadcasting' from
'/Users/stefan/lib/python2.5/site-packages/numpy/doc/reference/broadcasting.pyc'>
Namespace: Interactive
File:
/Users/stefan/lib/python2.5/site-packages/numpy/doc/reference/broadcasting.py
Docstring:
========================
Broadcasting over arrays
========================
[...]
> I agree, the load time is very small. But with all my patches
> in place the import time goes down from about 0.18 second to
> about 0.10 seconds. Times add up.
Here are some of the timings I did, for interest's sake:
For each trial, I included N copies of the NumPy documentation
guide as topics under "numpy.do", and took the best of 3 trials. The
topic number is currently 14.
Without numpy.doc:
real 0m0.259s
user 0m0.082s
sys 0m0.169s
--------------------
200 files
real 0m0.341s
user 0m0.095s
sys 0m0.232s
---------------------
100
real 0m0.282s
user 0m0.087s
sys 0m0.190s
---------------------
50
real 0m0.273s
user 0m0.085s
sys 0m0.179s
stefan at appel:/tmp$ time python -c 'import numpy'
---------------------
20
real 0m0.262s
user 0m0.083s
sys 0m0.173s
------------------------
>> I still think we are going about this the wrong way. We have two
>> different sets of expectations, and we can't satisfy both by ripping
>> everything apart. I'd much prefer two entry points into NumPy: one
>> for people who need speed, and one for those who need the convenience
>> of everything being at hand.
>
> I thought I was very careful to not rip things apart. :(
>
> Everything I did was API compatible except for the
> proposed removals of numpy.ctypeslib and numpy.doc. I
> chose ctypeslib because importing ctypes takes 10% of
> the total load time on my box. I chose numpy.doc because
> I couldn't figure out how it's used.
Sorry, I did not mean to make you sound like a back-yard surgeon!
Maybe hyperbole is best avoided. I am quite happy with the non-API
changing modifications you propose, and probably with the others too:
I just want us to get our heads together and decide on a policy before
we proceed (see my reply to Travis).
> It seems like every time I use num* (which isn't often) I
> need to learn a new library. I don't want to switch again
> for a few years.
Sure, we all need to get work done. But in "we" I include those who
already wrote apps using numpy.ctypeslib.
Cheers
Stéfan
More information about the NumPy-Discussion
mailing list