On Mi, 2016-04-27 at 22:11 +0530, Saumyajit Dey wrote: > Hi, > > Thanks a lot for the reply. I am looking into the documentation > already. Also is there any guide as to how the source code of Numpy > is organised? > > For example, when i write > > > np.power(2,3) > what is the workflow in terms of functions in different modules being > called? >
No, there is not much. There are different paths/possibilities, sometimes even intermingled. These are some: 1. Pure python functions, e.g. np.stack, np.delete, ... They are not hard to find/figure out (though some details may be), frankly, I usually just use the ?? magic in ipython. 2. Python shims for attributes, attributes usually go to the methods.c in numpy/core/src/multiarray 3. General C-Functions (Reshape, etc.) are usually in some specialized file in numpy/core/src/multiarray but wrapped by multiarraymodule.c, so you can backtrace from there. The exact calls can get pretty complex (even call back to python). 4. One important category (also tricky) are ufuncs. They form their own building block in the code base. The whole interplay of things is quite complex, so unless you need something specific I would be happy to understand all the things they can do for you and that they wrap C-functions working on a single axis in some sense. (code in numpy/core/src/umath) Frankly, I often just "git grep ..." to find the right place to look for something. It is not impossible to understand the logic behind the files and what calls what, but I would claim it is usually faster to grep for it if you are interested in something specific. There are some more arcane things, such as code generations, but that is easier to ask for/figure out for a specific problem. Things such as what happens when a ufunc is called, and how the ufunc is created in the first place are non-trivial. NumPy has a few rather distinct building blocks. Ufuncs, the iterator, general C-based shape/container functions, general python functions, linear algebra, fft, polynoms, .... I would argue that finding something that interests you and trying to figure that out and asking us about it explicitly is probably best. Honestly, I think all of us devs have at least two things in the above list we know almost nothing about. E.g. you don't need to understand details of the FFT implementation unless you want to actually change something there. There are some "easy issues" marked in the git issue list, which may be worth a shot if you like to just dive in. You could poke at one you find interesting and then ask us (we might have tagged something as "easy" but I would not guarantee all of them are, sometimes there are unexpected difficulties or it is easy if you already know where to look). - Sebastian > Regards, > Saumyajit > > Saumyajit Dey > Junior Undergraduate Student: > Department of Computer Science and Engineering > National Institute of Technology > Warangal (NITW), India > Cell: +91-8885847028 > > On Wed, Apr 27, 2016 at 6:05 PM, Maniteja Nandana < > maniteja.modesty...@gmail.com> wrote: > > Hi, > > Welcome! It would be a good exercise to look at the documentation > > and tutorial for Numpy at http://docs.scipy.org/doc/ > > Also the lectures at the lectures at www.scipy-lectures.org might > > be a interesting introduction to scientific python in numpy stack. > > Hope it helps. > > Happy learning ! > > Cheers, > > Maniteja. > > _______________________________________________ > > NumPy-Discussion mailing list > > NumPy-Discussion@scipy.org > > https://mail.scipy.org/mailman/listinfo/numpy-discussion > > > > _______________________________________________ > > NumPy-Discussion mailing list > > NumPy-Discussion@scipy.org > > https://mail.scipy.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > https://mail.scipy.org/mailman/listinfo/numpy-discussion
signature.asc
Description: This is a digitally signed message part
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion