On Fri, Oct 15, 2021 at 12:11 PM Kevin Sheppard <kevin.k.shepp...@gmail.com> wrote:
> > > On Thu, Oct 14, 2021 at 7:22 PM Ralf Gommers <ralf.gomm...@gmail.com> > wrote: > >> >> >> On Thu, Oct 14, 2021 at 7:19 PM Kevin Sheppard < >> kevin.k.shepp...@gmail.com> wrote: >> >>> I think the issue in random specifically is that a raw list of >>> available functions does not provide suitable guidance for someone looking >>> for random variate generating function. This is because the module-level >>> API is mostly dominated by methods of the singleton RandomState instance. >>> Best practice going forward is to use the methods of a Generator instance, >>> most likely provided by default_rng(). A simple API-list will not be able >>> to provide this guidance. >>> >> >> The list can be annotated with headings and one-line or one-paragraph >> descriptions, something like: >> >> ``` >> ## Generator interface >> >> This is the recommended interface ... <etc - list methods too> >> >> ## Interface for unit testing and legacy code >> >> <explain purpose, then list all routines> >> ``` >> >> The complaint is very much valid here, I have made the same one before. >> The way the page currently is written makes little sense - it addresses a >> user transitioning from the old to the new interface, or explicitly >> comparing the two for some reason. To a user just looking for information >> on NumPy today, that's more confusing than helpful. >> >> The page also talks about "The new interface", "What's new and >> different", "Some long-overdue API cleanup", and "Since Numpy version >> 1.17.0" - that all belongs in a NEP, and not in the API reference docs. >> >> Cheers, >> Ralf >> >> >> > I don't think the doc style there is ideal. I would still say that a > relatively naive dump of `np.random` (something that would be everything in > [v for v in dir(np.random) if not v.startswith("_")] would not lead to an > idea set of docs because most of the "obvious" functions are methods of the > legacy RandomState. A good set would need something like (excluding > headers) > > default_rng > Generator > Generator.random > Generator.integers > ... > > <much lower, or IMO better in a a sperate page> > Legacy Methods > ============== > <short explainer> > np.random.random_sample > np.random.randint > RandmState > ... > I don't think we're disagreeing, this is very close to what I was suggesting. IMO many (likely most) methods exposed in np.random should not be on the > default landing page for np.random. > They should stay on that page, if they're marked as legacy with a brief explanation that'll guide people to the recommended API just fine. Every public object should be in the docs, and these are heavily used functions. Cheers, Ralf Best, > Kevin > > > >>> FFT has a very simple API and so a simple list make sense. Similarly, >>> np.random before the generation was revamped, which is hy the old-style was >>> adequate for <=1.16, but not for >=1.17 >>> >>> Kevin >>> >>> >>> On Thu, Oct 14, 2021 at 6:09 PM Paul M. <pmma...@gmail.com> wrote: >>> >>>> Hi Melissa, >>>> >>>> I think that's the right approach. Looking through the current docs, I >>>> think the page on the FFT module is exemplary in this regard: >>>> >>>> https://numpy.org/doc/stable/reference/routines.fft.html >>>> >>>> It lists all the available functions (with links to details), and then >>>> has a section on "Background Information", "Implementation Details", etc. >>>> It's easy to get a quick overview of what the available functions are, and >>>> then ease into the background info in terms of how it works. >>>> >>>> Cheers, >>>> Paul >>>> >>>> >>>> On Thu, Oct 14, 2021 at 12:44 PM Melissa Mendonça <meliss...@gmail.com> >>>> wrote: >>>> >>>>> Hi Paul, >>>>> >>>>> Do you think having a page with the flat list of routines back, in >>>>> addition to the explanations, would solve this? >>>>> >>>>> - Melissa >>>>> >>>>> On Thu, Oct 14, 2021 at 1:34 PM Paul M. <pmma...@gmail.com> wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> The documentation of Numpy's submodules used to have a fairly >>>>>> standard structure as shown here in the 1.16 documentation: >>>>>> >>>>>> >>>>>> https://docs.scipy.org/doc/numpy-1.16.1/reference/routines.random.html >>>>>> >>>>>> Now the same page in the API documentation looks like this: >>>>>> >>>>>> https://numpy.org/doc/stable/reference/random/index.html >>>>>> >>>>>> While I appreciate the expository text in the new documentation about >>>>>> how the generators work, this new version is much less useful as a >>>>>> reference to the API. It seems like it might fit better in the user >>>>>> manual >>>>>> rather than the API reference. >>>>>> >>>>>> From my perspective it seems like the new version of the >>>>>> documentation is harder to navigate in terms of finding information >>>>>> quickly >>>>>> (more scrolling, harder to get a bird's eye view of functions in various >>>>>> submodules, etc). >>>>>> >>>>>> Has anyone else had a similar reaction to the changes? I teach a >>>>>> couple of courses in scientific computing and bioinformatics and my >>>>>> students seem to also struggle to get a sense of what the different >>>>>> modules >>>>>> offer based on the new version of the documentation. For now, I'm >>>>>> referring >>>>>> them to the old (1.70) reference manuals as a better way to get >>>>>> acquainted >>>>>> with the libraries. >>>>>> >>>>>> Cheers, >>>>>> Paul Magwene >>>>>> _______________________________________________ >>>>>> NumPy-Discussion mailing list -- numpy-discussion@python.org >>>>>> To unsubscribe send an email to numpy-discussion-le...@python.org >>>>>> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ >>>>>> Member address: meliss...@gmail.com >>>>>> >>>>> _______________________________________________ >>>>> NumPy-Discussion mailing list -- numpy-discussion@python.org >>>>> To unsubscribe send an email to numpy-discussion-le...@python.org >>>>> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ >>>>> Member address: pmma...@gmail.com >>>>> >>>> _______________________________________________ >>>> NumPy-Discussion mailing list -- numpy-discussion@python.org >>>> To unsubscribe send an email to numpy-discussion-le...@python.org >>>> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ >>>> Member address: kevin.k.shepp...@gmail.com >>>> >>> _______________________________________________ >>> NumPy-Discussion mailing list -- numpy-discussion@python.org >>> To unsubscribe send an email to numpy-discussion-le...@python.org >>> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ >>> Member address: ralf.gomm...@googlemail.com >>> >> _______________________________________________ >> NumPy-Discussion mailing list -- numpy-discussion@python.org >> To unsubscribe send an email to numpy-discussion-le...@python.org >> https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ >> Member address: kevin.k.shepp...@gmail.com >> > _______________________________________________ > NumPy-Discussion mailing list -- numpy-discussion@python.org > To unsubscribe send an email to numpy-discussion-le...@python.org > https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ > Member address: ralf.gomm...@googlemail.com >
_______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com