Skip to content

MAINT: Replace polyfit/polyval with Polynomial class. #155

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 1, 2022

Conversation

rossbar
Copy link
Collaborator

@rossbar rossbar commented Nov 17, 2022

The Polynomial class is recommended over the poly* functional interface for new code.

Creating a draft for now, as the text will need to be updated too!

The Polynomial class is recommended over the poly* functional interface
for new code.
@rossbar
Copy link
Collaborator Author

rossbar commented Nov 17, 2022

Okay, text updated - this is ready for review!

@rossbar rossbar marked this pull request as ready for review November 17, 2022 21:15
@rossbar rossbar added the enhancement New feature or request label Nov 17, 2022
@@ -264,25 +264,26 @@ Now, if we want to create a very simple approximation for this data, we should t
dates[~china_total.mask]
```

Finally, we can use the [numpy.polyfit](https://numpy.org/devdocs/reference/generated/numpy.polyfit.html#numpy.polyfit) and [numpy.polyval](https://numpy.org/devdocs/reference/generated/numpy.polyval.html#numpy.polyval) functions to create a cubic polynomial that fits the data as best as possible:
Finally, we can use the
[fitting functionality of the numpy.polynomial](https://numpy.org/doc/stable/reference/generated/numpy.polynomial.polynomial.Polynomial.fit.html)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we use intersphinx for links like this? (not in scope in this PR, but this is where I spotted it)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could, but we've chosen not to - the reason being that the MyST extended features are currently tied to sphinx, meaning they only work for the outputs that pass through the sphinx build process. In practice this means that it would render correctly in the website, but not in the Jupyter notebook (i.e. for users running tutorials locally or on binder).

As of now we've decided to limit the tutorials only to syntax that will render correctly in both the browser and the html, but we could certainly revisit this at some point.

PS - this is also one of the major reasons I'm excited about MystJS, though I'm not sure that support for sphinx extensions like intersphinx are on the roadmap (yet).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, gotcha, my ignorance shows how much I dislike working in the browser with notebooks :)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are certainly things we could consider that might work within the current constraints. E.g. trying thebe instead of binder for cell-level interactivity rather than notebook-level might work, and would have the advantage that the sphinx-specific functionality (admonitions, links, etc.) could be used more extensively, as readers would be working in the website directly. I don't have any real idea because I've never tried!

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No worries about brute forcing a workaround for this.

Adding a link checker CI job would address my main concern about the hard-wired URLs, so I think we should just do that instead (I think we should do it anyway).

@bsipocz bsipocz merged commit 01db00e into numpy:main Dec 1, 2022
@bsipocz
Copy link
Member

bsipocz commented Dec 1, 2022

Thanks @rossbar!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants