From filippovicentini at gmail.com Tue Jun 1 09:17:53 2021 From: filippovicentini at gmail.com (Filippo Vicentini) Date: Tue, 01 Jun 2021 15:17:53 +0200 Subject: [Numpy-discussion] RFC: supporting complex inputs in np.logaddexp Message-ID: Hello all, I would like to ask if the maintainers would be in favour of adding support to np.logaddexp in order to support complex numbers. scipy.special.logsumexp already does, and it would be relatively straightforward to support them in numpy too. Complex numbers are very common when working in quantum physics, where we have complex-valued probability amplitudes. Best, Filippo Vicentini -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris.barker at noaa.gov Tue Jun 1 20:22:52 2021 From: chris.barker at noaa.gov (Chris Barker) Date: Tue, 1 Jun 2021 17:22:52 -0700 Subject: [Numpy-discussion] Best fit linear piecewise function? Message-ID: Do any of you know of code for finding an optimum linear piecewise fit to a set of points? Somethin like what is described in this article: https://www.hindawi.com/journals/mpe/2015/876862/ At a glance, that looked just hard enough to code up that I'm hoping someone has already done it :-) -CHB -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker at noaa.gov -------------- next part -------------- An HTML attachment was scrubbed... URL: From schut at satelligence.com Wed Jun 2 04:48:50 2021 From: schut at satelligence.com (Vincent Schut) Date: Wed, 2 Jun 2021 10:48:50 +0200 Subject: [Numpy-discussion] Best fit linear piecewise function? In-Reply-To: References: Message-ID: <2c92c1ed-c46c-3195-672d-0e5003c037cc@satelligence.com> Multivariate Adaptive Regression Splines might fit the bill? Implemented for python as py-earth: https://github.com/scikit-learn-contrib/py-earth. On 6/2/21 2:22 AM, Chris Barker wrote: > Do any of you know of code for finding an optimum linear piecewise?fit > to a set of points? > > Somethin like what is described in this article: > > https://www.hindawi.com/journals/mpe/2015/876862/ > > > At a glance, that looked just?hard enough to code up that I'm hoping > someone has already done it :-) > > -CHB > > > -- > > Christopher Barker, Ph.D. > Oceanographer > > Emergency Response Division > NOAA/NOS/OR&R ? ? ? ? ? ?(206) 526-6959?? voice > 7600 Sand Point Way NE ??(206) 526-6329?? fax > Seattle, WA ?98115 ? ? ??(206) 526-6317?? main reception > > Chris.Barker at noaa.gov > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion -- Vincent Schut Remote Sensing Software Engineer +31 302272679 ~ Maliebaan 22 | 3581CP | Utrecht | Netherlands Linkedin ~ satelligence.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Wed Jun 2 10:59:48 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Wed, 02 Jun 2021 09:59:48 -0500 Subject: [Numpy-discussion] NumPy Development Meeting Wednesday - Triage Focus (Soon today!) Message-ID: <785a059e1363d7d764be5710bfcf6578f73bd480.camel@sipsolutions.net> Hi all, Our bi-weekly triage-focused NumPy development meeting is Wednesday, June 2nd at 11 am Pacific Time (18:00 UTC). Everyone is invited to join in and edit the work-in-progress meeting topics and notes: https://hackmd.io/68i_JvOYQfy9ERiHgXMPvg I encourage everyone to notify us of issues or PRs that you feel should be prioritized, discussed, or reviewed. Best regards Sebastian PS: Sorry for the late reminder! From chris.barker at noaa.gov Wed Jun 2 11:50:25 2021 From: chris.barker at noaa.gov (Chris Barker) Date: Wed, 2 Jun 2021 08:50:25 -0700 Subject: [Numpy-discussion] Best fit linear piecewise function? In-Reply-To: <2c92c1ed-c46c-3195-672d-0e5003c037cc@satelligence.com> References: <2c92c1ed-c46c-3195-672d-0e5003c037cc@satelligence.com> Message-ID: On Wed, Jun 2, 2021 at 1:50 AM Vincent Schut wrote: > Multivariate Adaptive Regression Splines might fit the bill? Implemented > for python as py-earth: https://github.com/scikit-learn-contrib/py-earth. > That looks massively more complex than I was thinking for my use case. And it seems to be a fit, rather than exactly matching a subset of points. but as I think about it, for my use case, it might actually work well. I'll give it a try -- thanks! -CHB > > On 6/2/21 2:22 AM, Chris Barker wrote: > > Do any of you know of code for finding an optimum linear piecewise fit to > a set of points? > > Somethin like what is described in this article: > > https://www.hindawi.com/journals/mpe/2015/876862/ > > At a glance, that looked just hard enough to code up that I'm hoping > someone has already done it :-) > > > -CHB > > > -- > > Christopher Barker, Ph.D. > Oceanographer > > Emergency Response Division > NOAA/NOS/OR&R (206) 526-6959 voice > 7600 Sand Point Way NE (206) 526-6329 fax > Seattle, WA 98115 (206) 526-6317 main reception > > Chris.Barker at noaa.gov > > _______________________________________________ > NumPy-Discussion mailing listNumPy-Discussion at python.orghttps://mail.python.org/mailman/listinfo/numpy-discussion > > > -- > > Vincent Schut > > Remote Sensing Software Engineer > > +31 302272679 ~ Maliebaan 22 | 3581CP | Utrecht | Netherlands > Linkedin ~ > satelligence.com > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker at noaa.gov -------------- next part -------------- An HTML attachment was scrubbed... URL: From markbak at gmail.com Thu Jun 3 07:12:04 2021 From: markbak at gmail.com (Mark Bakker) Date: Thu, 3 Jun 2021 13:12:04 +0200 Subject: [Numpy-discussion] Best fit linear piecewise function? In-Reply-To: References: Message-ID: My students are using this and seem to like it: https://jekel.me/piecewise_linear_fit_py/about.html > Date: Tue, 1 Jun 2021 17:22:52 -0700 > From: Chris Barker > To: Discussion of Numerical Python > Subject: [Numpy-discussion] Best fit linear piecewise function? > Message-ID: > i58WZ0dL_292GvntmFRte88ik98h2NqT1YJw at mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Do any of you know of code for finding an optimum linear piecewise fit to a > set of points? > > Somethin like what is described in this article: > > https://www.hindawi.com/journals/mpe/2015/876862/ > > At a glance, that looked just hard enough to code up that I'm hoping > someone has already done it :-) > > -CHB > > > -- > > Christopher Barker, Ph.D. > Oceanographer > > Emergency Response Division > NOAA/NOS/OR&R (206) 526-6959 voice > 7600 Sand Point Way NE (206) 526-6329 fax > Seattle, WA 98115 (206) 526-6317 main reception > > Chris.Barker at noaa.gov > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: < > https://mail.python.org/pipermail/numpy-discussion/attachments/20210601/fa6567d6/attachment-0001.html > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From klaus.zimmermann at smhi.se Thu Jun 3 07:32:27 2021 From: klaus.zimmermann at smhi.se (Klaus Zimmermann) Date: Thu, 3 Jun 2021 13:32:27 +0200 Subject: [Numpy-discussion] Best fit linear piecewise function? In-Reply-To: References: Message-ID: Hi Christopher, if you are interested in the 1d problem, you might also consider a spline fit of order 1, for example with scipy.interpolate, see [1]. Cheers Klaus [1] https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html#spline-interpolation-in-1-d-procedural-interpolate-splxxx On 03/06/2021 13:12, Mark Bakker wrote: > My students are using this and seem to like it: > > https://jekel.me/piecewise_linear_fit_py/about.html > > ? > > Date: Tue, 1 Jun 2021 17:22:52 -0700 > From: Chris Barker > > To: Discussion of Numerical Python > > Subject: [Numpy-discussion] Best fit linear piecewise function? > Message-ID: > ? ? ? ? > > > Content-Type: text/plain; charset="utf-8" > > Do any of you know of code for finding an optimum linear piecewise > fit to a > set of points? > > Somethin like what is described in this article: > > https://www.hindawi.com/journals/mpe/2015/876862/ > > > At a glance, that looked just hard enough to code up that I'm hoping > someone has already done it :-) > > -CHB > > > -- > > Christopher Barker, Ph.D. > Oceanographer > > Emergency Response Division > NOAA/NOS/OR&R? ? ? ? ? ? (206) 526-6959? ?voice > 7600 Sand Point Way NE? ?(206) 526-6329? ?fax > Seattle, WA? 98115? ? ? ?(206) 526-6317? ?main reception > > Chris.Barker at noaa.gov > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > > > > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > From melissawm at gmail.com Fri Jun 4 18:00:13 2021 From: melissawm at gmail.com (=?UTF-8?Q?Melissa_Mendon=C3=A7a?=) Date: Fri, 4 Jun 2021 19:00:13 -0300 Subject: [Numpy-discussion] Documentation Team meeting - Monday June 7 In-Reply-To: References: Message-ID: Hi all! Our next Documentation Team meeting will be on *Monday, June 7* at ***4PM UTC***. All are welcome - you don't need to already be a contributor to join. If you have questions or are curious about what we're doing, we'll be happy to meet you! If you wish to join on Zoom, use this link: https://zoom.us/j/96219574921?pwd=VTRNeGwwOUlrYVNYSENpVVBRRjlkZz09#success Here's the permanent hackmd document with the meeting notes (still being updated in the next few days!): https://hackmd.io/oB_boakvRqKR-_2jRV-Qjg Hope to see you around! ** You can click this link to get the correct time at your timezone: https://www.timeanddate.com/worldclock/fixedtime.html?msg=NumPy+Documentation+Team+Meeting&iso=20210607T16&p1=1440&ah=1 *** You can add the NumPy community calendar to your google calendar by clicking this link: https://calendar.google.com/calendar /r?cid=YmVya2VsZXkuZWR1X2lla2dwaWdtMjMyamJobGRzZmIyYzJqODFjQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20 - Melissa -------------- next part -------------- An HTML attachment was scrubbed... URL: From klark--kent at yandex.ru Sun Jun 6 09:12:03 2021 From: klark--kent at yandex.ru (klark--kent at yandex.ru) Date: Sun, 06 Jun 2021 16:12:03 +0300 Subject: [Numpy-discussion] Broadcasting array with Ursina intersect Message-ID: <2296121622983783@mail.yandex.ru> An HTML attachment was scrubbed... URL: From keith at sloan-home.co.uk Sun Jun 6 11:46:56 2021 From: keith at sloan-home.co.uk (Keith Sloan) Date: Sun, 6 Jun 2021 08:46:56 -0700 (MST) Subject: [Numpy-discussion] numpy histogram data Message-ID: <1622994416754-0.post@n7.nabble.com> Okay I have some data which I have created a scatter plot I have also created a histogram of red Galaxy counts for redshift with RedEllipticalMasses.keep_columns(['uminusr','Z_1']) RedEllipticalMasses.sort(['Z_1','uminusr']) counts, bins = np.histogram(RedEllipticalMasses['Z_1'],bins=80) fig, ax = plt.subplots(1, 1, figsize=(12,8)) # make the figure with the size 10 x 8 inches fig.suptitle("2 - Histogram Count of Red Galaxies versus Redshift") plt.hist(bins[:-1], bins, weights=counts) plt.show() Is there a way to created the histogram data for a stacked histogram formed from different ranges of redness 'uminusr'? Also is there an easy way of extracting the point information for the midpoints of each histogram column? Thanks -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ From ddavis at ddavis.io Sun Jun 6 12:39:49 2021 From: ddavis at ddavis.io (Doug Davis) Date: Sun, 06 Jun 2021 12:39:49 -0400 Subject: [Numpy-discussion] numpy histogram data In-Reply-To: <1622994416754-0.post@n7.nabble.com> (Keith Sloan's message of "Sun, 6 Jun 2021 08:46:56 -0700 (MST)") References: <1622994416754-0.post@n7.nabble.com> Message-ID: Resending after subscribing to the list since original reply was rejected, that's what I get for reading the mailing list from gmane instead of actually subscribing :) Keith Sloan writes: > Okay I have some data which I have created a scatter plot > > > I have also created a histogram of red Galaxy counts for redshift with > > RedEllipticalMasses.keep_columns(['uminusr','Z_1']) > RedEllipticalMasses.sort(['Z_1','uminusr']) > counts, bins = np.histogram(RedEllipticalMasses['Z_1'],bins=80) > fig, ax = plt.subplots(1, 1, figsize=(12,8)) # make the figure with the size > 10 x 8 inches > fig.suptitle("2 - Histogram Count of Red Galaxies versus Redshift") > plt.hist(bins[:-1], bins, weights=counts) > plt.show() > > > Is there a way to created the histogram data for a stacked histogram formed > from different ranges of redness 'uminusr'? if you have already calculated a few histograms (i.e. you have the arrays of bin heights/counts), you can create a stacked histogram by passing a sequence of centers as the "data", a sequence of counts as the weights, and use stacked=True; for example: counts = [redness1, redness2, redness3] centers = [centers for _ in counts] plt.hist(centers, bins=bins, weights=counts, stacked=True) > Also is there an easy way of extracting the point information for the > midpoints of each histogram column? NumPy doesn't have a function for this, but since np.histogram returns the bin edges you can get the centers pretty easily with: centers = 0.5 * (edges[1:] + edges[:-1]) There's a nice object oriented histogramming library for Python called boost-histogram: https://boost-histogram.readthedocs.io/en/latest/ It might be worth giving it a look. From tyler.je.reddy at gmail.com Sun Jun 6 14:31:04 2021 From: tyler.je.reddy at gmail.com (Tyler Reddy) Date: Sun, 6 Jun 2021 12:31:04 -0600 Subject: [Numpy-discussion] ANN: SciPy 1.7.0rc1 -- please test Message-ID: Hi all, On behalf of the SciPy development team I'm pleased to announce the release candidate SciPy 1.7.0rc1. Please help us test this pre-release. Sources and binary wheels can be found at: https://pypi.org/project/scipy/ and at: https://github.com/scipy/scipy/releases/tag/v1.7.0rc1 One of a few ways to install the release candidate with pip: pip install scipy==1.7.0rc1 ===================== SciPy 1.7.0 Release Notes ===================== Note: Scipy 1.7.0 is not released yet! SciPy 1.7.0 is the culmination of 6 months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Before upgrading, we recommend that users check that their own code does not use deprecated SciPy functionality (to do so, run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). Our development attention will now shift to bug-fix releases on the 1.7.x branch, and on adding new features on the master branch. This release requires Python 3.7+ and NumPy 1.16.5 or greater. For running on PyPy, PyPy3 6.0+ is required. **************************** Highlights of this release **************************** - A new submodule for quasi-Monte Carlo, `scipy.stats.qmc`, was added - The documentation design was updated to use the same PyData-Sphinx theme as other NumFOCUS packages like NumPy. - We now vendor and leverage the Boost C++ library to enable numerous improvements for long-standing weaknesses in `scipy.stats` - `scipy.stats` has six new distributions, eight new (or overhauled) hypothesis tests, a new function for bootstrapping, a class that enables fast random variate sampling and percentile point function evaluation, and many other enhancements. - ``cdist`` and ``pdist`` distance calculations are faster for several metrics, especially weighted cases, thanks to a rewrite to a new C++ backend framework - A new class for radial basis function interpolation, `RBFInterpolator`, was added to address issues with the `Rbf` class. We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source Software for Science program for supporting many of the improvements to `scipy.stats`. *************** New features *************** `scipy.cluster` improvements ====================== An optional argument, ``seed``, has been added to ``kmeans`` and ``kmeans2`` to set the random generator and random state. `scipy.interpolate` improvements ========================= Improved input validation and error messages for ``fitpack.bispev`` and ``fitpack.parder`` for scenarios that previously caused substantial confusion for users. The class `RBFInterpolator` was added to supersede the `Rbf` class. The new class has usage that more closely follows other interpolator classes, corrects sign errors that caused unexpected smoothing behavior, includes polynomial terms in the interpolant (which are necessary for some RBF choices), and supports interpolation using only the k-nearest neighbors for memory efficiency. `scipy.linalg` improvements ===================== An LAPACK wrapper was added for access to the ``tgexc`` subroutine. `scipy.ndimage` improvements ======================= `scipy.ndimage.affine_transform` is now able to infer the ``output_shape`` from the ``out`` array. `scipy.optimize` improvements ======================= The optional parameter ``bounds`` was added to ``_minimize_neldermead`` to support bounds constraints for the Nelder-Mead solver. ``trustregion`` methods ``trust-krylov``, ``dogleg`` and ``trust-ncg`` can now estimate ``hess`` by finite difference using one of ``["2-point", "3-point", "cs"]``. ``halton`` was added as a ``sampling_method`` in `scipy.optimize.shgo`. ``sobol`` was fixed and is now using `scipy.stats.qmc.Sobol`. ``halton`` and ``sobol`` were added as ``init`` methods in `scipy.optimize.differential_evolution.` ``differential_evolution`` now accepts an ``x0`` parameter to provide an initial guess for the minimization. ``least_squares`` has a modest performance improvement when SciPy is built with Pythran transpiler enabled. When ``linprog`` is used with ``method`` ``'highs'``, ``'highs-ipm'``, or ``'highs-ds'``, the result object now reports the marginals (AKA shadow prices, dual values) and residuals associated with each constraint. `scipy.signal` improvements ===================== ``get_window`` supports ``general_cosine`` and ``general_hamming`` window functions. `scipy.signal.medfilt2d` now releases the GIL where appropriate to enable performance gains via multithreaded calculations. `scipy.sparse` improvements ====================== Addition of ``dia_matrix`` sparse matrices is now faster. `scipy.spatial` improvements ====================== ``distance.cdist`` and ``distance.pdist`` performance has greatly improved for certain weighted metrics. Namely: ``minkowski``, ``euclidean``, ``chebyshev``, ``canberra``, and ``cityblock``. Modest performance improvements for many of the unweighted ``cdist`` and ``pdist`` metrics noted above. The parameter ``seed`` was added to `scipy.spatial.vq.kmeans` and `scipy.spatial.vq.kmeans2`. The parameters ``axis`` and ``keepdims`` where added to `scipy.spatial.distance.jensenshannon`. The ``rotation`` methods ``from_rotvec`` and ``as_rotvec`` now accept a ``degrees`` argument to specify usage of degrees instead of radians. `scipy.special` improvements ====================== Wright's generalized Bessel function for positive arguments was added as `scipy.special.wright_bessel.` An implementation of the inverse of the Log CDF of the Normal Distribution is now available via `scipy.special.ndtri_exp`. `scipy.stats` improvements ==================== Hypothesis Tests ----------------------- The Mann-Whitney-Wilcoxon test, ``mannwhitneyu``, has been rewritten. It now supports n-dimensional input, an exact test method when there are no ties, and improved documentation. Please see "Other changes" for adjustments to default behavior. The new function `scipy.stats.binomtest` replaces `scipy.stats.binom_test`. The new function returns an object that calculates a confidence intervals of the proportion parameter. Also, performance was improved from O(n) to O(log(n)) by using binary search. The two-sample version of the Cramer-von Mises test is implemented in `scipy.stats.cramervonmises_2samp`. The Alexander-Govern test is implemented in the new function `scipy.stats.alexandergovern`. The new functions `scipy.stats.barnard_exact` and `scipy.stats. boschloo_exact` respectively perform Barnard's exact test and Boschloo's exact test for 2x2 contingency tables. The new function `scipy.stats.page_trend_test` performs Page's test for ordered alternatives. The new function `scipy.stats.somersd` performs Somers' D test for ordinal association between two variables. An option, ``permutations``, has been added in `scipy.stats.ttest_ind` to perform permutation t-tests. A ``trim`` option was also added to perform a trimmed (Yuen's) t-test. The ``alternative`` parameter was added to the ``skewtest``, ``kurtosistest``, ``ranksums``, ``mood``, ``ansari``, ``linregress``, and ``spearmanr`` functions to allow one-sided hypothesis testing. Sample statistics ----------------------- The new function `scipy.stats.differential_entropy` estimates the differential entropy of a continuous distribution from a sample. The ``boxcox`` and ``boxcox_normmax`` now allow the user to control the optimizer used to minimize the negative log-likelihood function. A new function `scipy.stats.contingency.relative_risk` calculates the relative risk, or risk ratio, of a 2x2 contingency table. The object returned has a method to compute the confidence interval of the relative risk. Performance improvements in the ``skew`` and ``kurtosis`` functions achieved by removal of repeated/redundant calculations. Substantial performance improvements in `scipy.stats.mstats.hdquantiles_sd`. The new function `scipy.stats.contingency.association` computes several measures of association for a contingency table: Pearsons contingency coefficient, Cramer's V, and Tschuprow's T. The parameter ``nan_policy`` was added to `scipy.stats.zmap` to provide options for handling the occurrence of ``nan`` in the input data. The parameter ``ddof`` was added to `scipy.stats.variation` and `scipy.stats.mstats.variation`. The parameter ``weights`` was added to `scipy.stats.gmean`. Statistical Distributions ------------------------------- We now vendor and leverage the Boost C++ library to address a number of previously reported issues in ``stats``. Notably, ``beta``, ``binom``, ``nbinom`` now have Boost backends, and it is straightforward to leverage the backend for additional functions. The skew Cauchy probability distribution has been implemented as `scipy.stats.skewcauchy`. The Zipfian probability distribution has been implemented as `scipy.stats.zipfian`. The new distributions ``nchypergeom_fisher`` and ``nchypergeom_wallenius`` implement the Fisher and Wallenius versions of the noncentral hypergeometric distribution, respectively. The generalized hyperbolic distribution was added in `scipy.stats.genhyperbolic`. The studentized range distribution was added in `scipy.stats.studentized_range`. `scipy.stats.argus` now has improved handling for small parameter values. Better argument handling/preparation has resulted in performance improvements for many distributions. The ``cosine`` distribution has added ufuncs for ``ppf``, ``cdf``, ``sf``, and ``isf`` methods including numerical precision improvements at the edges of the support of the distribution. An option to fit the distribution to data by the method of moments has been added to the ``fit`` method of the univariate continuous distributions. Other -------- `scipy.stats.bootstrap` has been added to allow estimation of the confidence interval and standard error of a statistic. The new function `scipy.stats.contingency.crosstab` computes a contingency table (i.e. a table of counts of unique entries) for the given data. `scipy.stats.NumericalInverseHermite` enables fast random variate sampling and percentile point function evaluation of an arbitrary univariate statistical distribution. New `scipy.stats.qmc` module ---------------------------------------- This new module provides Quasi-Monte Carlo (QMC) generators and associated helper functions. It provides a generic class `scipy.stats.qmc.QMCEngine` which defines a QMC engine/sampler. An engine is state aware: it can be continued, advanced and reset. 3 base samplers are available: - `scipy.stats.qmc.Sobol` the well known Sobol low discrepancy sequence. Several warnings have been added to guide the user into properly using this sampler. The sequence is scrambled by default. - `scipy.stats.qmc.Halton`: Halton low discrepancy sequence. The sequence is scrambled by default. - `scipy.stats.qmc.LatinHypercube`: plain LHS design. And 2 special samplers are available: - `scipy.stats.qmc.MultinomialQMC`: sampling from a multinomial distribution using any of the base `scipy.stats.qmc.QMCEngine`. - `scipy.stats.qmc.MultivariateNormalQMC`: sampling from a multivariate Normal using any of the base `scipy.stats.qmc.QMCEngine`. The module also provide the following helpers: - `scipy.stats.qmc.discrepancy`: assess the quality of a set of points in terms of space coverage. - `scipy.stats.qmc.update_discrepancy`: can be used in an optimization loop to construct a good set of points. - `scipy.stats.qmc.scale`: easily scale a set of points from (to) the unit interval to (from) a given range. *********************** Deprecated features *********************** `scipy.linalg` deprecations ==================== - `scipy.linalg.pinv2` is deprecated and its functionality is completely subsumed into `scipy.linalg.pinv` - Both ``rcond``, ``cond`` keywords of `scipy.linalg.pinv` and `scipy.linalg.pinvh` were not working and now are deprecated. They are now replaced with functioning ``atol`` and ``rtol`` keywords with clear usage. `scipy.spatial` deprecations ===================== - `scipy.spatial.distance` metrics expect 1d input vectors but will call ``np.squeeze`` on their inputs to accept any extra length-1 dimensions. That behaviour is now deprecated. ************************************** Backwards incompatible changes ************************************** ***************** Other changes ***************** We now accept and leverage performance improvements from the ahead-of-time Python-to-C++ transpiler, Pythran, which can be optionally disabled (via ``export SCIPY_USE_PYTHRAN=0``) but is enabled by default at build time. There are two changes to the default behavior of `scipy.stats.mannwhitenyu`: - For years, use of the default ``alternative=None`` was deprecated; explicit ``alternative`` specification was required. Use of the new default value of ``alternative``, "two-sided", is now permitted. - Previously, all p-values were based on an asymptotic approximation. Now, for small samples without ties, the p-values returned are exact by default. Support has been added for PEP 621 (project metadata in ``pyproject.toml``) We now support a Gitpod environment to reduce the barrier to entry for SciPy development; for more details see :ref:`quickstart-gitpod`. ********* Authors ********* * @endolith * Jelle Aalbers + * Adam + * Tania Allard + * Sven Baars + * Max Balandat + * baumgarc + * Christoph Baumgarten * Peter Bell * Lilian Besson * Robinson Besson + * Max Bolingbroke * Blair Bonnett + * Jord?o Bragantini * Harm Buisman + * Evgeni Burovski * Matthias Bussonnier * Dominic C * CJ Carey * Ram?n Casero + * Chachay + * charlotte12l + * Benjamin Curtice Corbett + * Falcon Dai + * Ian Dall + * Terry Davis * droussea2001 + * DWesl + * dwight200 + * Thomas J. Fan + * Joseph Fox-Rabinovitz * Max Frei + * Laura Gutierrez Funderburk + * gbonomib + * Matthias Geier + * Pradipta Ghosh + * Ralf Gommers * Evan H + * h-vetinari * Matt Haberland * Anselm Hahn + * Alex Henrie * Piet Hessenius + * Trever Hines + * Elisha Hollander + * Stephan Hoyer * Tom Hu + * Kei Ishikawa + * Julien Jerphanion * Robert Kern * Shashank KS + * Peter Mahler Larsen * Eric Larson * Cheng H. Lee + * Gregory R. Lee * Jean-Benoist Leger + * lgfunderburk + * liam-o-marsh + * Xingyu Liu + * Alex Loftus + * Christian Lorentzen + * Cong Ma * Marc + * MarkPundurs + * Markus L?ning + * Liam Marsh + * Nicholas McKibben * melissawm + * Jamie Morton * Andrew Nelson * Nikola Forr? * Tor Nordam + * Olivier Gauth? + * Rohit Pandey + * Avanindra Kumar Pandeya + * Tirth Patel * paugier + * Alex H. Wagner, PhD + * Jeff Plourde + * Ilhan Polat * pranavrajpal + * Vladyslav Rachek * Bharat Raghunathan * Recursing + * Tyler Reddy * Lucas Roberts * Gregor Robinson + * Pamphile Roy + * Atsushi Sakai * Benjamin Santos * Martin K. Scherer + * Thomas Schmelzer + * Daniel Scott + * Sebastian Wallk?tter + * serge-sans-paille + * Namami Shanker + * Masashi Shibata + * Alexandre de Siqueira + * Albert Steppi + * Adam J. Stewart + * Kai Striega * Diana Sukhoverkhova * S?ren Fuglede J?rgensen * Mike Taves * Dan Temkin + * Nicolas Tessore + * tsubota20 + * Robert Uhl * christos val + * Bas van Beek + * Ashutosh Varma + * Jose Vazquez + * Sebastiano Vigna * Aditya Vijaykumar * VNMabus * Arthur Volant + * Samuel Wallan * Stefan van der Walt * Warren Weckesser * Anreas Weh * Josh Wilson * Rory Yorke * Egor Zemlyanoy * Marc Zoeller + * zoj613 + * ?? + A total of 126 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. ************************** Issues closed for 1.7.0 ************************** * `#636 `__: Statistics Review: mannwhitneyu (Trac #109) * `#1346 `__: signal.medfilt2d should fall back on signal.medfilt for types... * `#2118 `__: Mann-Whitney statistic returns incorrect results (Trac #1593) * `#2158 `__: special.chndtrix (ncx2.ppf) gives wrong results (Trac #1633) * `#3284 `__: build_sphinx weirdness * `#3352 `__: beta distribution sf * `#4067 `__: Mannwhitneyu with arrays full of nan still reports significance * `#4080 `__: entropy in Scipy * `#4641 `__: mstats.mannwhitneyu and stats.mannwhitneyu return inconsistent... * `#5122 `__: scipy.stats.binom.ppf Incorrect for p=0 * `#5180 `__: Rbf interpolation - use only K nearest neighbors * `#5258 `__: affine_transform complains about output_shape when output array... * `#5562 `__: Wishart degrees of freedom should be $v > p-1$ instead of $v... * `#5933 `__: mstats_basic.py - mannwhitneyu [scipy/scipy/stats/mstats_basic.py] * `#6409 `__: _unequal_var_ttest_denom causes ZeroDivisionError in early samples * `#6682 `__: negative binomial survival function is imprecise * `#6897 `__: scipy.stats.mannwhitneyu of empty sets gives p=0.0 and does not... * `#7303 `__: stats.describe with nan_policy=omit returns matrix-wide minmax... * `#7406 `__: scipy.stats.binom.ppf returns nan for q between 0 and 1 if n... * `#7437 `__: ENH: add skewed Cauchy distribution to stats * `#7542 `__: DOC: stats tutorials: Questions on arcsine and Student t formulae * `#7593 `__: Meaning of \`tol\` argument in \`scipy.optimize.minimize\` is... * `#8565 `__: Error in SmoothSphereBivariateSpline(): "ValueError: Error code... * `#8665 `__: \`scipy.ncx2.sf\` should be monotone decreasing * `#8836 `__: scipy.optimize.linprog(method='simplex') needs to return duals * `#9184 `__: Mann-Whitney implementation wrong? * `#9450 `__: allow seeding of init methods in vq.kmeans2 * `#9704 `__: RectSphereBivariateSpline fails for negative longitude * `#9836 `__: scipy.stats.rice gives incorrect results when s is very low compared... * `#9904 `__: Request/Proposal: Greatly improve scipy.interpolate.Rbf * `#9981 `__: stats.kruskal : add a warning for an input with 2 or more columns * `#10358 `__: DOC: linprog and linear_sum_assignment tutorials needed * `#10908 `__: Nakami fitting doesn't converge (scipy.stats) * `#10933 `__: Add scaled inverse chi2 distribution * `#11014 `__: Barnard's Test for More Powerful Hypothesis Testing of 2x2 Contingency... * `#11050 `__: Feature request: Nelder-Mead with bounds * `#11086 `__: scipy.stats.skew doesn't work correctly for float point numbers * `#11113 `__: inconsistent result from ttest_ind and mannwhitneyu when used... * `#11134 `__: Wrong confidence interval for binomial distribution with p=0 * `#11325 `__: Add axis parameter for scipy.spatial.distance.jensenshannon * `#11474 `__: scipy.stats.skellam.cdf(0) returns 0 for large mu1 = mu2 * `#11523 `__: scipy.stats.zipf doesn't implement zipf distribution * `#11848 `__: How to get Lagrange / lambda multipliers out of 'linprog' optimize... * `#11909 `__: Enable bounds for lambda in boxcox * `#12118 `__: Docstring missing defaults * `#12132 `__: Slow tests to be trimmed or moved to test('full') * `#12230 `__: Dendrogram: enable leaves labelling with 'labels' when using... * `#12282 `__: scipy.stats.chisquare test does not check that observed and expected... * `#12298 `__: BUG: fmin_powell missing squeeze in 1.5.0rc * `#12403 `__: Add nan_policy to stats.zmap * `#12518 `__: Null hypothesis of Kolmogorov Smirnov test is not correctly described * `#12534 `__: Feature request: scipy.linalg.norm to deal with 0-size array * `#12622 `__: scipy.interpolate.interpn docstring example * `#12635 `__: scipy.stats.beta.ppf gives unexpexted results * `#12669 `__: Median-averaging of complex CSDs * `#12731 `__: stats.ncx2.cdf fails for nc >> x >> 1 * `#12778 `__: Confusing documentation of scipy.stats.weightedtau * `#12794 `__: [Bug] The result of stats.beta.isf is inconsistent with stats.beta.sf * `#12837 `__: stats.mannwhitneyu could support arrays * `#12868 `__: Vector-valued interpolation in \`interp2d\` * `#12922 `__: Minimize with trust-constr method leads to TypeError if option... * `#12929 `__: The use of starred expressions to create data detracts from understanding... * `#12965 `__: domain of argument of scipy.interpolate.RectSphereBivariateSpline(u,... * `#13025 `__: Generalized Hyperbolic Distribution * `#13090 `__: Broken link in doc for signal.max_len_seq * `#13101 `__: MAINT: Upgrade python version in docker file * `#13158 `__: \`signal.get_window()\` has a missing doc link and cannot get... * `#13173 `__: Uninformative error message from bisplev function * `#13234 `__: BUG: stats: Wrong shape of burr.moment() and fisk.moment() when... * `#13242 `__: Does kmeans "drop" clusters? * `#13243 `__: tgsen uses an output argument for computing a default argument * `#13245 `__: Kurtosis returning 1 for array of same elements * `#13257 `__: GitHub Actions test failures for MacOS * `#13272 `__: scipy.stats.yeojohnson_llf doc mistake * `#13280 `__: Wrong results with hypergeom cdf * `#13285 `__: description correction in scipy.stats.t * `#13287 `__: Generate binomial CDF with mu instead of prob * `#13294 `__: BUG: stats: wrong bounds returned by 'support' method for distributions... * `#13299 `__: Typing for scipy.spatial * `#13300 `__: Add a single individual to a latinhypercube initial population... * `#13311 `__: MAINT: pavement.py PYVER is outdated * `#13339 `__: savemat discards dimension information if any dimension is zero * `#13341 `__: add scipy.stats.variation with an ddof parameter * `#13353 `__: Documentation: in scipy.stats.johnsonsu, parameter \`a\` can... * `#13405 `__: TST: add a few tests for sparse BSR ctor * `#13410 `__: BUG: skew for empty array raises * `#13417 `__: 10,000 times speedup for generating random numbers from the cosine... * `#13440 `__: python runtest.py -t path-to-test.py failed * `#13454 `__: Scipy cosine distance can be greater than 2 * `#13459 `__: Broken link in cramervonmises documentation * `#13494 `__: One-word typo in the documentation of optimize.linprog_simplex * `#13501 `__: minimize using Powell methods with Bounds leads to "TypeError:... * `#13509 `__: signal.medfilt2d vs ndimage.median_filter * `#13511 `__: DOC: error in description of "direc" parameter of "fmin_powell" * `#13526 `__: TST: stats: intermittent \`test_ttest_ind_randperm_alternative2... * `#13536 `__: \`_within_tolerance\` seems an unnecessary repetition of \`numpy.isclose\` * `#13540 `__: missing python 3.8 manylinux wheels on scipy-wheels-nightly * `#13559 `__: shape error in linprog with revised simplex * `#13587 `__: binned_statistic unreliable with single precision * `#13589 `__: Better argument preparation for distributions in stats package. * `#13602 `__: The crystallball distribution entropy is sometimes minus infinity * `#13606 `__: MAINT: mypy: some typing errors while running mypy + adding mypy... * `#13608 `__: Why does stats.binned_statistic_2d convert its values argument... * `#13609 `__: BUG: SciPy pip install -e gets unusable version spec * `#13610 `__: Highs solver did not provide a solution nor did it report a failure * `#13614 `__: BUG: invgauss.cdf should return the correct value when \`mu\`... * `#13628 `__: 1-letter typo in the definition of scipy.special.spence function... * `#13634 `__: mmwrite fails on dense, skew-symmetric array * `#13646 `__: Sparse matrix argmax() integer overflow on Windows 10 * `#13647 `__: \`scipy.stats.qmc.LatinHypercube\` cannot sample single sample... * `#13651 `__: Documentation wrong in scipy.linalg.eigvalsh * `#13664 `__: BUG: gamma distribution's inverse survival function overflows... * `#13693 `__: BUG: sokalmichener appears to incorrectly apply weights * `#13697 `__: BUG: stats: Spurious warning generated by arcsine.pdf at the... * `#13704 `__: Make it possible to pass a rank cut-off value relatively to the... * `#13707 `__: Kullback Leibler Divergence broadcasting no longer works * `#13740 `__: Scipy.optimize x0 out of bounds when it is within bounds. * `#13744 `__: scipy.interpolate.interp1d has inconsistent behavior for non-unique... * `#13754 `__: optimize.minimize 'trust' methods and finite difference Hessian... * `#13762 `__: MAINT, TST: aarch64 stats test failures showing up in wheels... * `#13769 `__: probplot draws fit line even when fit=False * `#13791 `__: BUG: stats: wrapcauchy.cdf does not broadcast the shape parameter... * `#13793 `__: CI: CircleCI doc build failure * `#13840 `__: manylinux1 builds are failing because of C99 usage in \`special/_cosine.c\` * `#13850 `__: CI: Homebrew is failing due to bintray * `#13875 `__: BUG: chi2_contingency with Yates correction * `#13878 `__: BUG: \`signal.get_window\` argument handling issue * `#13880 `__: Remove all usages of numpy.compat * `#13896 `__: Boschloo's Test for More Powerful Hypothesis Testing of 2x2 Contingency... * `#13923 `__: Inverse of Log CDF of Normal Distribution * `#13933 `__: \`signal.get_window\` does not support \`general_cosine\` and... * `#13950 `__: DOC: scipy.spatial.KDTree.query * `#13969 `__: N=4 must not exceed M=3 * `#13970 `__: Pearson's original paper on chi-square test could be referenced. * `#13984 `__: Faster addition of sparse diagonal matrices * `#13988 `__: An error occurred when using scipy.io.wavfile of scipy 1.6 version... * `#13997 `__: BUG: sparse: Incorrect result from \`dia_matrix.diagonal()\` * `#14005 `__: MAINT: optimize: \`curve_fit\` input error msg can be improved. * `#14038 `__: MAINT: add type annotations for _sobol.pyx * `#14048 `__: DOC: missing git submodule information * `#14055 `__: linalg.solve: Unclear error when using assume_a='her' with real... * `#14093 `__: DOC: Inconsistency in the definition of default values in the... * `#14158 `__: TST, BUG: test_rbfinterp.py -- test_interpolation_misfit_1d fails... * `#14170 `__: TST: signal submodule test_filtfilt_gust failing on 32-bit amd64... ************************** Pull requests for 1.7.0 ************************** * `#4824 `__: Permutation Ttest (new PR) * `#4933 `__: ENH: Update the Mann-Whitney-Wilcoxon test * `#7702 `__: ENH: stats: Add Skewed Cauchy Distribution * `#8306 `__: Optional Pythran support for scipy.signal.max_len_seq_inner * `#10170 `__: MAINT: stats: Implement cdf and ppf as ufuncs for the cosine... * `#10454 `__: ENH: Extend find_peaks_cwt to take numbers and iterables for... * `#10844 `__: ENH: add stats.qmc module with quasi Monte Carlo functionality * `#11313 `__: ENH: add Wright's generalized Bessel function * `#11352 `__: ENH: stats: Add crosstab function. * `#11477 `__: FIX: bounded parameter in cdfchn.f gives bad results * `#11695 `__: ENH: stats: add method of moments to \`rv_continuous.fit\` * `#11911 `__: ENH: Added bounds to boxcox and boxcox_normmax * `#12438 `__: BUG: use ellipkm1 in elliptical filter design to prevent numerical... * `#12531 `__: ENH: stats: add Page's L test * `#12603 `__: ENH: stats: Add \`binomtest\` to replace \`binom_test\`. * `#12653 `__: ENH: stats: add Somers' D test * `#12676 `__: BUG: update median averaging in signal.csd * `#12760 `__: BUG: special: erfinv(x<<1) loses precision * `#12801 `__: ENH: Add single-sided p-values to remaining spearmanr and linregress * `#12873 `__: ENH: Stats: add Alexander Govern Test * `#13008 `__: ENH: Add 'alternative' to functions using normal CDF for p-value * `#13040 `__: BUG: Allow RectSphereBivariateSpline to accept negative longitude * `#13048 `__: ENH: stats: Add a function that computes the relative risk. * `#13067 `__: ENH: Add weights parameter to stats.gmean * `#13084 `__: ENH: fast Hankel transform * `#13104 `__: MAINT: upgrade python version (drop python 3.6) for docker dev... * `#13153 `__: ENH: added association measurements Pearsons Contingency Coefficient,... * `#13166 `__: ENH: stats: Add nan_policy to zmap. * `#13175 `__: MAINT: tests for tall cost matrices in \`linear_sum_assignment\` * `#13177 `__: BUG: raise NotImplementedError in fourier_ellipsoid when ndim... * `#13184 `__: BUG: stats: Fix min and max calculation of mstats.describe with... * `#13188 `__: DOC: stats: make null and alternative hypotheses of kstest more... * `#13193 `__: MAINT: stats: chisquare check sum of observed/expected frequencies * `#13197 `__: ENH/MAINT: HiGHS upstream enhancements and bug fixes * `#13198 `__: ENH: allow inference of output_shape from out array in affine_transform * `#13204 `__: ENH: stats: add Zipfian (different from Zipf/zeta) distribution * `#13208 `__: REL: set version to 1.7.0.dev0 * `#13216 `__: TST: stats: break up and mark slow tests * `#13224 `__: Update docs for the weighted ? * `#13230 `__: ENH: linalg: Add LAPACK wrapper for tgexc. * `#13232 `__: MAINT: stats: raise error when input to kruskal has >1 dim * `#13233 `__: DOC: stats: fix MGF of arcsine and entropy of t in tutorial * `#13236 `__: MAINT: reorganize shared linear assignment tests * `#13237 `__: BENCH: Refactor stats.Distribution to easily add new distributions * `#13238 `__: BUG: stats: fix wrong shape output of burr and fisk distributions * `#13240 `__: MAINT: add tests of trivial cost matrices for linear sum assignment * `#13252 `__: DOC: optimize: add \`optimize.linear_sum_assignment\` tutorial. * `#13254 `__: BUG: Fix precision issues for constant input in skew and kurtosis * `#13262 `__: BUG: scipy.medfilt and .medfilt2d fixes * `#13263 `__: ENH: add Cramer-von Mises test for two samples * `#13264 `__: fix a minor typo in \`stats.anderson\` doc * `#13268 `__: ENH: stats: Add implementation of _entropy for the t distr. * `#13273 `__: DOC: stats: fix typo in Yeo-Johnson LL function documentation * `#13275 `__: MAINT: stats: Correct a comment in the _fitstart method of gamma. * `#13283 `__: BUG: stats: fix the cdf method of rv_discrete class * `#13286 `__: DOC: stats: clairify rv_continuous/discrete.stats example * `#13288 `__: DOC: stats: discrete distribution shape parameter restrictions * `#13289 `__: MAINT: fix a build warning in sigtoolsmodule.c * `#13290 `__: DOC: Expand the discussion of the nan_policy API. * `#13291 `__: MAINT: signal, stats: Use keepdims where appropriate. * `#13292 `__: DOC: stats: note another common parameterization of nbinom * `#13293 `__: DOC: Change broken link for default values to archived link * `#13295 `__: BUG: stats: fix the support method to return correct bounds * `#13296 `__: DOC: stats: Fix latex markup in the kstwo docstring. * `#13297 `__: TST: mark kde.logpdf overflow test as xslow * `#13298 `__: Generalized Hyperbolic Distribution * `#13301 `__: DOC: cluster: Add cluster number note to the docstring of cluster.vq.kmeans * `#13302 `__: BUG: Fix ndimage.morphology.distance_transform\_\* argument handling * `#13303 `__: CI: prevent Codecov giving false CI failures and wrong PR annotations * `#13313 `__: ENH: static typing for qhull * `#13316 `__: Pythran implementation of scipy.signal._spectral * `#13317 `__: DOC: forward port 1.6.0 relnotes * `#13319 `__: ENH: stats: add fast numerical inversion of distribution CDF * `#13320 `__: ENH: x0 for differential_evolution * `#13324 `__: DOC correct linprog highs versionadded to 1.6 * `#13326 `__: MAINT: update numpydoc to v1.1.0 * `#13327 `__: DOC: interpolate: improved docstring examples of \`interpolate.interpn()\`... * `#13328 `__: ENH: Boost stats distributions * `#13330 `__: ENH: stats: add noncentral hypergeometric distributions (Fisher's... * `#13331 `__: MAINT/ENH: resolve mypy warnings/errors * `#13332 `__: DOC: interpolate: improved docstring of \`interpolate.interp2d\`... * `#13333 `__: ENH: stats: Some more _sf and _isf implementations. * `#13334 `__: MAINT: stats: Clean up a few defunct comments in _continuous_distns.py * `#13336 `__: Pythran version of scipy.optimize._group_columns * `#13337 `__: DOC|ENH: type hinting in scipy.integrate.simpson * `#13346 `__: ENH: stats: add 'ddof' parameter to the 'variation' function * `#13355 `__: ENH: stats: implement _logpdf, _sf and _isf for loggamma. * `#13360 `__: ENH|DOC: fix docstring and input validation in interpolate.RectSphereBivariateSpline * `#13366 `__: BUG: stats: Don't raise ZeroDivisionError in _unequal_var_ttest_denom * `#13370 `__: ENH: fix ARGUS distribution for small parameters in stats * `#13371 `__: ENH: stats: add \`bootstrap\` for estimating confidence interval... * `#13373 `__: BUG: io/matlab: preserve dimensions of empty >=2D arrays * `#13374 `__: ENH: stats: add skewed Cauchy distribution * `#13379 `__: BUG: sparse: fix verbosity in sparse lsqr * `#13383 `__: TST: stats: mark many dimension permutation t-test slow * `#13384 `__: MAINT: Make keywords array static * `#13388 `__: PERF: Avoid duplicate mean calculations in skew and kurtosis * `#13389 `__: DOC: Fix deprecated directive syntax * `#13390 `__: DOC: Correct line length for Parameter Section underline * `#13393 `__: MAINT: stats: allow wishart dim - 1 < df < dim * `#13395 `__: DOC: fix typo in setup.py warning message * `#13396 `__: BUG: Fix MLE for Nakagami \`nakagami_gen.fit\` * `#13397 `__: MAINT:linalg: Fix tgsen family wrapper and ordqz * `#13406 `__: TST: add error handling tests for sparse BSR ctor * `#13413 `__: DOC: ultra-quickstart guide * `#13418 `__: BUG: Fix moment returning inconsistent types and shapes * `#13423 `__: DOC: Update example for leaf_label_func/dendrogram * `#13431 `__: ENH: stats: override _rvs for nhypergeom * `#13432 `__: Add indicator in NDInterpolator docstring that N must be > 1 * `#13434 `__: DOC: stats: note relationship between scaled-inv-chi2 and invgamma * `#13436 `__: ENH: interpolate: add input validation to check input x-y is... * `#13441 `__: ENH: add functionality \`barnard_exact\` test to scipy.stats. * `#13443 `__: MAINT: stats: Updates for skewcauchy * `#13444 `__: DOC: clarify range of \`a\` parameter fpr johnsonsu/johnsonsb * `#13445 `__: DOC: fix runtests guidelines. * `#13446 `__: MAINT: stats: Add _fitstart method to wrapcauchy. * `#13447 `__: DEV: Update development Docker image * `#13448 `__: ENH: Add annotations for \`scipy.spatial.distance\` * `#13451 `__: DOC: minor formatting. * `#13458 `__: DOC: indent see also. * `#13460 `__: DOC: stats: Fix link to Cramer-von Mises wikipedia article. * `#13461 `__: DOC: reorganize scipy.stats overview docs page * `#13463 `__: DOC: misc formatting fixes * `#13466 `__: DOC: Typo in see also s/SmoothUni/SmoothBi/g * `#13467 `__: DOC: optimize: add description about \`tol\` argument for \`minimize\`. * `#13469 `__: MAINT: Refactor optimization methods to use scipy.stats.qmc * `#13477 `__: CI: pin numpy to 1.19.5 for the three macOS CI jobs * `#13478 `__: DOC: fix typos where double :: for Sphinx directives were missing * `#13481 `__: CI: pin numpy to 1.19.5 in the 4 parallel Windows builds on Azure * `#13482 `__: CI: use numpy 1.20.0 again in macOS CI * `#13483 `__: DOC: Multiple documentation syntax fixes. * `#13484 `__: Move some pythran config from CI to setup * `#13487 `__: DOC: add a tutorial about scipy.stats.qmc * `#13492 `__: ENH: GH actions should not run on forks * `#13493 `__: DEV: Enable gitpod for SciPy * `#13495 `__: DOC One-word typo in the documentation of optimize.linprog_simplex * `#13499 `__: DOC: describe LSAP implementation * `#13502 `__: BUG: Bounds created with lists weren't working for Powell * `#13507 `__: MAINT, TST: stats: centralize invalid parameters list for all... * `#13510 `__: DOC: stats: fix small doc errors in 'multivariate_hypergeom' * `#13513 `__: DOC: Added math notation in examples in ltisys.py * `#13514 `__: ENH: simplify low_0_bit function for Sobol * `#13515 `__: ENH: optimize: add bound constraint support for nelder-mead solver * `#13516 `__: DOC: reduce LaTeX usage for johnsonb docstring * `#13519 `__: BLD: remove build_sphinx support from setup.py * `#13527 `__: TST: stats: xfail ttest_ind_randperm_alternative2 on 32 bit * `#13530 `__: DOC: correct comparisons between median filter functions * `#13532 `__: ENH: release the GIL inside medfilt2d * `#13538 `__: DOC: optimize: fix minor doc error in 'fmin_powell' (#13511) * `#13546 `__: DOC: fix list of "mode" options for ndimage * `#13549 `__: ENH: stats: add 'alternative' keyword to some normality tests. * `#13551 `__: MAINT: add git to docker env * `#13552 `__: MAINT: stats: remove float_power shim * `#13553 `__: DOC: use support rather than a/b in stats tutorial * `#13560 `__: MAINT: optimize: improve linprog error message for sparse input... * `#13562 `__: MAINT: optimize: using np.isclose instead of _within_tolerance. * `#13566 `__: ENH: Speed up hdquantiles_sd() * `#13569 `__: BENCH: optimize: benchmark only HiGHS methods; add bigger linprog... * `#13574 `__: DOC: In description of cluster.hierarchy.dendrogram 'level' parameter,... * `#13576 `__: ENH: improve discrepancy performance * `#13579 `__: TST: Add pybind11 to tox environments * `#13583 `__: BUG: Fix Dockerfile apt-get installs * `#13588 `__: MAINT: forward port 1.6.1 relnotes. * `#13593 `__: BUG: stats: preserve sample dtype for bin edges * `#13595 `__: ENH: interpolate: add RBFInterpolator * `#13596 `__: DOC: Fix indentation in new_stats_distribution.rst.inc * `#13601 `__: Add dpss for get_window function * `#13604 `__: DOC: Correct dual annealing visiting param range. * `#13605 `__: Add Codecov badge to README * `#13607 `__: MAINT: stats: fix crystalball entropy * `#13611 `__: Better argument preparation for distributions in stats package. * `#13612 `__: Add docker run command for Windows cmd * `#13613 `__: MAINT, CI: mypy: fix typing errors + add mypy to CI * `#13616 `__: FIX: Return correct output for invgauss.cdf when mu is very small * `#13617 `__: MAINT: accept numbers and iterables for width in find_peaks_cwt * `#13620 `__: CI: disable the mypy CI job (partial revert of gh-13613) * `#13621 `__: DOC: signal: use array_like for input types * `#13622 `__: MAINT: clean up some unused files, make \`mypy scipy\` pass * `#13623 `__: CI: enable Mypy CI job again * `#13624 `__: TST: test more values for \`visiting_param\` input to \`dual_annealing\` * `#13625 `__: Rename integrate.simps to integrate.simpsons in documentation... * `#13631 `__: ENH: add a \`stats.differential_entropy\` function * `#13633 `__: BUG: stats.binned_statistic_2d user function expecting arrays * `#13641 `__: ENH: Added degrees parameter to rotvec * `#13645 `__: MAINT: mypy: don't install numpy-stubs * `#13649 `__: BUG: sparse: csc_matrix.argmax() integer overflow * `#13650 `__: ENH: stats: add 'alternative' parameter to ansari * `#13652 `__: DOC: fix eigvalsh documentation (#13651) * `#13654 `__: BUG: Fix LatinHypercubes * `#13656 `__: DOC: Fix PCHIP references * `#13657 `__: TST: remove IPython warning in debug session * `#13658 `__: Remove spurious quotes in docstring * `#13661 `__: ENH: stats: improve efficiency of / fix bug in exact permutation... * `#13667 `__: MAINT: Make latest Docker image default * `#13668 `__: MAINT: add .theia/ to .gitignore * `#13669 `__: BLD: change SCIPY_USE_PYTHRAN default to \`1\` * `#13676 `__: ENH Small improvements for LSQR with damp * `#13678 `__: MAINT: add Pythran-generated files to .gitignore * `#13679 `__: MAINT: move the \`conda develop .\` in the Gitpod config * `#13680 `__: DOC: Add cKDTree note comparing it with KDTree * `#13681 `__: DOC: build doc updates on Pythran, compiled code, and cleanups * `#13683 `__: BUG: mmwrite correctly serializes non skew-symmetric arrays * `#13684 `__: FIX: fix numerical overflow in gamma.isf method * `#13685 `__: BUG: fix cosine distance range to 0-2 * `#13694 `__: MAINT: fix warning emitted when NumPy version is incorrect * `#13696 `__: ENH: support trimming in ttest_ind * `#13698 `__: BUG: stats: Fix spurious warnings generated by arcsine.pdf * `#13701 `__: DEV: scipy.interpolate b-splines (periodic case) * `#13702 `__: DEP: Clean up spent deprecations in spatial.distance * `#13703 `__: MAINT: fix issues found by static code analysis * `#13706 `__: ENH: stats: Implement sf and isf for the laplace distribution. * `#13711 `__: MAINT: stats: fix broadcasting for scipy.stats.entropy * `#13712 `__: BUG: stats: Override _fitstart for the invweibull distribution. * `#13713 `__: DOC: update toolchain.rst to reflect windows universal C runtime * `#13714 `__: MAINT: stats: Remove an unused list from test_continuous_basic.py. * `#13715 `__: MAINT: stats: No need to suppress frechet deprecation warnings. * `#13716 `__: MAINT: use super() as described by PEP 3135 * `#13718 `__: MAINT: new-style class, removing inheritance to object * `#13721 `__: MAINT: add a type-ignore for mpmath (#13721) * `#13723 `__: MAINT: mypy: ignore mpmath imports in mypy.ini * `#13724 `__: DOC: pydata sphinx theme * `#13725 `__: BENCH: add benchmark for Kendalltau * `#13727 `__: CI: simplify Pythran configuration setup for Azure * `#13731 `__: MAINT: stats: Some flake8-driven clean up. * `#13732 `__: ENH: stats: Studentized Range Distribution * `#13735 `__: DOC: correct Voronoi docstring * `#13738 `__: DOC: add example to wright_bessel * `#13739 `__: ENH: stats: Implement _sf and _isf for the chi distribution. * `#13741 `__: MAINT: prevent overwriting of x in minimize * `#13747 `__: DOC: Add note for interp1d for non-unique x-values * `#13749 `__: MAINT: forward port 1.6.2 relnotes * `#13759 `__: MAINT: simpson small performance speedups * `#13765 `__: FIX: npymath missing causing npy_log1p to be unknown * `#13768 `__: BENCH: Add missing pythran dependency * `#13770 `__: ENH: stats.contingency: Add the sparse option to crosstab. * `#13774 `__: DEP: Deprecate squeezing input vectors in spatial.distance * `#13775 `__: Enable trust region methods to use a finite difference Hessian... * `#13777 `__: DOC: Fix Ubuntu/Debian installation instructions * `#13778 `__: DOC: remove references to RandomState * `#13782 `__: MAINT: LBFGSB err msg on MAXLS changed closes #11718 * `#13785 `__: BENCH: Add benchmark for cdist/pdist with weights * `#13786 `__: MAINT: Prepare cdist/pdist for C++ rework * `#13787 `__: MAINT: stats: move entropy and differential_entropy functions... * `#13790 `__: DOC: Add some dependencies for Dockerfile doc of scipy development. * `#13792 `__: BUG: stats: Fix broadcasting in wrapcauchy.cdf * `#13795 `__: MAINT: stats: add hypotests to __all__ in init.py, not stats.py * `#13797 `__: MAINT: stats: probplot: don't plot least-squares fit line unless... * `#13798 `__: MAINT: fix incorrect code comment in \`hierarchy.to_tree\` * `#13802 `__: DEV: add environment.yml file for development with conda/mamba * `#13803 `__: DOC: fix doc build warning about arxiv role already being registered * `#13804 `__: DOC+MAINT: optimize: lb and ub in the Bounds constructor are... * `#13807 `__: MAINT: Dont use parallel Sphinx * `#13808 `__: MAINT: cluster.to_tree: more idiomatic looping over rows of matrix... * `#13810 `__: MAINT: add a CODEOWNERS file * `#13811 `__: MAINT: Add ci skip to azp * `#13814 `__: ENH/DOC: pydata sphinx theme polishing * `#13817 `__: DOC: Misc parameter typo and casing in scipy/linalg/_decomp_ldl.py * `#13818 `__: MAINT: stats: keep \`entropy\` importable from \`scipy.stats.distributions\` * `#13820 `__: BUG: update _kendall_p_exact ValueError to f-string * `#13831 `__: FIX:DEP: Allow better tolerance control for pinv and pinvh and... * `#13832 `__: BUG: stats: Fix rvs for levy_stable when alpha=1 * `#13833 `__: MAINT: Add inline type hintings for stats.qmc * `#13836 `__: MAINT: Fix a couple compiler warnings. * `#13838 `__: TST: relax test tolerances for BinomTest * `#13841 `__: BLD: add \`-std=c99\` flag to scipy.special extensions using... * `#13845 `__: ENH: stats: add \`method\` parameter to \`differential_entropy\`... * `#13847 `__: TST: skip on optimize failure on macOS, mark one as xfail * `#13848 `__: DOC: optimize: move Nelder Mead doc from Unconstrained minimization... * `#13849 `__: DOC: Roadmap update * `#13852 `__: CI: fix temporary wrong brew version from GitHub * `#13854 `__: ENH: Update Scipy Gitpod * `#13859 `__: TST: fix ultra-slow ttest permutations test * `#13860 `__: MAINT: clean up LSAP error checking * `#13863 `__: DOC: remove seed in examples * `#13865 `__: DOC: optimize: The bounds param of differential_evolution is... * `#13866 `__: MAINT: special: Remove an unused variable from _poly_approx in... * `#13867 `__: DOC: stats: Explain meaning of alternatives for fisher_exact. * `#13868 `__: CI: fix the failing job on linux. * `#13870 `__: MAINT: move LSAP rectangular matrix handling into solver code * `#13871 `__: DOC: Add Gitpod documentation * `#13876 `__: Workflow : Add nightly release of NumPy in linux workflows * `#13877 `__: DOC: Conform to numpydoc + uniformity. * `#13879 `__: BUG: signal: fix get_window argument handling and add tests. * `#13881 `__: CI: remove .travis.yml, remove codecov from CircleCI * `#13882 `__: BLD: ensure incrementing dev version strings * `#13886 `__: TST: optimize: skip test_network_flow_limited_capacity w/ UMFPACK... * `#13888 `__: MAINT: Fix issues involving elif conditions * `#13891 `__: Rename InivariateSpline to UnivariateSpline * `#13893 `__: ENH: linprog HiGHS marginals/sensitivy analysis * `#13894 `__: DOC: Add blank line before \`Return\` section. * `#13897 `__: DOC: BLD: fix doc build version check, and improve build time * `#13903 `__: MAINT: Gitpod fixes * `#13907 `__: ENH: Rewrite minkowski metric in C++ with pybind11 * `#13909 `__: Revert "Workflow : Add nightly release of NumPy in linux workflows" * `#13910 `__: DOC: update Readme * `#13911 `__: MAINT: use dict built-in rather than OrderedDict * `#13920 `__: BUG: Reactivate conda environment in init * `#13925 `__: BUG: stats: magnitude of Yates' correction <= abs(observed-expected)... * `#13926 `__: DOC: correct return type in disjoint_set.subsets docstring * `#13927 `__: DOC/MAINT: Add copyright notice to qmc.primes_from_2_to * `#13928 `__: BUG: DOC: signal: fix need argument config and add missing doc... * `#13929 `__: REL: add PEP 621 (project metadata in pyproject.toml) support * `#13931 `__: MAINT: special: get rid of _logit.c.src * `#13934 `__: ENH: signal: make \`get_window\` supports \`general_cosine\`... * `#13940 `__: MAINT: QMCEngine d input validation * `#13941 `__: MAINT: forward port 1.6.3 relnotes * `#13944 `__: BUG: spatial: fix weight handling of \`distance.sokalmichener\`. * `#13947 `__: MAINT: Remove duplicate calculations in sokalmichener * `#13949 `__: DOC: minor grammar fixes in minimize and KDTree.query * `#13951 `__: ENH: Add Boschloo exact test to stats * `#13956 `__: ENH: spatial: add \`axis\` and \`keepdims\` optional argument... * `#13963 `__: MAINT: stats: Fix unused imports and a few other issues related... * `#13971 `__: DOC: Add Karl Pearson's reference to chi-square test * `#13972 `__: ENH: cluster: add an optional argument \`seed\` for \`kmeans\`... * `#13973 `__: BLD: fix build warnings for causal/anticausal pointers in ndimage * `#13975 `__: ENH: set empty array norm to zero. * `#13977 `__: MAINT: signal: replace distutils templating with tempita * `#13978 `__: MAINT: improve validations and keyword only arguments for some... * `#13979 `__: ENH: Add Inverse of Log CDF of Normal Distribution * `#13983 `__: Fixing \`ndimage.watershed_ift\` tutorial's documentation * `#13987 `__: DOC: Adding examples to docstrings in morphology: white_tophat,... * `#13989 `__: DOC: interpolate: improve examples of \`RegularGridInterpolator\`... * `#13990 `__: MAINT, DOC: optimize: Make the input validation explanation clear... * `#13992 `__: Workflow : Add nightly release of NumPy in linux workflows * `#13995 `__: Doc: Continuous integration information * `#14000 `__: BUG: sparse: Fix DIA.diagonal bug and add a regression test * `#14004 `__: ENH: Fast addition dia matrix * `#14006 `__: MAINT: optimize: add validation to check func parameter number... * `#14008 `__: BUG: Raise exception for inconsistent WAV header * `#14009 `__: DEP: Remove usage of numpy.compat * `#14010 `__: MAINT: add support for wheel DL proxy * `#14012 `__: DOC: Broaden Exact Test Reference * `#14015 `__: MAINT: remove brew update * `#14017 `__: BENCH: Add more formats for sparse arithmetic * `#14018 `__: BENCH: add benchmark for f_oneway * `#14020 `__: MAINT: modify np.int\_ to np.int32 to make it the same for 32/64... * `#14023 `__: MAINT: Fix clang build and remove some unicode characters * `#14025 `__: BUG: sparse: fix DIA.setdiag issue * `#14026 `__: TST: optimize: xfail part of test_powell * `#14029 `__: CI: github macos fix * `#14030 `__: MAINT: use 'yield from ' (PEP 380) * `#14031 `__: MAINT: new-style class, removing inheritance to object * `#14032 `__: MAINT: CXXFLAGS for Pythran * `#14033 `__: ENH: Port sqeuclidean and braycurtis to _distance_pybind * `#14034 `__: MAINT: Clean-up 'next = __next__' * `#14045 `__: MAINT: bump PYVER pavement.py * `#14047 `__: DEV: initialize boost submodule in Gitpod Dockerfile * `#14051 `__: BLD: if boost submodule content is missing, error out early * `#14052 `__: DOC: missing submodule init information * `#14057 `__: DOC: special: Add Examples to \`psi\` docstring * `#14058 `__: BUG: fixed a dtype bug in linalg.solve. * `#14060 `__: Doc: Fix typo in documentation of spence function. * `#14061 `__: MAINT:stats: Type annotations for _sobol.pyx * `#14062 `__: DOC: A few small fixes in quickstart_gitpod.rst * `#14063 `__: DOC: signal: add Add Examples to \`cont2discrete\` docstring * `#14064 `__: DOC: optimize: Add Examples to fmin_bfgs docstring * `#14065 `__: Add example for scipy stats.trim1 under docstring * `#14066 `__: DOC add example to scipy.special.hermite * `#14067 `__: DOC add alpha docstring description, add example to docstring * `#14070 `__: DOC add parameters, return, and example to docstring * `#14072 `__: MAINT/TST: Fix tests failing with the nightly build of numpy. * `#14075 `__: DOC Improve the code snippet in signal.hilbert docstring. * `#14076 `__: DOC: Document Jensen-Shannon distance being accepted by cdist/pdist * `#14079 `__: BLD: Avoid importing scipy.stats during cythonize stage * `#14082 `__: MAINT: Remove old, commented extract_diagonal * `#14083 `__: MAINT: sparse: Remove defunct function extract_diagonal * `#14085 `__: ENH: Implement canberra distance in _distance_pybind * `#14086 `__: MAINT: Clear scipy namespace of entries better imported from... * `#14088 `__: Install Pythran from sources for python 3.10 * `#14092 `__: BUG: Fixes issue with clang. * `#14094 `__: DOC: Correct the inconsistence definition of Default in class... * `#14105 `__: TST: stats: mannwhitneyu: check that mstats and stats mannwhitneyu... * `#14106 `__: DOC: stats.mstats: mannwhitneyu: the returned statistic is the... * `#14107 `__: ENH: stats: bootstrap: add \`vectorized\` parameter; automatically... * `#14109 `__: BUG: fix two issues in the fblas signature files * `#14110 `__: DOC: mailmap update * `#14113 `__: ENH: stats: bootstrap: add \`paired\` parameter * `#14116 `__: MAINT: fix deprecated Python C API usage in odr * `#14118 `__: DOC: 1.7.0 release notes * `#14125 `__: DOC: fix typo * `#14126 `__: ENH: stats: bootstrap: add \`batch\` parameter to control batch... * `#14127 `__: CI: upgrade pip in benchmarks CI run * `#14130 `__: BUG: Fix trust-constr report TypeError if verbose is set to 2... * `#14133 `__: MAINT: interpolate: raise NotImplementedError not ValueError * `#14139 `__: FIX/DOC: lsqr doctests print failure * `#14145 `__: MAINT: 1.7.x version pins ("backport") * `#14146 `__: MAINT: commit count if no tag * `#14164 `__: TST, BUG: fix rbf matrix value * `#14166 `__: CI, MAINT: restrictions on pre-release CI * `#14171 `__: TST: signal: Bump tolerances for a test of Gustafsson's... * `#14175 `__: TST: stats: Loosen tolerance in some binomtest tests. * `#14182 `__: MAINT: stats: Update ppcc_plot and ppcc_max docstring. Checksums ========= MD5 ~~~ 5663523db409564ca11c6c94ab9a00b3 scipy-1.7.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl 06e0143578cef69fc985bdd7ab534f59 scipy-1.7.0rc1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 60b46d37358c9e335c1711a3c82b8a4a scipy-1.7.0rc1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl 12b18e8398d5c592991d35ed008e42a4 scipy-1.7.0rc1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl 1e4fddc62dbfdd29a8f5ef1954c54fb4 scipy-1.7.0rc1-cp37-cp37m-win32.whl d85a6d7a2289388d5d96c760859bb28f scipy-1.7.0rc1-cp37-cp37m-win_amd64.whl 2874082c4ce7422d7c7bd7f9397392e5 scipy-1.7.0rc1-cp38-cp38-macosx_10_9_x86_64.whl 22241402415519c0a80b7001ef9e36d2 scipy-1.7.0rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 8cb156b7e3e73d2f2bfddc817837d72a scipy-1.7.0rc1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl 2180d0318a077ceaf48c314547887a76 scipy-1.7.0rc1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl 0bb8de89e1ef51adf050fe0c13cf00fe scipy-1.7.0rc1-cp38-cp38-win32.whl 18ec67e0939f2c4f66848a0073812ec5 scipy-1.7.0rc1-cp38-cp38-win_amd64.whl 95297e327369dcca2166d99d918f98cc scipy-1.7.0rc1-cp39-cp39-macosx_10_9_x86_64.whl dfc5f5cf5f93be60ef05aaa4d99b746b scipy-1.7.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 56e99e317b4063f85d6f7cb5fd820e32 scipy-1.7.0rc1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl 732ef2146805dbd422e920326d398841 scipy-1.7.0rc1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl fc568ac1d23edd9c61f5e53c53d69345 scipy-1.7.0rc1-cp39-cp39-win32.whl 4b019e5de3638b28ba19e987b18e703c scipy-1.7.0rc1-cp39-cp39-win_amd64.whl 651c79b44fc23d7403b7b4ff3146386c scipy-1.7.0rc1.tar.gz 9c353986615f93ad9d00ac44670fad1b scipy-1.7.0rc1.tar.xz 74032e20717d678cd67740215f2e8f6b scipy-1.7.0rc1.zip SHA256 ~~~~~~ 3e17adcbcf58a14890f6987f8b0cf13cf6c44258588ae9915912854a503ab937 scipy-1.7.0rc1-cp37-cp37m-macosx_10_9_x86_64.whl 250533a064b006d992dd5f80b9327396c2e09e62611c68acb5b15dd7e104c40b scipy-1.7.0rc1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 8f30ca6bafbacc905c3ef20b74e662177896209f279c0adff263c522593b8799 scipy-1.7.0rc1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl ccacb1f0bda3f46608e1a721f6ab6107a978c27e88918dfc5d2e9afae3187dbd scipy-1.7.0rc1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl c41ec0521729cfe2a1c1e0e9b487e45f5c42957b77bb9bb97dcb3df53321cc26 scipy-1.7.0rc1-cp37-cp37m-win32.whl af341027b6937ef24346b342c511dbf517ab3d671c2e3c43c194592793d20789 scipy-1.7.0rc1-cp37-cp37m-win_amd64.whl f76d26beeb0963b3560d1bb20911ae97552d442c46a73df46006b018d2543079 scipy-1.7.0rc1-cp38-cp38-macosx_10_9_x86_64.whl 67b61dedddba2084819f284280f7d84eaacdf67b7b44ab21a6c17eb3ea4176fc scipy-1.7.0rc1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 32819afdb42d70cca3b1b638d43fafc958d9b6e81ecf4fc2495fdc8134d357a9 scipy-1.7.0rc1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl 96459118025a540a13fbb3118eae3a9e5157335bb8612979f3d4443e0ca1d97d scipy-1.7.0rc1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl e945a4f33d5141d8c62074206ca23c3d822053a55a941b28fb37daaac9f3ca74 scipy-1.7.0rc1-cp38-cp38-win32.whl 093017be12146a8125e564877bb2d66dacc77387542b834b20dd111664ce3116 scipy-1.7.0rc1-cp38-cp38-win_amd64.whl e3c39cb0117f48c4c52bb6590bb8a508f76a47a6248b01ff535ce048dafdcd79 scipy-1.7.0rc1-cp39-cp39-macosx_10_9_x86_64.whl 3af0a29260b2dba983c31b7d90ccec06dd88afc0365a4b4ccbe71d7b343597d0 scipy-1.7.0rc1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl a39b3afc90a12cb541ca0d6cec70b0ceb0c9212334a3356bae143fd6ca7c29aa scipy-1.7.0rc1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl a3c13a99e3b90abd189a22ebf51f1c4cc826fa0b8338711b55bb10243657a4ac scipy-1.7.0rc1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl d31d9e1dd16e26c2e298b7118c2c115fdb248cf11b3164f68bdb808f19928ecc scipy-1.7.0rc1-cp39-cp39-win32.whl 50b9a9c5740035d7ce4771d82ccecc73f931ad12dce3212ba9310dc3aca78119 scipy-1.7.0rc1-cp39-cp39-win_amd64.whl b24ce88245397126bb64005ed4a9c00d916ea4c5ba8383d85a2ddbaac4805f06 scipy-1.7.0rc1.tar.gz 6e10f3083428bc8190fafb0a5c854f04dfcf705be605c598f651ab423fee4d59 scipy-1.7.0rc1.tar.xz ff18329dae5510c528c997e907c821165c8c5b034dbf43277f12130d6be0eb9a scipy-1.7.0rc1.zip -------------- next part -------------- An HTML attachment was scrubbed... URL: From keith at sloan-home.co.uk Mon Jun 7 06:37:56 2021 From: keith at sloan-home.co.uk (Keith Sloan) Date: Mon, 7 Jun 2021 03:37:56 -0700 (MST) Subject: [Numpy-discussion] numpy histogram data In-Reply-To: References: <1622994416754-0.post@n7.nabble.com> Message-ID: <1623062276183-0.post@n7.nabble.com> Thanks Not sure where I get centers & edges from ##### Plot of Histogram of Stacked Counts of Red elliptical Galaxies versus Red Shift REMrange1 = RedEllipticalMasses[RedEllipticalMasses[RedEllipticalMasses['uminusr']>1.8]['uminusr'] <2.0] print(len(REMrange1)) counts1, bins1 = np.histogram(REMrange1['Z_1'],bins=bins) REMrange2a = RedEllipticalMasses[RedEllipticalMasses['uminusr']>2.0] REMrange2 = REMrange2a[REMrange2a['uminusr'] <2.2] counts2, bins2 = np.histogram(REMrange2['Z_1'],bins=bins) REMrange3a = RedEllipticalMasses[RedEllipticalMasses['uminusr']>2.2] REMrange3 = REMrange3a[REMrange3a['uminusr'] <2.4] counts3, bins3 = np.histogram(REMrange3['Z_1'],bins=bins) REMrange4a = RedEllipticalMasses[RedEllipticalMasses['uminusr']>2.4] REMrange4 = REMrange4a[REMrange4a['uminusr'] <2.6] counts4, bins4 = np.histogram(REMrange4['Z_1'],bins=bins) REMrange5a = RedEllipticalMasses[RedEllipticalMasses['uminusr']>2.6] REMrange5 = REMrange5a[REMrange5a['uminusr'] <2.8] counts5, bins5 = np.histogram(REMrange5['Z_1'],bins=bins) counts = [counts1, counts2, counts3, counts4, counts5] centers = [centers for _ in counts] fig, ax = plt.subplots(1, 1, figsize=(12,8)) # make the figure with the size 10 x 8 inches fig.suptitle("2 - Histogram Counts of Red Galaxies versus Redshift") ax.set_xlabel('Redshift Z') ax.set_ylabel('Counts of Galaxies') plt.hist(centers, bins=bins, weights=counts, stacked=True) plt.show() Barfs on NameError Traceback (most recent call last) in 53 counts5, bins5 = np.histogram(REMrange5['Z_1'],bins=bins) 54 counts = [counts1, counts2, counts3, counts4, counts5] ---> 55 centers = [centers for _ in counts] 56 fig, ax = plt.subplots(1, 1, figsize=(12,8)) # make the figure with the size 10 x 8 inches 57 fig.suptitle("2 - Histogram Counts of Red Galaxies versus Redshift") -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ From ddavis at ddavis.io Mon Jun 7 10:04:39 2021 From: ddavis at ddavis.io (Doug Davis) Date: Mon, 07 Jun 2021 10:04:39 -0400 Subject: [Numpy-discussion] numpy histogram data In-Reply-To: <1623062276183-0.post@n7.nabble.com> (Keith Sloan's message of "Mon, 7 Jun 2021 03:37:56 -0700 (MST)") References: <1622994416754-0.post@n7.nabble.com> <1623062276183-0.post@n7.nabble.com> Message-ID: Keith Sloan writes: > Thanks > > Not sure where I get centers & edges from Every time you call np.histogram the second return will be an array of edges; so you define centers anywhere after your first np.histogram call, e.g. with your bins1 variable. (I can't tell if this is exactly the case, but it looks like you are pre-defining your bin edges in the `bins` variable, which would allow you to use that as well.) > > ##### Plot of Histogram of Stacked Counts of Red elliptical Galaxies versus > Red Shift > REMrange1 = > RedEllipticalMasses[RedEllipticalMasses[RedEllipticalMasses['uminusr']>1.8]['uminusr'] > <2.0] > print(len(REMrange1)) > counts1, bins1 = np.histogram(REMrange1['Z_1'],bins=bins) After this line if bins is an array of bin edges it just gets copied to bins1. (the edges return is useful when bins are defined with an integer (total number) and range is a tuple (xmin, xmin)). So you can define centers with: centers = 0.5 * (bins1[1:] + bins1[:-1] From ralf.gommers at gmail.com Mon Jun 7 12:42:46 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Mon, 7 Jun 2021 18:42:46 +0200 Subject: [Numpy-discussion] RFC: supporting complex inputs in np.logaddexp In-Reply-To: References: Message-ID: On Tue, Jun 1, 2021 at 3:18 PM Filippo Vicentini wrote: > Hello all, > > I would like to ask if the maintainers would be in favour of adding > support to np.logaddexp in order to support complex numbers. > scipy.special.logsumexp already does, and it would be relatively > straightforward to support them in numpy too. > That may just work by accident in SciPy, it's not tested in `scipy/special/tests/test_logsumexp.py`. Probably because it's implemented in pure Python. If you rely on that, adding a few tests would be nice. Adding support to `np.logaddexp` seems fine to me. Cheers, Ralf > Complex numbers are very common when working in quantum physics, where we > have complex-valued probability amplitudes. > > Best, > Filippo Vicentini > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Mon Jun 7 14:34:05 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Mon, 07 Jun 2021 13:34:05 -0500 Subject: [Numpy-discussion] Accepting NEP 35 `like=array_like` for use with `__array_function__` Message-ID: <655baf000031ff2b13ee70c9704d019fc490f57a.camel@sipsolutions.net> Hi all, I have opened a PR (https://github.com/numpy/numpy/pull/19188) to *finalize* NEP 35: https://numpy.org/neps/nep-0035-array-creation-dispatch-with-array-function.html Which added `like=` keyword argument to `np.array`, `np.asarray`, `np.arange`, etc. as final. The previous acceptance mail was here:? https://mail.python.org/pipermail/numpy-discussion/2021-May/081761.html But, since it may have flown under the radar. Please don't hesitate to voice any concerns! We are planning to include this finalization in the NumPy 1.21 release. So if you are worried about it, please make sure to voice that soon since the release process for 1.21 started. I had previously noted some possible concerns here: https://github.com/numpy/numpy/issues/17075 but in the current version, the `like=` argument is strict about types and will raise for `np.array(3, like=3)`. With that limitation, most of those points seem unproblematic. Cheers, Sebastian From keith at sloan-home.co.uk Mon Jun 7 14:56:09 2021 From: keith at sloan-home.co.uk (Keith Sloan) Date: Mon, 7 Jun 2021 11:56:09 -0700 (MST) Subject: [Numpy-discussion] numpy histogram data In-Reply-To: References: <1622994416754-0.post@n7.nabble.com> <1623062276183-0.post@n7.nabble.com> Message-ID: <1623092169352-0.post@n7.nabble.com> Thanks Okay trying to understand the data being returned. I have counts, bins = np.histogram(RedEllipticalMasses['Z_1'],bins=80) If I print lengths I get RedEllipticalMasses is 2514 bins = 81 and counts is 5 ( It is 5 Arrays each of length 80) Okay I can get centers with centers = 0.5 * (bins[1:] + bins[:-1] As you advised But unclear how I would get their heights and why counts has 5 arrays ? -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ From chris.barker at noaa.gov Mon Jun 7 16:17:21 2021 From: chris.barker at noaa.gov (Chris Barker) Date: Mon, 7 Jun 2021 13:17:21 -0700 Subject: [Numpy-discussion] Best fit linear piecewise function? In-Reply-To: References: Message-ID: On Thu, Jun 3, 2021 at 4:13 AM Mark Bakker wrote: > My students are using this and seem to like it: > > https://jekel.me/piecewise_linear_fit_py/about.html > thanks -- that looks perfect! -CHB > > >> Date: Tue, 1 Jun 2021 17:22:52 -0700 >> From: Chris Barker >> To: Discussion of Numerical Python >> Subject: [Numpy-discussion] Best fit linear piecewise function? >> Message-ID: >> > i58WZ0dL_292GvntmFRte88ik98h2NqT1YJw at mail.gmail.com> >> Content-Type: text/plain; charset="utf-8" >> >> Do any of you know of code for finding an optimum linear piecewise fit to >> a >> set of points? >> >> Somethin like what is described in this article: >> >> https://www.hindawi.com/journals/mpe/2015/876862/ >> >> At a glance, that looked just hard enough to code up that I'm hoping >> someone has already done it :-) >> >> -CHB >> >> >> -- >> >> Christopher Barker, Ph.D. >> Oceanographer >> >> Emergency Response Division >> NOAA/NOS/OR&R (206) 526-6959 voice >> 7600 Sand Point Way NE (206) 526-6329 fax >> Seattle, WA 98115 (206) 526-6317 main reception >> >> Chris.Barker at noaa.gov >> -------------- next part -------------- >> An HTML attachment was scrubbed... >> URL: < >> https://mail.python.org/pipermail/numpy-discussion/attachments/20210601/fa6567d6/attachment-0001.html >> > >> >> >> _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker at noaa.gov -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris.barker at noaa.gov Mon Jun 7 16:18:13 2021 From: chris.barker at noaa.gov (Chris Barker) Date: Mon, 7 Jun 2021 13:18:13 -0700 Subject: [Numpy-discussion] Best fit linear piecewise function? In-Reply-To: References: Message-ID: On Thu, Jun 3, 2021 at 4:43 AM Klaus Zimmermann wrote: > if you are interested in the 1d problem, you might also consider a > spline fit of order 1, for example with scipy.interpolate, see [1]. > hmm, yes, that should work -- I guess it didn't dawn on me because all examples are higher order, but I'll check it out. -CHB > Cheers > Klaus > > > [1] > > https://docs.scipy.org/doc/scipy/reference/tutorial/interpolate.html#spline-interpolation-in-1-d-procedural-interpolate-splxxx > > On 03/06/2021 13:12, Mark Bakker wrote: > > My students are using this and seem to like it: > > > > https://jekel.me/piecewise_linear_fit_py/about.html > > > > > > > > Date: Tue, 1 Jun 2021 17:22:52 -0700 > > From: Chris Barker > > > > To: Discussion of Numerical Python > > > > Subject: [Numpy-discussion] Best fit linear piecewise function? > > Message-ID: > > > > > > > > Content-Type: text/plain; charset="utf-8" > > > > Do any of you know of code for finding an optimum linear piecewise > > fit to a > > set of points? > > > > Somethin like what is described in this article: > > > > https://www.hindawi.com/journals/mpe/2015/876862/ > > > > > > At a glance, that looked just hard enough to code up that I'm hoping > > someone has already done it :-) > > > > -CHB > > > > > > -- > > > > Christopher Barker, Ph.D. > > Oceanographer > > > > Emergency Response Division > > NOAA/NOS/OR&R (206) 526-6959 voice > > 7600 Sand Point Way NE (206) 526-6329 fax > > Seattle, WA 98115 (206) 526-6317 main reception > > > > Chris.Barker at noaa.gov > > -------------- next part -------------- > > An HTML attachment was scrubbed... > > URL: > > < > https://mail.python.org/pipermail/numpy-discussion/attachments/20210601/fa6567d6/attachment-0001.html > > < > https://mail.python.org/pipermail/numpy-discussion/attachments/20210601/fa6567d6/attachment-0001.html > >> > > > > > > > > _______________________________________________ > > NumPy-Discussion mailing list > > NumPy-Discussion at python.org > > https://mail.python.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chris.Barker at noaa.gov -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Mon Jun 7 19:03:55 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Mon, 07 Jun 2021 18:03:55 -0500 Subject: [Numpy-discussion] Tensor Typing presentation and discussion on Wednesday! (As part of the NumPy Community Meeting) Message-ID: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> Hi all, There will be a NumPy Community meeting Wednesday June 9th at 20:00 UTC. This meeting will be dedicated to a presentation by Matthew and Pradeep about typing arrays. The title is: "Better types for numerical computing - arrays generic in dtype and shape" Abstract: An overview of why more detailed types for arrays would be awesome, the work being done to enable those types in PEP 646, and what the future of this effort could look like. If you are interested in typing and/or missed out on the Python typing summit, this will be a perfect opportunity to join and discuss better typing of NumPy arrays! Details on how to join can be found in the usual meeting notes: https://hackmd.io/76o-IxCjQX2mOXO_wwkcpg?both Best wishes Sebastian From jni at fastmail.com Tue Jun 8 06:23:44 2021 From: jni at fastmail.com (Juan Nunez-Iglesias) Date: Tue, 08 Jun 2021 05:23:44 -0500 Subject: [Numpy-discussion] =?utf-8?q?Tensor_Typing_presentation_and_disc?= =?utf-8?q?ussion_on_Wednesday!_=28As_part_of_the_NumPy_Community_Meeting?= =?utf-8?q?=29?= In-Reply-To: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> Message-ID: Hello! Any chance this could be recorded for those of us in useless time zones? ? On Mon, 7 Jun 2021, at 6:03 PM, Sebastian Berg wrote: > Hi all, > > There will be a NumPy Community meeting Wednesday June 9th at > 20:00 UTC. > > This meeting will be dedicated to a presentation by Matthew and Pradeep > about typing arrays. > > The title is: "Better types for numerical computing - arrays generic > in dtype and shape" > > Abstract: An overview of why more detailed types for arrays would be > awesome, the work being done to enable those types in PEP 646, and what > the future of this effort could look like. > > > If you are interested in typing and/or missed out on the Python typing > summit, this will be a perfect opportunity to join and discuss better > typing of NumPy arrays! > > > Details on how to join can be found in the usual meeting notes: > > https://hackmd.io/76o-IxCjQX2mOXO_wwkcpg?both > > Best wishes > > Sebastian > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > From ddavis at ddavis.io Tue Jun 8 10:27:45 2021 From: ddavis at ddavis.io (Doug Davis) Date: Tue, 08 Jun 2021 10:27:45 -0400 Subject: [Numpy-discussion] numpy histogram data In-Reply-To: <1623092169352-0.post@n7.nabble.com> (Keith Sloan's message of "Mon, 7 Jun 2021 11:56:09 -0700 (MST)") References: <1622994416754-0.post@n7.nabble.com> <1623062276183-0.post@n7.nabble.com> <1623092169352-0.post@n7.nabble.com> Message-ID: Keith Sloan writes: > Thanks > > Okay trying to understand the data being returned. > I have > > counts, bins = np.histogram(RedEllipticalMasses['Z_1'],bins=80) > > If I print lengths I get > RedEllipticalMasses is 2514 > bins = 81 > and counts is 5 > ( It is 5 Arrays each of length 80) > > Okay I can get centers with > centers = 0.5 * (bins[1:] + bins[:-1] > > As you advised > But unclear how I would get their heights and why counts has 5 arrays ? > Not having a clear understanding of your dataset.. I'm not quit sure why you're seeing the results you described. Nevertheless if you define bins with an integer, the len(counts) should be equal to that number and len bins should indeed be that number + 1. Perhaps you have a mistake somewhere else in your code? From keith at sloan-home.co.uk Tue Jun 8 13:13:05 2021 From: keith at sloan-home.co.uk (Keith Sloan) Date: Tue, 8 Jun 2021 10:13:05 -0700 (MST) Subject: [Numpy-discussion] numpy histogram data In-Reply-To: References: <1622994416754-0.post@n7.nabble.com> <1623062276183-0.post@n7.nabble.com> <1623092169352-0.post@n7.nabble.com> Message-ID: <1623172385323-0.post@n7.nabble.com> There really is not a lot of other code. RedEllipticalMasses is an Astropy Table read in from a fits file from astropy.table import Table, join import numpy as np RedEllipticalMasses = Table.read('../../GAMA_Data/REMassEClassEmeasure.fits') RedEllipticalMasses['Z_1'] is a single column name 'Z_1' If. I print its type I get -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ From charlesr.harris at gmail.com Tue Jun 8 13:52:20 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Tue, 8 Jun 2021 11:52:20 -0600 Subject: [Numpy-discussion] NumPy 1.21.0rc2 released Message-ID: Hi All, On behalf of the NumPy team I am pleased to announce the release of NumPy 1.21.0rc2. The highlights are - continued SIMD work covering more functions and platforms, - initial work on the new dtype infrastructure and casting, - universal2 wheels for Python 3.8 and Python 3.9 on Mac, - improved documentation, - improved annotations, - new ``PCG64DXSM`` bitgenerator for random numbers. This NumPy release is the result of 571 merged pull requests contributed by 173 people. The Python versions supported for this release are 3.7-3.9, support for Python 3.10 will be added after Python 3.10 is released. Wheels can be downloaded from PyPI ; source archives, release notes, and wheel hashes are available on Github . Linux users will need pip >= 0.19.3 in order to install manylinux2010 and manylinux2014 wheels. *Contributors* A total of 171 people contributed to this release. People with a "+" by their names contributed a patch for the first time. - @8bitmp3 + - @DWesl + - @Endolith - @Illviljan + - @Lbogula + - @Lisa + - @Patrick + - @Scian + - @h-vetinari + - @h6197627 + - @jbCodeHub + - @legoffant + - @sfolje0 + - @tautaus + - @yetanothercheer + - Abhay Raghuvanshi + - Adrian Price-Whelan + - Aerik Pawson + - Agbonze Osazuwa + - Aitik Gupta + - Al-Baraa El-Hag - Alex Henrie - Alexander Hunt + - Aliz? Papp + - Allan Haldane - Amarnath1904 + - Amrit Krishnan + - Andras Deak - AngelGris + - Anne Archibald - Anthony Vo + - Antony Lee - Atharva-Vidwans + - Ayush Verma + - Bas van Beek - Bharat Raghunathan - Bhargav V + - Brian Soto - Carl Michal + - Charles Harris - Charles Stern + - Chiara Marmo + - Chris Barnes + - Chris Vavaliaris - Christina Hedges + - Christoph Gohlke - Christopher Dahlin + - Christos Efstathiou + - Chunlin Fang - Constanza Fierro + - Daniel Evans + - Daniel Montes + - Dario Mory + - David Carlier + - David Stansby - Deepyaman Datta + - Derek Homeier - Dong Keun Oh + - Dylan Cutler + - Eric Larson - Eric Wieser - Eva Jau + - Evgeni Burovski - FX Coudert + - Faris A Chugthai + - Filip Ter + - Filip Trojan + - Fran?ois Le Lay + - Ganesh Kathiresan - Giannis Zapantis + - Giulio Procopio + - Greg Lucas + - Hollow Man + - Holly Corbett + - I-Shen Leong + - Inessa Pawson - Isabela Presedo-Floyd - Ismael Jimenez + - Isuru Fernando - Jakob Jakobson - James Gerity + - Jamie Macey + - Jasmin Classen + - Jody Klymak + - Joseph Fox-Rabinovitz - J?rome Eertmans + - J?r?me Kieffer + - Kamil Choudhury + - Kasia Leszek + - Keller Meier + - Kevin Sheppard - Kulin Seth + - Kumud Lakara + - Laura Kopf + - Laura Martens + - Leo Singer + - Leonardus Chen + - Lima Tango + - Lumir Balhar + - Maia Kaplan + - Mainak Debnath + - Marco Aur?lio da Costa + - Marta Lemanczyk + - Marten van Kerkwijk - Mary Conley + - Marysia Winkels + - Mateusz Sok?? + - Matt Haberland - Matt Hall + - Matt Ord + - Matthew Badin + - Matthias Bussonnier - Matthias Geier - Matti Picus - Mat?as R?os + - Maxim Belkin + - Melissa Weber Mendon?a - Meltem Eren Copur + - Michael Dubravski + - Michael Lamparski - Michal W. Tarnowski + - Micha? G?rny + - Mike Boyle + - Mike Toews - Misal Raj + - Mitchell Faas + - Mukulikaa Parhari + - Neil Girdhar + - Nicholas McKibben + - Nico Schl?mer - Nicolas Hug + - Nilo Kruchelski + - Nirjas Jakilim + - Ohad Ravid + - Olivier Grisel - Pamphile ROY + - Panos Mavrogiorgos + - Patrick T. Komiske III + - Pearu Peterson - Raghuveer Devulapalli - Ralf Gommers - Ra?l Mont?n Pinillos + - Rin Arakaki + - Robert Kern - Rohit Sanjay - Roman Yurchak - Ronan Lamy - Ross Barnowski - Ryan C Cooper - Ryan Polley + - Ryan Soklaski - Sabrina Simao + - Sayed Adel - Sebastian Berg - Shen Zhou + - Stefan van der Walt - Sylwester Arabas + - Takanori Hirano - Tania Allard + - Thomas J. Fan + - Thomas Orgis + - Tim Hoffmann - Tomoki, Karatsu + - Tong Zou + - Touqir Sajed + - Tyler Reddy - Wansoo Kim - Warren Weckesser - Weh Andreas + - Yang Hau - Yashasvi Misra + - Zolboo Erdenebaatar + - Zolisa Bleki Cheers, Charles Harris Reply allReplyForward -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Tue Jun 8 14:40:11 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Tue, 08 Jun 2021 11:40:11 -0700 Subject: [Numpy-discussion] =?utf-8?q?Tensor_Typing_presentation_and_disc?= =?utf-8?q?ussion_on_Wednesday!_=28As_part_of_the_NumPy_Community_Meeting?= =?utf-8?q?=29?= In-Reply-To: References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> Message-ID: <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> On Tue, Jun 8, 2021, at 03:23, Juan Nunez-Iglesias wrote: > Hello! Any chance this could be recorded for those of us in useless > time zones? ? I added a note to the agenda; we'll ask the speakers and record if they don't mind. St?fan From ralf.gommers at gmail.com Wed Jun 9 01:50:04 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Wed, 9 Jun 2021 07:50:04 +0200 Subject: [Numpy-discussion] Accepting NEP 35 `like=array_like` for use with `__array_function__` In-Reply-To: <655baf000031ff2b13ee70c9704d019fc490f57a.camel@sipsolutions.net> References: <655baf000031ff2b13ee70c9704d019fc490f57a.camel@sipsolutions.net> Message-ID: On Mon, Jun 7, 2021 at 8:34 PM Sebastian Berg wrote: > Hi all, > > I have opened a PR (https://github.com/numpy/numpy/pull/19188) to > *finalize* NEP 35: > > > https://numpy.org/neps/nep-0035-array-creation-dispatch-with-array-function.html > > Which added `like=` keyword argument to `np.array`, `np.asarray`, > `np.arange`, etc. as final. > > > The previous acceptance mail was here: > https://mail.python.org/pipermail/numpy-discussion/2021-May/081761.html > > But, since it may have flown under the radar. Please don't hesitate to > voice any concerns! > We are planning to include this finalization in the NumPy 1.21 release. > So if you are worried about it, please make sure to voice that soon > since the release process for 1.21 started. > > > I had previously noted some possible concerns here: > https://github.com/numpy/numpy/issues/17075 > but in the current version, the `like=` argument is strict about types > and will raise for `np.array(3, like=3)`. With that limitation, most > of those points seem unproblematic. > Thanks Sebastian. I agree. And IIRC there haven't been problems with the current implementation in 1.20 reported, so we should be all good here. Cheers, Ralf -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Wed Jun 9 14:18:38 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Wed, 9 Jun 2021 12:18:38 -0600 Subject: [Numpy-discussion] Proposals for NumPy 1.22.0 Message-ID: Hi All, Here are some proposals for the NumPy 1.22.0 release currently in development. 1. Drop support for Python 3.7 (3.10 will be available). 2. Drop manylinux1 wheels. 3. Drop manylinux2010 wheels? 4. Use ILP64 BLAS for 64 bit wheels. Thoughts? Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Wed Jun 9 16:15:00 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Wed, 9 Jun 2021 22:15:00 +0200 Subject: [Numpy-discussion] Proposals for NumPy 1.22.0 In-Reply-To: References: Message-ID: On Wed, Jun 9, 2021 at 8:19 PM Charles R Harris wrote: > Hi All, > > Here are some proposals for the NumPy 1.22.0 release currently in > development. > > > 1. Drop support for Python 3.7 (3.10 will be available). > > NEP 29 says December 2021, so that'd be kind of borderline. It would allow us to use positional-only parameters, which would be quite useful. > > 1. Drop manylinux1 wheels. > 2. Drop manylinux2010 wheels? > > yes, and yes > > 1. Use ILP64 BLAS for 64 bit wheels. > > Seems fine I guess. Is there a lot of demand? Also something I'm not sure about is if we can mix two versions (one ILP64, one regular) of OpenBLAS in a numpy and a scipy wheel, and load them both. It seems to work, but perhaps that's accidental today? Cheers, Ralf > Thoughts? > > Chuck > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Wed Jun 9 17:27:21 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Wed, 09 Jun 2021 14:27:21 -0700 Subject: [Numpy-discussion] Tensor Typing presentation and discussion on Wednesday! (As part of the NumPy Community Meeting) In-Reply-To: <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> Message-ID: <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> On Tue, 2021-06-08 at 11:40 -0700, Stefan van der Walt wrote: > On Tue, Jun 8, 2021, at 03:23, Juan Nunez-Iglesias wrote: > > Hello! Any chance this could be recorded for those of us in useless > > time zones? ? > > I added a note to the agenda; we'll ask the speakers and record if > they don't mind. We have made a recording, but I did not plan on making it available publicly. Please contact me directly if you are interested. Cheers, Sebastian > St?fan > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion From jeffreback at gmail.com Wed Jun 9 19:43:01 2021 From: jeffreback at gmail.com (Jeff Reback) Date: Wed, 9 Jun 2021 19:43:01 -0400 Subject: [Numpy-discussion] Proposals for NumPy 1.22.0 In-Reply-To: References: Message-ID: >> Drop support for Python 3.7 (3.10 will be available). FYI pandas is going to drop 3.7 in 1.4 (likely releases early next year) > > On Jun 9, 2021, at 4:16 PM, Ralf Gommers wrote: > > ? > > >> On Wed, Jun 9, 2021 at 8:19 PM Charles R Harris wrote: >> Hi All, >> >> Here are some proposals for the NumPy 1.22.0 release currently in development. >> >> Drop support for Python 3.7 (3.10 will be available). > NEP 29 says December 2021, so that'd be kind of borderline. It would allow us to use positional-only parameters, which would be quite useful. >> Drop manylinux1 wheels. >> Drop manylinux2010 wheels? > yes, and yes >> Use ILP64 BLAS for 64 bit wheels. > Seems fine I guess. Is there a lot of demand? > > Also something I'm not sure about is if we can mix two versions (one ILP64, one regular) of OpenBLAS in a numpy and a scipy wheel, and load them both. It seems to work, but perhaps that's accidental today? > > Cheers, > Ralf > >> Thoughts? >> >> Chuck >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion -------------- next part -------------- An HTML attachment was scrubbed... URL: From bas.vanbeek at hotmail.com Thu Jun 10 04:56:47 2021 From: bas.vanbeek at hotmail.com (bas van beek) Date: Thu, 10 Jun 2021 08:56:47 +0000 Subject: [Numpy-discussion] Proposals for NumPy 1.22.0 In-Reply-To: References: Message-ID: NEP 29 says December 2021, so that'd be kind of borderline. It would allow us to use positional-only parameters, which would be quite useful. There is currently also a substantial amount of version checks in `numpy.typing` that we could get rid of with python >= 3.8. +1 Regards, Bas From: NumPy-Discussion On Behalf Of Ralf Gommers Sent: Wednesday, 9 June 2021 22:15 To: Discussion of Numerical Python Subject: Re: [Numpy-discussion] Proposals for NumPy 1.22.0 On Wed, Jun 9, 2021 at 8:19 PM Charles R Harris > wrote: Hi All, Here are some proposals for the NumPy 1.22.0 release currently in development. 1. Drop support for Python 3.7 (3.10 will be available). NEP 29 says December 2021, so that'd be kind of borderline. It would allow us to use positional-only parameters, which would be quite useful. 1. Drop manylinux1 wheels. 2. Drop manylinux2010 wheels? yes, and yes 1. Use ILP64 BLAS for 64 bit wheels. Seems fine I guess. Is there a lot of demand? Also something I'm not sure about is if we can mix two versions (one ILP64, one regular) of OpenBLAS in a numpy and a scipy wheel, and load them both. It seems to work, but perhaps that's accidental today? Cheers, Ralf Thoughts? Chuck _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion at python.org https://mail.python.org/mailman/listinfo/numpy-discussion -------------- next part -------------- An HTML attachment was scrubbed... URL: From mrahtz at google.com Thu Jun 10 15:08:05 2021 From: mrahtz at google.com (Matthew Rahtz) Date: Thu, 10 Jun 2021 20:08:05 +0100 Subject: [Numpy-discussion] Tensor Typing presentation and discussion on Wednesday! (As part of the NumPy Community Meeting) In-Reply-To: <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> Message-ID: Some links I promised to send around: - https://github.com/deepmind/tensor_annotations which has a bunch of experimental shape-aware stubs for TensorFlow and JAX using 'semantic' axis labels - https://github.com/pradeep90/pytorch_examples ditto for TensorFlow and PyTorch using value-based axis labels - https://arxiv.org/pdf/2102.13254.pdf Similar work in TensorFlow for Swift - Slides for our presentation - Tensor typing meeting details Thanks again, everyone! On Wed, 9 Jun 2021 at 22:28, Sebastian Berg wrote: > On Tue, 2021-06-08 at 11:40 -0700, Stefan van der Walt wrote: > > On Tue, Jun 8, 2021, at 03:23, Juan Nunez-Iglesias wrote: > > > Hello! Any chance this could be recorded for those of us in useless > > > time zones? ? > > > > I added a note to the agenda; we'll ask the speakers and record if > > they don't mind. > > > We have made a recording, but I did not plan on making it available > publicly. Please contact me directly if you are interested. > > Cheers, > > Sebastian > > > > St?fan > > _______________________________________________ > > NumPy-Discussion mailing list > > NumPy-Discussion at python.org > > https://mail.python.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Thu Jun 10 15:20:30 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Thu, 10 Jun 2021 13:20:30 -0600 Subject: [Numpy-discussion] PR for keywordlabeler Message-ID: Hi All, There is a pending PR that uses keywordlabeler to automatically label PRs and issues. Installing the app requires giving it write permissions to PRs and issues. This isn't different than with the current labeler, but I note that we don't have a procedure for deciding such issues that may have security implications. So I am posting here before proceeding with app installation. Thoughts? Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From blkzol001 at myuct.ac.za Sat Jun 12 17:03:31 2021 From: blkzol001 at myuct.ac.za (zoj613) Date: Sat, 12 Jun 2021 14:03:31 -0700 (MST) Subject: [Numpy-discussion] Checking if all array elements are whole numbers using the C-API Message-ID: <1623531811248-0.post@n7.nabble.com> Hi All, Is there a C-API analogue for `np.asarray(a, dtype=int) != np.asarray(a)` assuming that `a` is an array or python sequence object of whole numbers but is assigned the float type (e.g a=array([1., 2., 3.]) or [1., 2., 3.])? I tried `np.PyArray_FROM_OT(a, np.NPY_LONG) != np.PyArray_FROM_O(a)` but I get the error message: `TypeError: Cannot cast array data from dtype('float64') to dtype('int64') according to the rule 'safe'`. Is there a way I can achieve what I want using the numpy array c-api? I want to check if an array/sequence has all elements as whole numbers so that the check wont fail is an element is "2.0" instead of "2". -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ From blkzol001 at myuct.ac.za Sun Jun 13 03:30:25 2021 From: blkzol001 at myuct.ac.za (zoj613) Date: Sun, 13 Jun 2021 00:30:25 -0700 (MST) Subject: [Numpy-discussion] Checking if all array elements are whole numbers using the C-API In-Reply-To: <1623531811248-0.post@n7.nabble.com> References: <1623531811248-0.post@n7.nabble.com> Message-ID: <1623569425796-0.post@n7.nabble.com> After reading the docs, it turns out that `np.PyArray_FROM_OTF(a, np.NPY_LONG, np.NPY_ARRAY_FORCECAST) != np.PyArray_FROM_O(a)` prevents the error from occurring. -- Sent from: http://numpy-discussion.10968.n7.nabble.com/ From matti.picus at gmail.com Sun Jun 13 04:29:22 2021 From: matti.picus at gmail.com (Matti Picus) Date: Sun, 13 Jun 2021 11:29:22 +0300 Subject: [Numpy-discussion] PR for keywordlabeler In-Reply-To: References: Message-ID: <369a80c8-ff82-a2ae-9d51-07e27fc1ed55@gmail.com> On 10/6/21 10:20 pm, Charles R Harris wrote: > Hi All, > > There is a pending PR that > uses keywordlabeler ?to > automatically label PRs and issues. Installing the app requires giving > it write permissions to PRs and issues. This isn't different than with > the current labeler, but I note that we don't have a procedure for > deciding such issues that may have security implications. So I am > posting here before proceeding?with app installation. > > Thoughts? > > Chuck If there was a way to pin these actions to a hash tag that would be better, at the least it should pin to a version. We already use third party actions in the github workflow: checkout and setup-python (both specifying a "version" via "@v2"), larsoner/circleci-artifacts-redirector-action at master (hmm, that should pin to a version). Matti From ralf.gommers at gmail.com Sun Jun 13 12:46:57 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Sun, 13 Jun 2021 18:46:57 +0200 Subject: [Numpy-discussion] request to remove the numpy-aarch64 package from PyPI Message-ID: Hi all, FYI, I noticed this package that claimed to be maintained by us: https://pypi.org/project/numpy-aarch64/. That's not ours, so I tried to contact the author (no email provided, but guessed the same username on GitHub) and asked to remove it: https://github.com/tomasriv/DNA_Sequence/issues/1. There are a very large number of packages with "numpy" in the name on PyPI, and there's no way we can audit/police that effectively, but if it's a rebuild that pretends like it's official then I think it's worth doing something about. It could contain malicious code for all we know. Cheers, Ralf -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Sun Jun 13 21:21:33 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Sun, 13 Jun 2021 19:21:33 -0600 Subject: [Numpy-discussion] request to remove the numpy-aarch64 package from PyPI In-Reply-To: References: Message-ID: On Sun, Jun 13, 2021 at 10:47 AM Ralf Gommers wrote: > Hi all, > > FYI, I noticed this package that claimed to be maintained by us: > https://pypi.org/project/numpy-aarch64/. That's not ours, so I tried to > contact the author (no email provided, but guessed the same username on > GitHub) and asked to remove it: > https://github.com/tomasriv/DNA_Sequence/issues/1. > > There are a very large number of packages with "numpy" in the name on > PyPI, and there's no way we can audit/police that effectively, but if it's > a rebuild that pretends like it's official then I think it's worth doing > something about. It could contain malicious code for all we know. > > That is a pretty misleading package description, would have fooled me if I didn't know better. I didn't get the impression it was malicious, but still . . . Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From jni at fastmail.com Sun Jun 13 22:49:39 2021 From: jni at fastmail.com (Juan Nunez-Iglesias) Date: Mon, 14 Jun 2021 12:49:39 +1000 Subject: [Numpy-discussion] Tensor Typing presentation and discussion on Wednesday! (As part of the NumPy Community Meeting) In-Reply-To: References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> Message-ID: <3D0A76F0-1AB1-476E-82B2-E16C6C0CE0E7@fastmail.com> Thank you so much Matthew, Pradeep, and everyone else helping with this effort! And thanks Matthew for sharing the slides ? very informative! I?ve asked Sebastian for the recording but in the meantime I thought I?d ask a couple of questions about the syntax: * why isn?t there a Subtract operator? It seems that Subtract[A, B] is much more readable than Add[A, Multiply[Literal[-1], B]]? * is there a prospect for using actual operators and actual literals here? I think that a lot of reticence about Python typing comes from the annotations being so difficult to read. There?s been some great improvements recently with ?Optional[Tuple[Union[Float, Int]]]? becoming ?tuple[float | int] | None?, and I hope we can leapfrog the awkward phase with this tensor typing stuff. Again, A - B is much more readable again than Subtract[A, B]. And B-2 is much more readable than Add[B, Literal[-2]]. Other than that, love the work, thank you again! Juan. > On 11 Jun 2021, at 5:08 am, Matthew Rahtz wrote: > > Some links I promised to send around: > https://github.com/deepmind/tensor_annotations which has a bunch of experimental shape-aware stubs for TensorFlow and JAX using 'semantic' axis labels > https://github.com/pradeep90/pytorch_examples ditto for TensorFlow and PyTorch using value-based axis labels > https://arxiv.org/pdf/2102.13254.pdf Similar work in TensorFlow for Swift > Slides for our presentation > Tensor typing meeting details > Thanks again, everyone! > > On Wed, 9 Jun 2021 at 22:28, Sebastian Berg > wrote: > On Tue, 2021-06-08 at 11:40 -0700, Stefan van der Walt wrote: > > On Tue, Jun 8, 2021, at 03:23, Juan Nunez-Iglesias wrote: > > > Hello! Any chance this could be recorded for those of us in useless > > > time zones? ? > > > > I added a note to the agenda; we'll ask the speakers and record if > > they don't mind. > > > We have made a recording, but I did not plan on making it available > publicly. Please contact me directly if you are interested. > > Cheers, > > Sebastian > > > > St?fan > > _______________________________________________ > > NumPy-Discussion mailing list > > NumPy-Discussion at python.org > > https://mail.python.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion -------------- next part -------------- An HTML attachment was scrubbed... URL: From tyler.je.reddy at gmail.com Mon Jun 14 13:53:02 2021 From: tyler.je.reddy at gmail.com (Tyler Reddy) Date: Mon, 14 Jun 2021 11:53:02 -0600 Subject: [Numpy-discussion] ANN: SciPy 1.7.0rc2 -- please test Message-ID: Hi all, On behalf of the SciPy development team I'm pleased to announce the release candidate SciPy 1.7.0rc2. Please help us test this pre-release, which notably no longer includes Cython- generated C source files in the sdist. Sources and binary wheels can be found at: https://pypi.org/project/scipy/ and at: https://github.com/scipy/scipy/releases/tag/v1.7.0rc2 One of a few ways to install the release candidate with pip: pip install scipy==1.7.0rc2 ===================== SciPy 1.7.0 Release Notes ===================== Note: Scipy 1.7.0 is not released yet! SciPy 1.7.0 is the culmination of 6 months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Before upgrading, we recommend that users check that their own code does not use deprecated SciPy functionality (to do so, run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). Our development attention will now shift to bug-fix releases on the 1.7.x branch, and on adding new features on the master branch. This release requires Python 3.7+ and NumPy 1.16.5 or greater. For running on PyPy, PyPy3 6.0+ is required. **************************** Highlights of this release **************************** - A new submodule for quasi-Monte Carlo, `scipy.stats.qmc`, was added - The documentation design was updated to use the same PyData-Sphinx theme as other NumFOCUS packages like NumPy. - We now vendor and leverage the Boost C++ library to enable numerous improvements for long-standing weaknesses in `scipy.stats` - `scipy.stats` has six new distributions, eight new (or overhauled) hypothesis tests, a new function for bootstrapping, a class that enables fast random variate sampling and percentile point function evaluation, and many other enhancements. - ``cdist`` and ``pdist`` distance calculations are faster for several metrics, especially weighted cases, thanks to a rewrite to a new C++ backend framework - A new class for radial basis function interpolation, `RBFInterpolator`, was added to address issues with the `Rbf` class. We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source Software for Science program for supporting many of the improvements to `scipy.stats`. *************** New features *************** `scipy.cluster` improvements ====================== An optional argument, ``seed``, has been added to ``kmeans`` and ``kmeans2`` to set the random generator and random state. `scipy.interpolate` improvements ========================= Improved input validation and error messages for ``fitpack.bispev`` and ``fitpack.parder`` for scenarios that previously caused substantial confusion for users. The class `RBFInterpolator` was added to supersede the `Rbf` class. The new class has usage that more closely follows other interpolator classes, corrects sign errors that caused unexpected smoothing behavior, includes polynomial terms in the interpolant (which are necessary for some RBF choices), and supports interpolation using only the k-nearest neighbors for memory efficiency. `scipy.linalg` improvements ===================== An LAPACK wrapper was added for access to the ``tgexc`` subroutine. `scipy.ndimage` improvements ======================== `scipy.ndimage.affine_transform` is now able to infer the ``output_shape`` from the ``out`` array. `scipy.optimize` improvements ======================= The optional parameter ``bounds`` was added to ``_minimize_neldermead`` to support bounds constraints for the Nelder-Mead solver. ``trustregion`` methods ``trust-krylov``, ``dogleg`` and ``trust-ncg`` can now estimate ``hess`` by finite difference using one of ``["2-point", "3-point", "cs"]``. ``halton`` was added as a ``sampling_method`` in `scipy.optimize.shgo`. ``sobol`` was fixed and is now using `scipy.stats.qmc.Sobol`. ``halton`` and ``sobol`` were added as ``init`` methods in `scipy.optimize.differential_evolution.` ``differential_evolution`` now accepts an ``x0`` parameter to provide an initial guess for the minimization. ``least_squares`` has a modest performance improvement when SciPy is built with Pythran transpiler enabled. When ``linprog`` is used with ``method`` ``'highs'``, ``'highs-ipm'``, or ``'highs-ds'``, the result object now reports the marginals (AKA shadow prices, dual values) and residuals associated with each constraint. `scipy.signal` improvements ====================== ``get_window`` supports ``general_cosine`` and ``general_hamming`` window functions. `scipy.signal.medfilt2d` now releases the GIL where appropriate to enable performance gains via multithreaded calculations. `scipy.sparse` improvements ====================== Addition of ``dia_matrix`` sparse matrices is now faster. `scipy.spatial` improvements ====================== ``distance.cdist`` and ``distance.pdist`` performance has greatly improved for certain weighted metrics. Namely: ``minkowski``, ``euclidean``, ``chebyshev``, ``canberra``, and ``cityblock``. Modest performance improvements for many of the unweighted ``cdist`` and ``pdist`` metrics noted above. The parameter ``seed`` was added to `scipy.spatial.vq.kmeans` and `scipy.spatial.vq.kmeans2`. The parameters ``axis`` and ``keepdims`` where added to `scipy.spatial.distance.jensenshannon`. The ``rotation`` methods ``from_rotvec`` and ``as_rotvec`` now accept a ``degrees`` argument to specify usage of degrees instead of radians. `scipy.special` improvements ====================== Wright's generalized Bessel function for positive arguments was added as `scipy.special.wright_bessel.` An implementation of the inverse of the Log CDF of the Normal Distribution is now available via `scipy.special.ndtri_exp`. `scipy.stats` improvements ==================== Hypothesis Tests ------------------------ The Mann-Whitney-Wilcoxon test, ``mannwhitneyu``, has been rewritten. It now supports n-dimensional input, an exact test method when there are no ties, and improved documentation. Please see "Other changes" for adjustments to default behavior. The new function `scipy.stats.binomtest` replaces `scipy.stats.binom_test`. The new function returns an object that calculates a confidence intervals of the proportion parameter. Also, performance was improved from O(n) to O(log(n)) by using binary search. The two-sample version of the Cramer-von Mises test is implemented in `scipy.stats.cramervonmises_2samp`. The Alexander-Govern test is implemented in the new function `scipy.stats.alexandergovern`. The new functions `scipy.stats.barnard_exact` and `scipy.stats. boschloo_exact` respectively perform Barnard's exact test and Boschloo's exact test for 2x2 contingency tables. The new function `scipy.stats.page_trend_test` performs Page's test for ordered alternatives. The new function `scipy.stats.somersd` performs Somers' D test for ordinal association between two variables. An option, ``permutations``, has been added in `scipy.stats.ttest_ind` to perform permutation t-tests. A ``trim`` option was also added to perform a trimmed (Yuen's) t-test. The ``alternative`` parameter was added to the ``skewtest``, ``kurtosistest``, ``ranksums``, ``mood``, ``ansari``, ``linregress``, and ``spearmanr`` functions to allow one-sided hypothesis testing. Sample statistics ----------------------- The new function `scipy.stats.differential_entropy` estimates the differential entropy of a continuous distribution from a sample. The ``boxcox`` and ``boxcox_normmax`` now allow the user to control the optimizer used to minimize the negative log-likelihood function. A new function `scipy.stats.contingency.relative_risk` calculates the relative risk, or risk ratio, of a 2x2 contingency table. The object returned has a method to compute the confidence interval of the relative risk. Performance improvements in the ``skew`` and ``kurtosis`` functions achieved by removal of repeated/redundant calculations. Substantial performance improvements in `scipy.stats.mstats.hdquantiles_sd`. The new function `scipy.stats.contingency.association` computes several measures of association for a contingency table: Pearsons contingency coefficient, Cramer's V, and Tschuprow's T. The parameter ``nan_policy`` was added to `scipy.stats.zmap` to provide options for handling the occurrence of ``nan`` in the input data. The parameter ``ddof`` was added to `scipy.stats.variation` and `scipy.stats.mstats.variation`. The parameter ``weights`` was added to `scipy.stats.gmean`. Statistical Distributions ------------------------------- We now vendor and leverage the Boost C++ library to address a number of previously reported issues in ``stats``. Notably, ``beta``, ``binom``, ``nbinom`` now have Boost backends, and it is straightforward to leverage the backend for additional functions. The skew Cauchy probability distribution has been implemented as `scipy.stats.skewcauchy`. The Zipfian probability distribution has been implemented as `scipy.stats.zipfian`. The new distributions ``nchypergeom_fisher`` and ``nchypergeom_wallenius`` implement the Fisher and Wallenius versions of the noncentral hypergeometric distribution, respectively. The generalized hyperbolic distribution was added in `scipy.stats.genhyperbolic`. The studentized range distribution was added in `scipy.stats.studentized_range`. `scipy.stats.argus` now has improved handling for small parameter values. Better argument handling/preparation has resulted in performance improvements for many distributions. The ``cosine`` distribution has added ufuncs for ``ppf``, ``cdf``, ``sf``, and ``isf`` methods including numerical precision improvements at the edges of the support of the distribution. An option to fit the distribution to data by the method of moments has been added to the ``fit`` method of the univariate continuous distributions. Other -------- `scipy.stats.bootstrap` has been added to allow estimation of the confidence interval and standard error of a statistic. The new function `scipy.stats.contingency.crosstab` computes a contingency table (i.e. a table of counts of unique entries) for the given data. `scipy.stats.NumericalInverseHermite` enables fast random variate sampling and percentile point function evaluation of an arbitrary univariate statistical distribution. New `scipy.stats.qmc` module ----------------------------------------- This new module provides Quasi-Monte Carlo (QMC) generators and associated helper functions. It provides a generic class `scipy.stats.qmc.QMCEngine` which defines a QMC engine/sampler. An engine is state aware: it can be continued, advanced and reset. 3 base samplers are available: - `scipy.stats.qmc.Sobol` the well known Sobol low discrepancy sequence. Several warnings have been added to guide the user into properly using this sampler. The sequence is scrambled by default. - `scipy.stats.qmc.Halton`: Halton low discrepancy sequence. The sequence is scrambled by default. - `scipy.stats.qmc.LatinHypercube`: plain LHS design. And 2 special samplers are available: - `scipy.stats.qmc.MultinomialQMC`: sampling from a multinomial distribution using any of the base `scipy.stats.qmc.QMCEngine`. - `scipy.stats.qmc.MultivariateNormalQMC`: sampling from a multivariate Normal using any of the base `scipy.stats.qmc.QMCEngine`. The module also provide the following helpers: - `scipy.stats.qmc.discrepancy`: assess the quality of a set of points in terms of space coverage. - `scipy.stats.qmc.update_discrepancy`: can be used in an optimization loop to construct a good set of points. - `scipy.stats.qmc.scale`: easily scale a set of points from (to) the unit interval to (from) a given range. ************************ Deprecated features ************************ `scipy.linalg` deprecations ==================== - `scipy.linalg.pinv2` is deprecated and its functionality is completely subsumed into `scipy.linalg.pinv` - Both ``rcond``, ``cond`` keywords of `scipy.linalg.pinv` and `scipy.linalg.pinvh` were not working and now are deprecated. They are now replaced with functioning ``atol`` and ``rtol`` keywords with clear usage. `scipy.spatial` deprecations ===================== - `scipy.spatial.distance` metrics expect 1d input vectors but will call ``np.squeeze`` on their inputs to accept any extra length-1 dimensions. That behaviour is now deprecated. ****************** Other changes ****************** We now accept and leverage performance improvements from the ahead-of-time Python-to-C++ transpiler, Pythran, which can be optionally disabled (via ``export SCIPY_USE_PYTHRAN=0``) but is enabled by default at build time. There are two changes to the default behavior of `scipy.stats.mannwhitenyu`: - For years, use of the default ``alternative=None`` was deprecated; explicit ``alternative`` specification was required. Use of the new default value of ``alternative``, "two-sided", is now permitted. - Previously, all p-values were based on an asymptotic approximation. Now, for small samples without ties, the p-values returned are exact by default. Support has been added for PEP 621 (project metadata in ``pyproject.toml``) We now support a Gitpod environment to reduce the barrier to entry for SciPy development; for more details see :ref:`quickstart-gitpod`. ********* Authors ********* * @endolith * Jelle Aalbers + * Adam + * Tania Allard + * Sven Baars + * Max Balandat + * baumgarc + * Christoph Baumgarten * Peter Bell * Lilian Besson * Robinson Besson + * Max Bolingbroke * Blair Bonnett + * Jord?o Bragantini * Harm Buisman + * Evgeni Burovski * Matthias Bussonnier * Dominic C * CJ Carey * Ram?n Casero + * Chachay + * charlotte12l + * Benjamin Curtice Corbett + * Falcon Dai + * Ian Dall + * Terry Davis * droussea2001 + * DWesl + * dwight200 + * Thomas J. Fan + * Joseph Fox-Rabinovitz * Max Frei + * Laura Gutierrez Funderburk + * gbonomib + * Matthias Geier + * Pradipta Ghosh + * Ralf Gommers * Evan H + * h-vetinari * Matt Haberland * Anselm Hahn + * Alex Henrie * Piet Hessenius + * Trever Hines + * Elisha Hollander + * Stephan Hoyer * Tom Hu + * Kei Ishikawa + * Julien Jerphanion * Robert Kern * Shashank KS + * Peter Mahler Larsen * Eric Larson * Cheng H. Lee + * Gregory R. Lee * Jean-Benoist Leger + * lgfunderburk + * liam-o-marsh + * Xingyu Liu + * Alex Loftus + * Christian Lorentzen + * Cong Ma * Marc + * MarkPundurs + * Markus L?ning + * Liam Marsh + * Nicholas McKibben * melissawm + * Jamie Morton * Andrew Nelson * Nikola Forr? * Tor Nordam + * Olivier Gauth? + * Rohit Pandey + * Avanindra Kumar Pandeya + * Tirth Patel * paugier + * Alex H. Wagner, PhD + * Jeff Plourde + * Ilhan Polat * pranavrajpal + * Vladyslav Rachek * Bharat Raghunathan * Recursing + * Tyler Reddy * Lucas Roberts * Gregor Robinson + * Pamphile Roy + * Atsushi Sakai * Benjamin Santos * Martin K. Scherer + * Thomas Schmelzer + * Daniel Scott + * Sebastian Wallk?tter + * serge-sans-paille + * Namami Shanker + * Masashi Shibata + * Alexandre de Siqueira + * Albert Steppi + * Adam J. Stewart + * Kai Striega * Diana Sukhoverkhova * S?ren Fuglede J?rgensen * Mike Taves * Dan Temkin + * Nicolas Tessore + * tsubota20 + * Robert Uhl * christos val + * Bas van Beek + * Ashutosh Varma + * Jose Vazquez + * Sebastiano Vigna * Aditya Vijaykumar * VNMabus * Arthur Volant + * Samuel Wallan * Stefan van der Walt * Warren Weckesser * Anreas Weh * Josh Wilson * Rory Yorke * Egor Zemlyanoy * Marc Zoeller + * zoj613 + * ?? + A total of 126 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. ************************** Issues closed for 1.7.0 ************************** * `#636 `__: Statistics Review: mannwhitneyu (Trac #109) * `#1346 `__: signal.medfilt2d should fall back on signal.medfilt for types... * `#2118 `__: Mann-Whitney statistic returns incorrect results (Trac #1593) * `#2158 `__: special.chndtrix (ncx2.ppf) gives wrong results (Trac #1633) * `#3284 `__: build_sphinx weirdness * `#3352 `__: beta distribution sf * `#4067 `__: Mannwhitneyu with arrays full of nan still reports significance * `#4080 `__: entropy in Scipy * `#4641 `__: mstats.mannwhitneyu and stats.mannwhitneyu return inconsistent... * `#5122 `__: scipy.stats.binom.ppf Incorrect for p=0 * `#5180 `__: Rbf interpolation - use only K nearest neighbors * `#5258 `__: affine_transform complains about output_shape when output array... * `#5562 `__: Wishart degrees of freedom should be $v > p-1$ instead of $v... * `#5933 `__: mstats_basic.py - mannwhitneyu [scipy/scipy/stats/mstats_basic.py] * `#6409 `__: _unequal_var_ttest_denom causes ZeroDivisionError in early samples * `#6682 `__: negative binomial survival function is imprecise * `#6897 `__: scipy.stats.mannwhitneyu of empty sets gives p=0.0 and does not... * `#7303 `__: stats.describe with nan_policy=omit returns matrix-wide minmax... * `#7406 `__: scipy.stats.binom.ppf returns nan for q between 0 and 1 if n... * `#7437 `__: ENH: add skewed Cauchy distribution to stats * `#7542 `__: DOC: stats tutorials: Questions on arcsine and Student t formulae * `#7593 `__: Meaning of \`tol\` argument in \`scipy.optimize.minimize\` is... * `#8565 `__: Error in SmoothSphereBivariateSpline(): "ValueError: Error code... * `#8665 `__: \`scipy.ncx2.sf\` should be monotone decreasing * `#8836 `__: scipy.optimize.linprog(method='simplex') needs to return duals * `#9184 `__: Mann-Whitney implementation wrong? * `#9450 `__: allow seeding of init methods in vq.kmeans2 * `#9704 `__: RectSphereBivariateSpline fails for negative longitude * `#9836 `__: scipy.stats.rice gives incorrect results when s is very low compared... * `#9904 `__: Request/Proposal: Greatly improve scipy.interpolate.Rbf * `#9981 `__: stats.kruskal : add a warning for an input with 2 or more columns * `#10358 `__: DOC: linprog and linear_sum_assignment tutorials needed * `#10908 `__: Nakami fitting doesn't converge (scipy.stats) * `#10933 `__: Add scaled inverse chi2 distribution * `#11014 `__: Barnard's Test for More Powerful Hypothesis Testing of 2x2 Contingency... * `#11050 `__: Feature request: Nelder-Mead with bounds * `#11086 `__: scipy.stats.skew doesn't work correctly for float point numbers * `#11113 `__: inconsistent result from ttest_ind and mannwhitneyu when used... * `#11134 `__: Wrong confidence interval for binomial distribution with p=0 * `#11325 `__: Add axis parameter for scipy.spatial.distance.jensenshannon * `#11474 `__: scipy.stats.skellam.cdf(0) returns 0 for large mu1 = mu2 * `#11523 `__: scipy.stats.zipf doesn't implement zipf distribution * `#11848 `__: How to get Lagrange / lambda multipliers out of 'linprog' optimize... * `#11909 `__: Enable bounds for lambda in boxcox * `#12118 `__: Docstring missing defaults * `#12132 `__: Slow tests to be trimmed or moved to test('full') * `#12230 `__: Dendrogram: enable leaves labelling with 'labels' when using... * `#12282 `__: scipy.stats.chisquare test does not check that observed and expected... * `#12298 `__: BUG: fmin_powell missing squeeze in 1.5.0rc * `#12403 `__: Add nan_policy to stats.zmap * `#12518 `__: Null hypothesis of Kolmogorov Smirnov test is not correctly described * `#12534 `__: Feature request: scipy.linalg.norm to deal with 0-size array * `#12622 `__: scipy.interpolate.interpn docstring example * `#12635 `__: scipy.stats.beta.ppf gives unexpexted results * `#12669 `__: Median-averaging of complex CSDs * `#12731 `__: stats.ncx2.cdf fails for nc >> x >> 1 * `#12778 `__: Confusing documentation of scipy.stats.weightedtau * `#12794 `__: [Bug] The result of stats.beta.isf is inconsistent with stats.beta.sf * `#12837 `__: stats.mannwhitneyu could support arrays * `#12868 `__: Vector-valued interpolation in \`interp2d\` * `#12922 `__: Minimize with trust-constr method leads to TypeError if option... * `#12929 `__: The use of starred expressions to create data detracts from understanding... * `#12965 `__: domain of argument of scipy.interpolate.RectSphereBivariateSpline(u,... * `#13025 `__: Generalized Hyperbolic Distribution * `#13090 `__: Broken link in doc for signal.max_len_seq * `#13101 `__: MAINT: Upgrade python version in docker file * `#13158 `__: \`signal.get_window()\` has a missing doc link and cannot get... * `#13173 `__: Uninformative error message from bisplev function * `#13234 `__: BUG: stats: Wrong shape of burr.moment() and fisk.moment() when... * `#13242 `__: Does kmeans "drop" clusters? * `#13243 `__: tgsen uses an output argument for computing a default argument * `#13245 `__: Kurtosis returning 1 for array of same elements * `#13257 `__: GitHub Actions test failures for MacOS * `#13272 `__: scipy.stats.yeojohnson_llf doc mistake * `#13280 `__: Wrong results with hypergeom cdf * `#13285 `__: description correction in scipy.stats.t * `#13287 `__: Generate binomial CDF with mu instead of prob * `#13294 `__: BUG: stats: wrong bounds returned by 'support' method for distributions... * `#13299 `__: Typing for scipy.spatial * `#13300 `__: Add a single individual to a latinhypercube initial population... * `#13311 `__: MAINT: pavement.py PYVER is outdated * `#13339 `__: savemat discards dimension information if any dimension is zero * `#13341 `__: add scipy.stats.variation with an ddof parameter * `#13353 `__: Documentation: in scipy.stats.johnsonsu, parameter \`a\` can... * `#13405 `__: TST: add a few tests for sparse BSR ctor * `#13410 `__: BUG: skew for empty array raises * `#13417 `__: 10,000 times speedup for generating random numbers from the cosine... * `#13440 `__: python runtest.py -t path-to-test.py failed * `#13454 `__: Scipy cosine distance can be greater than 2 * `#13459 `__: Broken link in cramervonmises documentation * `#13494 `__: One-word typo in the documentation of optimize.linprog_simplex * `#13501 `__: minimize using Powell methods with Bounds leads to "TypeError:... * `#13509 `__: signal.medfilt2d vs ndimage.median_filter * `#13511 `__: DOC: error in description of "direc" parameter of "fmin_powell" * `#13526 `__: TST: stats: intermittent \`test_ttest_ind_randperm_alternative2... * `#13536 `__: \`_within_tolerance\` seems an unnecessary repetition of \`numpy.isclose\` * `#13540 `__: missing python 3.8 manylinux wheels on scipy-wheels-nightly * `#13559 `__: shape error in linprog with revised simplex * `#13587 `__: binned_statistic unreliable with single precision * `#13589 `__: Better argument preparation for distributions in stats package. * `#13602 `__: The crystallball distribution entropy is sometimes minus infinity * `#13606 `__: MAINT: mypy: some typing errors while running mypy + adding mypy... * `#13608 `__: Why does stats.binned_statistic_2d convert its values argument... * `#13609 `__: BUG: SciPy pip install -e gets unusable version spec * `#13610 `__: Highs solver did not provide a solution nor did it report a failure * `#13614 `__: BUG: invgauss.cdf should return the correct value when \`mu\`... * `#13628 `__: 1-letter typo in the definition of scipy.special.spence function... * `#13634 `__: mmwrite fails on dense, skew-symmetric array * `#13646 `__: Sparse matrix argmax() integer overflow on Windows 10 * `#13647 `__: \`scipy.stats.qmc.LatinHypercube\` cannot sample single sample... * `#13651 `__: Documentation wrong in scipy.linalg.eigvalsh * `#13664 `__: BUG: gamma distribution's inverse survival function overflows... * `#13693 `__: BUG: sokalmichener appears to incorrectly apply weights * `#13697 `__: BUG: stats: Spurious warning generated by arcsine.pdf at the... * `#13704 `__: Make it possible to pass a rank cut-off value relatively to the... * `#13707 `__: Kullback Leibler Divergence broadcasting no longer works * `#13740 `__: Scipy.optimize x0 out of bounds when it is within bounds. * `#13744 `__: scipy.interpolate.interp1d has inconsistent behavior for non-unique... * `#13754 `__: optimize.minimize 'trust' methods and finite difference Hessian... * `#13762 `__: MAINT, TST: aarch64 stats test failures showing up in wheels... * `#13769 `__: probplot draws fit line even when fit=False * `#13791 `__: BUG: stats: wrapcauchy.cdf does not broadcast the shape parameter... * `#13793 `__: CI: CircleCI doc build failure * `#13840 `__: manylinux1 builds are failing because of C99 usage in \`special/_cosine.c\` * `#13850 `__: CI: Homebrew is failing due to bintray * `#13875 `__: BUG: chi2_contingency with Yates correction * `#13878 `__: BUG: \`signal.get_window\` argument handling issue * `#13880 `__: Remove all usages of numpy.compat * `#13896 `__: Boschloo's Test for More Powerful Hypothesis Testing of 2x2 Contingency... * `#13923 `__: Inverse of Log CDF of Normal Distribution * `#13933 `__: \`signal.get_window\` does not support \`general_cosine\` and... * `#13950 `__: DOC: scipy.spatial.KDTree.query * `#13969 `__: N=4 must not exceed M=3 * `#13970 `__: Pearson's original paper on chi-square test could be referenced. * `#13984 `__: Faster addition of sparse diagonal matrices * `#13988 `__: An error occurred when using scipy.io.wavfile of scipy 1.6 version... * `#13997 `__: BUG: sparse: Incorrect result from \`dia_matrix.diagonal()\` * `#14005 `__: MAINT: optimize: \`curve_fit\` input error msg can be improved. * `#14038 `__: MAINT: add type annotations for _sobol.pyx * `#14048 `__: DOC: missing git submodule information * `#14055 `__: linalg.solve: Unclear error when using assume_a='her' with real... * `#14093 `__: DOC: Inconsistency in the definition of default values in the... * `#14158 `__: TST, BUG: test_rbfinterp.py -- test_interpolation_misfit_1d fails... * `#14170 `__: TST: signal submodule test_filtfilt_gust failing on 32-bit amd64... * `#14194 `__: MAINT: download-wheels.py missing import * `#14199 `__: Generated sources for biasedurn extension are broken in 1.7.0rc1 ************************** Pull requests for 1.7.0 ************************** * `#4824 `__: Permutation Ttest (new PR) * `#4933 `__: ENH: Update the Mann-Whitney-Wilcoxon test * `#7702 `__: ENH: stats: Add Skewed Cauchy Distribution * `#8306 `__: Optional Pythran support for scipy.signal.max_len_seq_inner * `#10170 `__: MAINT: stats: Implement cdf and ppf as ufuncs for the cosine... * `#10454 `__: ENH: Extend find_peaks_cwt to take numbers and iterables for... * `#10844 `__: ENH: add stats.qmc module with quasi Monte Carlo functionality * `#11313 `__: ENH: add Wright's generalized Bessel function * `#11352 `__: ENH: stats: Add crosstab function. * `#11477 `__: FIX: bounded parameter in cdfchn.f gives bad results * `#11695 `__: ENH: stats: add method of moments to \`rv_continuous.fit\` * `#11911 `__: ENH: Added bounds to boxcox and boxcox_normmax * `#12438 `__: BUG: use ellipkm1 in elliptical filter design to prevent numerical... * `#12531 `__: ENH: stats: add Page's L test * `#12603 `__: ENH: stats: Add \`binomtest\` to replace \`binom_test\`. * `#12653 `__: ENH: stats: add Somers' D test * `#12676 `__: BUG: update median averaging in signal.csd * `#12760 `__: BUG: special: erfinv(x<<1) loses precision * `#12801 `__: ENH: Add single-sided p-values to remaining spearmanr and linregress * `#12873 `__: ENH: Stats: add Alexander Govern Test * `#13008 `__: ENH: Add 'alternative' to functions using normal CDF for p-value * `#13040 `__: BUG: Allow RectSphereBivariateSpline to accept negative longitude * `#13048 `__: ENH: stats: Add a function that computes the relative risk. * `#13067 `__: ENH: Add weights parameter to stats.gmean * `#13084 `__: ENH: fast Hankel transform * `#13104 `__: MAINT: upgrade python version (drop python 3.6) for docker dev... * `#13153 `__: ENH: added association measurements Pearsons Contingency Coefficient,... * `#13166 `__: ENH: stats: Add nan_policy to zmap. * `#13175 `__: MAINT: tests for tall cost matrices in \`linear_sum_assignment\` * `#13177 `__: BUG: raise NotImplementedError in fourier_ellipsoid when ndim... * `#13184 `__: BUG: stats: Fix min and max calculation of mstats.describe with... * `#13188 `__: DOC: stats: make null and alternative hypotheses of kstest more... * `#13193 `__: MAINT: stats: chisquare check sum of observed/expected frequencies * `#13197 `__: ENH/MAINT: HiGHS upstream enhancements and bug fixes * `#13198 `__: ENH: allow inference of output_shape from out array in affine_transform * `#13204 `__: ENH: stats: add Zipfian (different from Zipf/zeta) distribution * `#13208 `__: REL: set version to 1.7.0.dev0 * `#13216 `__: TST: stats: break up and mark slow tests * `#13224 `__: Update docs for the weighted ? * `#13230 `__: ENH: linalg: Add LAPACK wrapper for tgexc. * `#13232 `__: MAINT: stats: raise error when input to kruskal has >1 dim * `#13233 `__: DOC: stats: fix MGF of arcsine and entropy of t in tutorial * `#13236 `__: MAINT: reorganize shared linear assignment tests * `#13237 `__: BENCH: Refactor stats.Distribution to easily add new distributions * `#13238 `__: BUG: stats: fix wrong shape output of burr and fisk distributions * `#13240 `__: MAINT: add tests of trivial cost matrices for linear sum assignment * `#13252 `__: DOC: optimize: add \`optimize.linear_sum_assignment\` tutorial. * `#13254 `__: BUG: Fix precision issues for constant input in skew and kurtosis * `#13262 `__: BUG: scipy.medfilt and .medfilt2d fixes * `#13263 `__: ENH: add Cramer-von Mises test for two samples * `#13264 `__: fix a minor typo in \`stats.anderson\` doc * `#13268 `__: ENH: stats: Add implementation of _entropy for the t distr. * `#13273 `__: DOC: stats: fix typo in Yeo-Johnson LL function documentation * `#13275 `__: MAINT: stats: Correct a comment in the _fitstart method of gamma. * `#13283 `__: BUG: stats: fix the cdf method of rv_discrete class * `#13286 `__: DOC: stats: clairify rv_continuous/discrete.stats example * `#13288 `__: DOC: stats: discrete distribution shape parameter restrictions * `#13289 `__: MAINT: fix a build warning in sigtoolsmodule.c * `#13290 `__: DOC: Expand the discussion of the nan_policy API. * `#13291 `__: MAINT: signal, stats: Use keepdims where appropriate. * `#13292 `__: DOC: stats: note another common parameterization of nbinom * `#13293 `__: DOC: Change broken link for default values to archived link * `#13295 `__: BUG: stats: fix the support method to return correct bounds * `#13296 `__: DOC: stats: Fix latex markup in the kstwo docstring. * `#13297 `__: TST: mark kde.logpdf overflow test as xslow * `#13298 `__: Generalized Hyperbolic Distribution * `#13301 `__: DOC: cluster: Add cluster number note to the docstring of cluster.vq.kmeans * `#13302 `__: BUG: Fix ndimage.morphology.distance_transform\_\* argument handling * `#13303 `__: CI: prevent Codecov giving false CI failures and wrong PR annotations * `#13313 `__: ENH: static typing for qhull * `#13316 `__: Pythran implementation of scipy.signal._spectral * `#13317 `__: DOC: forward port 1.6.0 relnotes * `#13319 `__: ENH: stats: add fast numerical inversion of distribution CDF * `#13320 `__: ENH: x0 for differential_evolution * `#13324 `__: DOC correct linprog highs versionadded to 1.6 * `#13326 `__: MAINT: update numpydoc to v1.1.0 * `#13327 `__: DOC: interpolate: improved docstring examples of \`interpolate.interpn()\`... * `#13328 `__: ENH: Boost stats distributions * `#13330 `__: ENH: stats: add noncentral hypergeometric distributions (Fisher's... * `#13331 `__: MAINT/ENH: resolve mypy warnings/errors * `#13332 `__: DOC: interpolate: improved docstring of \`interpolate.interp2d\`... * `#13333 `__: ENH: stats: Some more _sf and _isf implementations. * `#13334 `__: MAINT: stats: Clean up a few defunct comments in _continuous_distns.py * `#13336 `__: Pythran version of scipy.optimize._group_columns * `#13337 `__: DOC|ENH: type hinting in scipy.integrate.simpson * `#13346 `__: ENH: stats: add 'ddof' parameter to the 'variation' function * `#13355 `__: ENH: stats: implement _logpdf, _sf and _isf for loggamma. * `#13360 `__: ENH|DOC: fix docstring and input validation in interpolate.RectSphereBivariateSpline * `#13366 `__: BUG: stats: Don't raise ZeroDivisionError in _unequal_var_ttest_denom * `#13370 `__: ENH: fix ARGUS distribution for small parameters in stats * `#13371 `__: ENH: stats: add \`bootstrap\` for estimating confidence interval... * `#13373 `__: BUG: io/matlab: preserve dimensions of empty >=2D arrays * `#13374 `__: ENH: stats: add skewed Cauchy distribution * `#13379 `__: BUG: sparse: fix verbosity in sparse lsqr * `#13383 `__: TST: stats: mark many dimension permutation t-test slow * `#13384 `__: MAINT: Make keywords array static * `#13388 `__: PERF: Avoid duplicate mean calculations in skew and kurtosis * `#13389 `__: DOC: Fix deprecated directive syntax * `#13390 `__: DOC: Correct line length for Parameter Section underline * `#13393 `__: MAINT: stats: allow wishart dim - 1 < df < dim * `#13395 `__: DOC: fix typo in setup.py warning message * `#13396 `__: BUG: Fix MLE for Nakagami \`nakagami_gen.fit\` * `#13397 `__: MAINT:linalg: Fix tgsen family wrapper and ordqz * `#13406 `__: TST: add error handling tests for sparse BSR ctor * `#13413 `__: DOC: ultra-quickstart guide * `#13418 `__: BUG: Fix moment returning inconsistent types and shapes * `#13423 `__: DOC: Update example for leaf_label_func/dendrogram * `#13431 `__: ENH: stats: override _rvs for nhypergeom * `#13432 `__: Add indicator in NDInterpolator docstring that N must be > 1 * `#13434 `__: DOC: stats: note relationship between scaled-inv-chi2 and invgamma * `#13436 `__: ENH: interpolate: add input validation to check input x-y is... * `#13441 `__: ENH: add functionality \`barnard_exact\` test to scipy.stats. * `#13443 `__: MAINT: stats: Updates for skewcauchy * `#13444 `__: DOC: clarify range of \`a\` parameter fpr johnsonsu/johnsonsb * `#13445 `__: DOC: fix runtests guidelines. * `#13446 `__: MAINT: stats: Add _fitstart method to wrapcauchy. * `#13447 `__: DEV: Update development Docker image * `#13448 `__: ENH: Add annotations for \`scipy.spatial.distance\` * `#13451 `__: DOC: minor formatting. * `#13458 `__: DOC: indent see also. * `#13460 `__: DOC: stats: Fix link to Cramer-von Mises wikipedia article. * `#13461 `__: DOC: reorganize scipy.stats overview docs page * `#13463 `__: DOC: misc formatting fixes * `#13466 `__: DOC: Typo in see also s/SmoothUni/SmoothBi/g * `#13467 `__: DOC: optimize: add description about \`tol\` argument for \`minimize\`. * `#13469 `__: MAINT: Refactor optimization methods to use scipy.stats.qmc * `#13477 `__: CI: pin numpy to 1.19.5 for the three macOS CI jobs * `#13478 `__: DOC: fix typos where double :: for Sphinx directives were missing * `#13481 `__: CI: pin numpy to 1.19.5 in the 4 parallel Windows builds on Azure * `#13482 `__: CI: use numpy 1.20.0 again in macOS CI * `#13483 `__: DOC: Multiple documentation syntax fixes. * `#13484 `__: Move some pythran config from CI to setup * `#13487 `__: DOC: add a tutorial about scipy.stats.qmc * `#13492 `__: ENH: GH actions should not run on forks * `#13493 `__: DEV: Enable gitpod for SciPy * `#13495 `__: DOC One-word typo in the documentation of optimize.linprog_simplex * `#13499 `__: DOC: describe LSAP implementation * `#13502 `__: BUG: Bounds created with lists weren't working for Powell * `#13507 `__: MAINT, TST: stats: centralize invalid parameters list for all... * `#13510 `__: DOC: stats: fix small doc errors in 'multivariate_hypergeom' * `#13513 `__: DOC: Added math notation in examples in ltisys.py * `#13514 `__: ENH: simplify low_0_bit function for Sobol * `#13515 `__: ENH: optimize: add bound constraint support for nelder-mead solver * `#13516 `__: DOC: reduce LaTeX usage for johnsonb docstring * `#13519 `__: BLD: remove build_sphinx support from setup.py * `#13527 `__: TST: stats: xfail ttest_ind_randperm_alternative2 on 32 bit * `#13530 `__: DOC: correct comparisons between median filter functions * `#13532 `__: ENH: release the GIL inside medfilt2d * `#13538 `__: DOC: optimize: fix minor doc error in 'fmin_powell' (#13511) * `#13546 `__: DOC: fix list of "mode" options for ndimage * `#13549 `__: ENH: stats: add 'alternative' keyword to some normality tests. * `#13551 `__: MAINT: add git to docker env * `#13552 `__: MAINT: stats: remove float_power shim * `#13553 `__: DOC: use support rather than a/b in stats tutorial * `#13560 `__: MAINT: optimize: improve linprog error message for sparse input... * `#13562 `__: MAINT: optimize: using np.isclose instead of _within_tolerance. * `#13566 `__: ENH: Speed up hdquantiles_sd() * `#13569 `__: BENCH: optimize: benchmark only HiGHS methods; add bigger linprog... * `#13574 `__: DOC: In description of cluster.hierarchy.dendrogram 'level' parameter,... * `#13576 `__: ENH: improve discrepancy performance * `#13579 `__: TST: Add pybind11 to tox environments * `#13583 `__: BUG: Fix Dockerfile apt-get installs * `#13588 `__: MAINT: forward port 1.6.1 relnotes. * `#13593 `__: BUG: stats: preserve sample dtype for bin edges * `#13595 `__: ENH: interpolate: add RBFInterpolator * `#13596 `__: DOC: Fix indentation in new_stats_distribution.rst.inc * `#13601 `__: Add dpss for get_window function * `#13604 `__: DOC: Correct dual annealing visiting param range. * `#13605 `__: Add Codecov badge to README * `#13607 `__: MAINT: stats: fix crystalball entropy * `#13611 `__: Better argument preparation for distributions in stats package. * `#13612 `__: Add docker run command for Windows cmd * `#13613 `__: MAINT, CI: mypy: fix typing errors + add mypy to CI * `#13616 `__: FIX: Return correct output for invgauss.cdf when mu is very small * `#13617 `__: MAINT: accept numbers and iterables for width in find_peaks_cwt * `#13620 `__: CI: disable the mypy CI job (partial revert of gh-13613) * `#13621 `__: DOC: signal: use array_like for input types * `#13622 `__: MAINT: clean up some unused files, make \`mypy scipy\` pass * `#13623 `__: CI: enable Mypy CI job again * `#13624 `__: TST: test more values for \`visiting_param\` input to \`dual_annealing\` * `#13625 `__: Rename integrate.simps to integrate.simpsons in documentation... * `#13631 `__: ENH: add a \`stats.differential_entropy\` function * `#13633 `__: BUG: stats.binned_statistic_2d user function expecting arrays * `#13641 `__: ENH: Added degrees parameter to rotvec * `#13645 `__: MAINT: mypy: don't install numpy-stubs * `#13649 `__: BUG: sparse: csc_matrix.argmax() integer overflow * `#13650 `__: ENH: stats: add 'alternative' parameter to ansari * `#13652 `__: DOC: fix eigvalsh documentation (#13651) * `#13654 `__: BUG: Fix LatinHypercubes * `#13656 `__: DOC: Fix PCHIP references * `#13657 `__: TST: remove IPython warning in debug session * `#13658 `__: Remove spurious quotes in docstring * `#13661 `__: ENH: stats: improve efficiency of / fix bug in exact permutation... * `#13667 `__: MAINT: Make latest Docker image default * `#13668 `__: MAINT: add .theia/ to .gitignore * `#13669 `__: BLD: change SCIPY_USE_PYTHRAN default to \`1\` * `#13676 `__: ENH Small improvements for LSQR with damp * `#13678 `__: MAINT: add Pythran-generated files to .gitignore * `#13679 `__: MAINT: move the \`conda develop .\` in the Gitpod config * `#13680 `__: DOC: Add cKDTree note comparing it with KDTree * `#13681 `__: DOC: build doc updates on Pythran, compiled code, and cleanups * `#13683 `__: BUG: mmwrite correctly serializes non skew-symmetric arrays * `#13684 `__: FIX: fix numerical overflow in gamma.isf method * `#13685 `__: BUG: fix cosine distance range to 0-2 * `#13694 `__: MAINT: fix warning emitted when NumPy version is incorrect * `#13696 `__: ENH: support trimming in ttest_ind * `#13698 `__: BUG: stats: Fix spurious warnings generated by arcsine.pdf * `#13701 `__: DEV: scipy.interpolate b-splines (periodic case) * `#13702 `__: DEP: Clean up spent deprecations in spatial.distance * `#13703 `__: MAINT: fix issues found by static code analysis * `#13706 `__: ENH: stats: Implement sf and isf for the laplace distribution. * `#13711 `__: MAINT: stats: fix broadcasting for scipy.stats.entropy * `#13712 `__: BUG: stats: Override _fitstart for the invweibull distribution. * `#13713 `__: DOC: update toolchain.rst to reflect windows universal C runtime * `#13714 `__: MAINT: stats: Remove an unused list from test_continuous_basic.py. * `#13715 `__: MAINT: stats: No need to suppress frechet deprecation warnings. * `#13716 `__: MAINT: use super() as described by PEP 3135 * `#13718 `__: MAINT: new-style class, removing inheritance to object * `#13721 `__: MAINT: add a type-ignore for mpmath (#13721) * `#13723 `__: MAINT: mypy: ignore mpmath imports in mypy.ini * `#13724 `__: DOC: pydata sphinx theme * `#13725 `__: BENCH: add benchmark for Kendalltau * `#13727 `__: CI: simplify Pythran configuration setup for Azure * `#13731 `__: MAINT: stats: Some flake8-driven clean up. * `#13732 `__: ENH: stats: Studentized Range Distribution * `#13735 `__: DOC: correct Voronoi docstring * `#13738 `__: DOC: add example to wright_bessel * `#13739 `__: ENH: stats: Implement _sf and _isf for the chi distribution. * `#13741 `__: MAINT: prevent overwriting of x in minimize * `#13747 `__: DOC: Add note for interp1d for non-unique x-values * `#13749 `__: MAINT: forward port 1.6.2 relnotes * `#13759 `__: MAINT: simpson small performance speedups * `#13765 `__: FIX: npymath missing causing npy_log1p to be unknown * `#13768 `__: BENCH: Add missing pythran dependency * `#13770 `__: ENH: stats.contingency: Add the sparse option to crosstab. * `#13774 `__: DEP: Deprecate squeezing input vectors in spatial.distance * `#13775 `__: Enable trust region methods to use a finite difference Hessian... * `#13777 `__: DOC: Fix Ubuntu/Debian installation instructions * `#13778 `__: DOC: remove references to RandomState * `#13782 `__: MAINT: LBFGSB err msg on MAXLS changed closes #11718 * `#13785 `__: BENCH: Add benchmark for cdist/pdist with weights * `#13786 `__: MAINT: Prepare cdist/pdist for C++ rework * `#13787 `__: MAINT: stats: move entropy and differential_entropy functions... * `#13790 `__: DOC: Add some dependencies for Dockerfile doc of scipy development. * `#13792 `__: BUG: stats: Fix broadcasting in wrapcauchy.cdf * `#13795 `__: MAINT: stats: add hypotests to __all__ in init.py, not stats.py * `#13797 `__: MAINT: stats: probplot: don't plot least-squares fit line unless... * `#13798 `__: MAINT: fix incorrect code comment in \`hierarchy.to_tree\` * `#13802 `__: DEV: add environment.yml file for development with conda/mamba * `#13803 `__: DOC: fix doc build warning about arxiv role already being registered * `#13804 `__: DOC+MAINT: optimize: lb and ub in the Bounds constructor are... * `#13807 `__: MAINT: Dont use parallel Sphinx * `#13808 `__: MAINT: cluster.to_tree: more idiomatic looping over rows of matrix... * `#13810 `__: MAINT: add a CODEOWNERS file * `#13811 `__: MAINT: Add ci skip to azp * `#13814 `__: ENH/DOC: pydata sphinx theme polishing * `#13817 `__: DOC: Misc parameter typo and casing in scipy/linalg/_decomp_ldl.py * `#13818 `__: MAINT: stats: keep \`entropy\` importable from \`scipy.stats.distributions\` * `#13820 `__: BUG: update _kendall_p_exact ValueError to f-string * `#13831 `__: FIX:DEP: Allow better tolerance control for pinv and pinvh and... * `#13832 `__: BUG: stats: Fix rvs for levy_stable when alpha=1 * `#13833 `__: MAINT: Add inline type hintings for stats.qmc * `#13836 `__: MAINT: Fix a couple compiler warnings. * `#13838 `__: TST: relax test tolerances for BinomTest * `#13841 `__: BLD: add \`-std=c99\` flag to scipy.special extensions using... * `#13845 `__: ENH: stats: add \`method\` parameter to \`differential_entropy\`... * `#13847 `__: TST: skip on optimize failure on macOS, mark one as xfail * `#13848 `__: DOC: optimize: move Nelder Mead doc from Unconstrained minimization... * `#13849 `__: DOC: Roadmap update * `#13852 `__: CI: fix temporary wrong brew version from GitHub * `#13854 `__: ENH: Update Scipy Gitpod * `#13859 `__: TST: fix ultra-slow ttest permutations test * `#13860 `__: MAINT: clean up LSAP error checking * `#13863 `__: DOC: remove seed in examples * `#13865 `__: DOC: optimize: The bounds param of differential_evolution is... * `#13866 `__: MAINT: special: Remove an unused variable from _poly_approx in... * `#13867 `__: DOC: stats: Explain meaning of alternatives for fisher_exact. * `#13868 `__: CI: fix the failing job on linux. * `#13870 `__: MAINT: move LSAP rectangular matrix handling into solver code * `#13871 `__: DOC: Add Gitpod documentation * `#13876 `__: Workflow : Add nightly release of NumPy in linux workflows * `#13877 `__: DOC: Conform to numpydoc + uniformity. * `#13879 `__: BUG: signal: fix get_window argument handling and add tests. * `#13881 `__: CI: remove .travis.yml, remove codecov from CircleCI * `#13882 `__: BLD: ensure incrementing dev version strings * `#13886 `__: TST: optimize: skip test_network_flow_limited_capacity w/ UMFPACK... * `#13888 `__: MAINT: Fix issues involving elif conditions * `#13891 `__: Rename InivariateSpline to UnivariateSpline * `#13893 `__: ENH: linprog HiGHS marginals/sensitivy analysis * `#13894 `__: DOC: Add blank line before \`Return\` section. * `#13897 `__: DOC: BLD: fix doc build version check, and improve build time * `#13903 `__: MAINT: Gitpod fixes * `#13907 `__: ENH: Rewrite minkowski metric in C++ with pybind11 * `#13909 `__: Revert "Workflow : Add nightly release of NumPy in linux workflows" * `#13910 `__: DOC: update Readme * `#13911 `__: MAINT: use dict built-in rather than OrderedDict * `#13920 `__: BUG: Reactivate conda environment in init * `#13925 `__: BUG: stats: magnitude of Yates' correction <= abs(observed-expected)... * `#13926 `__: DOC: correct return type in disjoint_set.subsets docstring * `#13927 `__: DOC/MAINT: Add copyright notice to qmc.primes_from_2_to * `#13928 `__: BUG: DOC: signal: fix need argument config and add missing doc... * `#13929 `__: REL: add PEP 621 (project metadata in pyproject.toml) support * `#13931 `__: MAINT: special: get rid of _logit.c.src * `#13934 `__: ENH: signal: make \`get_window\` supports \`general_cosine\`... * `#13940 `__: MAINT: QMCEngine d input validation * `#13941 `__: MAINT: forward port 1.6.3 relnotes * `#13944 `__: BUG: spatial: fix weight handling of \`distance.sokalmichener\`. * `#13947 `__: MAINT: Remove duplicate calculations in sokalmichener * `#13949 `__: DOC: minor grammar fixes in minimize and KDTree.query * `#13951 `__: ENH: Add Boschloo exact test to stats * `#13956 `__: ENH: spatial: add \`axis\` and \`keepdims\` optional argument... * `#13963 `__: MAINT: stats: Fix unused imports and a few other issues related... * `#13971 `__: DOC: Add Karl Pearson's reference to chi-square test * `#13972 `__: ENH: cluster: add an optional argument \`seed\` for \`kmeans\`... * `#13973 `__: BLD: fix build warnings for causal/anticausal pointers in ndimage * `#13975 `__: ENH: set empty array norm to zero. * `#13977 `__: MAINT: signal: replace distutils templating with tempita * `#13978 `__: MAINT: improve validations and keyword only arguments for some... * `#13979 `__: ENH: Add Inverse of Log CDF of Normal Distribution * `#13983 `__: Fixing \`ndimage.watershed_ift\` tutorial's documentation * `#13987 `__: DOC: Adding examples to docstrings in morphology: white_tophat,... * `#13989 `__: DOC: interpolate: improve examples of \`RegularGridInterpolator\`... * `#13990 `__: MAINT, DOC: optimize: Make the input validation explanation clear... * `#13992 `__: Workflow : Add nightly release of NumPy in linux workflows * `#13995 `__: Doc: Continuous integration information * `#14000 `__: BUG: sparse: Fix DIA.diagonal bug and add a regression test * `#14004 `__: ENH: Fast addition dia matrix * `#14006 `__: MAINT: optimize: add validation to check func parameter number... * `#14008 `__: BUG: Raise exception for inconsistent WAV header * `#14009 `__: DEP: Remove usage of numpy.compat * `#14010 `__: MAINT: add support for wheel DL proxy * `#14012 `__: DOC: Broaden Exact Test Reference * `#14015 `__: MAINT: remove brew update * `#14017 `__: BENCH: Add more formats for sparse arithmetic * `#14018 `__: BENCH: add benchmark for f_oneway * `#14020 `__: MAINT: modify np.int\_ to np.int32 to make it the same for 32/64... * `#14023 `__: MAINT: Fix clang build and remove some unicode characters * `#14025 `__: BUG: sparse: fix DIA.setdiag issue * `#14026 `__: TST: optimize: xfail part of test_powell * `#14029 `__: CI: github macos fix * `#14030 `__: MAINT: use 'yield from ' (PEP 380) * `#14031 `__: MAINT: new-style class, removing inheritance to object * `#14032 `__: MAINT: CXXFLAGS for Pythran * `#14033 `__: ENH: Port sqeuclidean and braycurtis to _distance_pybind * `#14034 `__: MAINT: Clean-up 'next = __next__' * `#14045 `__: MAINT: bump PYVER pavement.py * `#14047 `__: DEV: initialize boost submodule in Gitpod Dockerfile * `#14051 `__: BLD: if boost submodule content is missing, error out early * `#14052 `__: DOC: missing submodule init information * `#14057 `__: DOC: special: Add Examples to \`psi\` docstring * `#14058 `__: BUG: fixed a dtype bug in linalg.solve. * `#14060 `__: Doc: Fix typo in documentation of spence function. * `#14061 `__: MAINT:stats: Type annotations for _sobol.pyx * `#14062 `__: DOC: A few small fixes in quickstart_gitpod.rst * `#14063 `__: DOC: signal: add Add Examples to \`cont2discrete\` docstring * `#14064 `__: DOC: optimize: Add Examples to fmin_bfgs docstring * `#14065 `__: Add example for scipy stats.trim1 under docstring * `#14066 `__: DOC add example to scipy.special.hermite * `#14067 `__: DOC add alpha docstring description, add example to docstring * `#14070 `__: DOC add parameters, return, and example to docstring * `#14072 `__: MAINT/TST: Fix tests failing with the nightly build of numpy. * `#14075 `__: DOC Improve the code snippet in signal.hilbert docstring. * `#14076 `__: DOC: Document Jensen-Shannon distance being accepted by cdist/pdist * `#14079 `__: BLD: Avoid importing scipy.stats during cythonize stage * `#14082 `__: MAINT: Remove old, commented extract_diagonal * `#14083 `__: MAINT: sparse: Remove defunct function extract_diagonal * `#14085 `__: ENH: Implement canberra distance in _distance_pybind * `#14086 `__: MAINT: Clear scipy namespace of entries better imported from... * `#14088 `__: Install Pythran from sources for python 3.10 * `#14092 `__: BUG: Fixes issue with clang. * `#14094 `__: DOC: Correct the inconsistence definition of Default in class... * `#14105 `__: TST: stats: mannwhitneyu: check that mstats and stats mannwhitneyu... * `#14106 `__: DOC: stats.mstats: mannwhitneyu: the returned statistic is the... * `#14107 `__: ENH: stats: bootstrap: add \`vectorized\` parameter; automatically... * `#14109 `__: BUG: fix two issues in the fblas signature files * `#14110 `__: DOC: mailmap update * `#14113 `__: ENH: stats: bootstrap: add \`paired\` parameter * `#14116 `__: MAINT: fix deprecated Python C API usage in odr * `#14118 `__: DOC: 1.7.0 release notes * `#14125 `__: DOC: fix typo * `#14126 `__: ENH: stats: bootstrap: add \`batch\` parameter to control batch... * `#14127 `__: CI: upgrade pip in benchmarks CI run * `#14130 `__: BUG: Fix trust-constr report TypeError if verbose is set to 2... * `#14133 `__: MAINT: interpolate: raise NotImplementedError not ValueError * `#14139 `__: FIX/DOC: lsqr doctests print failure * `#14145 `__: MAINT: 1.7.x version pins ("backport") * `#14146 `__: MAINT: commit count if no tag * `#14164 `__: TST, BUG: fix rbf matrix value * `#14166 `__: CI, MAINT: restrictions on pre-release CI * `#14171 `__: TST: signal: Bump tolerances for a test of Gustafsson's... * `#14175 `__: TST: stats: Loosen tolerance in some binomtest tests. * `#14182 `__: MAINT: stats: Update ppcc_plot and ppcc_max docstring. * `#14195 `__: MAINT: download-wheels missing import * `#14230 `__: REL: stop shipping generated Cython sources in sdist Checksums ========= MD5 ~~~ 723fe734dc1f49274454819c3082b02b scipy-1.7.0rc2-cp37-cp37m-macosx_10_9_x86_64.whl 3d9eac78e03298a51196d02458d1d49c scipy-1.7.0rc2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 050de4e379b55f7af52bc7415fe92a3b scipy-1.7.0rc2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl 92322931a3ac5fe03f4f4242c866c524 scipy-1.7.0rc2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl f49bf61bfab4b248638f2b1cae361ed9 scipy-1.7.0rc2-cp37-cp37m-win32.whl 37f6762a03375501f9f62a42a7630427 scipy-1.7.0rc2-cp37-cp37m-win_amd64.whl bf461a9bd869e12d506ec13c2af5bb82 scipy-1.7.0rc2-cp38-cp38-macosx_10_9_x86_64.whl 96b0a804ceaf6e66e036f9adb680f18d scipy-1.7.0rc2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 347f567129061863b4c97a27da78baa4 scipy-1.7.0rc2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl de88ecccaad1c36ccc98e0a6c2fc826a scipy-1.7.0rc2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl 7a4041bfb2c7efb25cd1a8aaca3341c8 scipy-1.7.0rc2-cp38-cp38-win32.whl aa65d3cee38ee58dc51c02e8efc7a740 scipy-1.7.0rc2-cp38-cp38-win_amd64.whl 7e4625f35b18fd5fe583fdb7ce537804 scipy-1.7.0rc2-cp39-cp39-macosx_10_9_x86_64.whl d0a394d3a5f84e8b72738173f8a56a68 scipy-1.7.0rc2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl c93d965330fe34a671c9f849a5976309 scipy-1.7.0rc2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl 1ed5be440f58786ad79b5e22d8e0832b scipy-1.7.0rc2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl ecbffc705d0354294e789c9342a96758 scipy-1.7.0rc2-cp39-cp39-win32.whl 23ddd7d8cf958ecbbae4dd25569db2f5 scipy-1.7.0rc2-cp39-cp39-win_amd64.whl c5df87bb977974cc58d0b303760567c8 scipy-1.7.0rc2.tar.gz 6f085abd8063212c4d093991e7e296cf scipy-1.7.0rc2.tar.xz d7e0fd0116747993ab49c2cd7b50f917 scipy-1.7.0rc2.zip SHA256 ~~~~~~ 243f285cf6421a71e4061efba0bb816d4d22501231cb600862878dead9f4039d scipy-1.7.0rc2-cp37-cp37m-macosx_10_9_x86_64.whl 04aae1cb78fd914ee854ac2d81c71fc8582a08f43f83659c46f57c9c51d2387d scipy-1.7.0rc2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 4e524b5cadb762b623898261f0715f1f9b93a5272850cbfc9c333997f6f71f55 scipy-1.7.0rc2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl 545ccf90903e2f75fbadad01824f7b806d457be0146eea2a7e14a7a0c130ca37 scipy-1.7.0rc2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl 40d7b9a60ef0cdbcce4e51166c6a1df02b6b7c38a5a6324148a305db416ef597 scipy-1.7.0rc2-cp37-cp37m-win32.whl ce5f28458f7118b927b32187fdd42398ecb6a7777a0894e84a7726581257d5cf scipy-1.7.0rc2-cp37-cp37m-win_amd64.whl 47d375a4085adcf0d42a4499810be403323b6d01a3c049036e1c1c5d689887fd scipy-1.7.0rc2-cp38-cp38-macosx_10_9_x86_64.whl f4beec4562f944f3e583c3c0c2a40ec13731588383b18b63e2ee9bf89e9d56ac scipy-1.7.0rc2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl d29dce260e4933ef858ff7f645b6440312982bb23067a175952654f55967c208 scipy-1.7.0rc2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl c9efb79e6dd4563eafa59708d3a90b69d89a55b5f6afe28d018d74497cdc08c3 scipy-1.7.0rc2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl db75e54adb7359b29254e144cf1e9190be6dcc9d29b7b423f3b3c5c7c2306bc1 scipy-1.7.0rc2-cp38-cp38-win32.whl a0f89ba9f674ab696cb2cd463f344b870c81299b966d30196bc6237c68734e8b scipy-1.7.0rc2-cp38-cp38-win_amd64.whl f0b3beb9bf332a031a49259dcc4d4cb3f425bd7429e646783fa8dea2ae1eee63 scipy-1.7.0rc2-cp39-cp39-macosx_10_9_x86_64.whl 7fe5bd2f126545667bc8f59773bf5140dedc6cc457a6543d0cf7bb94138411e6 scipy-1.7.0rc2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl f6dc2287afcb02607a84e687c4d9e597d1916830836356129b0ce3bf0798b9d2 scipy-1.7.0rc2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl d597c6ff7624b6a387ce3ac6cda95e1ed23b2346a5e35ca655790bf4133c1dc3 scipy-1.7.0rc2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl 842b23d45aed8dbed3b6df02209a7154be4744ae57b3f3ce3f724b79871352d7 scipy-1.7.0rc2-cp39-cp39-win32.whl 55d19c4fa237a47f9314618977664527f0260a205e7de3a9b8c9403686afdf0a scipy-1.7.0rc2-cp39-cp39-win_amd64.whl bb5598f8e349e77a9f05d2be605a75b5752648669a0886379b257a449fce244b scipy-1.7.0rc2.tar.gz 48bdd6fbe46aa4c75948ae1e2acefcf2ceaa548b12575fa29ebcc999eb314a8f scipy-1.7.0rc2.tar.xz 886ea7c4aa98d1b46ba64d1928217219db4fc790dd0b07cb62af0e736cc8aa6c scipy-1.7.0rc2.zip -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Mon Jun 14 16:03:26 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Mon, 14 Jun 2021 13:03:26 -0700 Subject: [Numpy-discussion] =?utf-8?q?request_to_remove_the_numpy-aarch64?= =?utf-8?q?_package_from_PyPI?= In-Reply-To: References: Message-ID: On Sun, Jun 13, 2021, at 18:21, Charles R Harris wrote: > > > On Sun, Jun 13, 2021 at 10:47 AM Ralf Gommers wrote: >> FYI, I noticed this package that claimed to be maintained by us: https://pypi.org/project/numpy-aarch64/. That's not ours, so I tried to contact the author (no email provided, but guessed the same username on GitHub) and asked to remove it: https://github.com/tomasriv/DNA_Sequence/issues/1. >> >> There are a very large number of packages with "numpy" in the name on PyPI, and there's no way we can audit/police that effectively, but if it's a rebuild that pretends like it's official then I think it's worth doing something about. It could contain malicious code for all we know. >> > > That is a pretty misleading package description, would have fooled me if I didn't know better. I didn't get the impression it was malicious, but still . . . Maybe now is a good time to move to accept: https://numpy.org/neps/nep-0036-fair-play.html St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From matti.picus at gmail.com Tue Jun 15 03:38:42 2021 From: matti.picus at gmail.com (Matti Picus) Date: Tue, 15 Jun 2021 10:38:42 +0300 Subject: [Numpy-discussion] NEP 36- fair play (was: request to remove the numpy-aarch64 package from PyPI) In-Reply-To: References: Message-ID: <851f5443-4fce-6af5-32be-ecc4c52dffce@gmail.com> On 14/6/21 11:03 pm, Stefan van der Walt wrote: > On Sun, Jun 13, 2021, at 18:21, Charles R Harris wrote: >> >> >> On Sun, Jun 13, 2021 at 10:47 AM Ralf Gommers > > wrote: >> >> FYI, I noticed this package that claimed to be maintained by us: >> https://pypi.org/project/numpy-aarch64/ >> . That's not ours, so I >> tried to contact the author (no email provided, but guessed the >> same username on GitHub) and asked to remove it: >> https://github.com/tomasriv/DNA_Sequence/issues/1 >> . >> >> There are a very large number of packages with "numpy" in the >> name on PyPI, and there's no way we can audit/police that >> effectively, but if it's a rebuild that pretends like it's >> official then I think it's worth doing something about. It could >> contain malicious code for all we know. >> >> >> That is a pretty misleading package description, would have fooled me >> if I didn't know better. I didn't get the impression it was >> malicious, but still . . . > > Maybe now is a good time to move to accept: > > https://numpy.org/neps/nep-0036-fair-play.html > > > St?fan Having just re-read the NEP, I think the Motivation section should mention name re-use: "Additionally, we wish to reduce confusion when package names imply they are sanctioned or maintained by NumPy". Other than that it looks good to me. Do you want to make a PR to add the discussion and change the status, and notify the list of your intention to accept it? Matti From mrahtz at google.com Tue Jun 15 05:16:36 2021 From: mrahtz at google.com (Matthew Rahtz) Date: Tue, 15 Jun 2021 10:16:36 +0100 Subject: [Numpy-discussion] Tensor Typing presentation and discussion on Wednesday! (As part of the NumPy Community Meeting) In-Reply-To: <3D0A76F0-1AB1-476E-82B2-E16C6C0CE0E7@fastmail.com> References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> <3D0A76F0-1AB1-476E-82B2-E16C6C0CE0E7@fastmail.com> Message-ID: Hi Juan Thanks for the kind words! why isn?t there a Subtract operator? > I *think* this is just because the implementation in Pyre is still an early prototype. Alfonso? is there a prospect for using actual operators and actual literals here? > That's a really good question. We're optimistic that actual literals should be possible - we assumed there was some subtle reason we'd have to use Literal, but when we briefly talked about it at PyCon, Guido was like "Nope, you should just write a PEP for that". As for actual operators - I can't think of any *technical* reason this shouldn't be possible - when it comes time to write a PEP for type arithmetic it's definitely something we should propose. Alfonso, any thoughts? Best, Matthew On Mon, 14 Jun 2021 at 03:51, Juan Nunez-Iglesias wrote: > Thank you so much Matthew, Pradeep, and everyone else helping with this > effort! > > And thanks Matthew for sharing the slides ? very informative! I?ve asked > Sebastian for the recording but in the meantime I thought I?d ask a couple > of questions about the syntax: > > * why isn?t there a Subtract operator? It seems that Subtract[A, B] is > much more readable than Add[A, Multiply[Literal[-1], B]]? > * is there a prospect for using actual operators and actual literals here? > I think that a lot of reticence about Python typing comes from the > annotations being so difficult to read. There?s been some great > improvements recently with ?Optional[Tuple[Union[Float, Int]]]? becoming > ?tuple[float | int] | None?, and I hope we can leapfrog the awkward phase > with this tensor typing stuff. Again, A - B is much more readable again > than Subtract[A, B]. And B-2 is much more readable than Add[B, Literal[-2]]. > > Other than that, love the work, thank you again! > > Juan. > > On 11 Jun 2021, at 5:08 am, Matthew Rahtz wrote: > > Some links I promised to send around: > > - https://github.com/deepmind/tensor_annotations which has a bunch of > experimental shape-aware stubs for TensorFlow and JAX using 'semantic' axis > labels > - https://github.com/pradeep90/pytorch_examples ditto for TensorFlow > and PyTorch using value-based axis labels > - https://arxiv.org/pdf/2102.13254.pdf Similar work in TensorFlow for > Swift > - Slides > for > our presentation > - Tensor typing meeting details > > > Thanks again, everyone! > > On Wed, 9 Jun 2021 at 22:28, Sebastian Berg > wrote: > >> On Tue, 2021-06-08 at 11:40 -0700, Stefan van der Walt wrote: >> > On Tue, Jun 8, 2021, at 03:23, Juan Nunez-Iglesias wrote: >> > > Hello! Any chance this could be recorded for those of us in useless >> > > time zones? ? >> > >> > I added a note to the agenda; we'll ask the speakers and record if >> > they don't mind. >> >> >> We have made a recording, but I did not plan on making it available >> publicly. Please contact me directly if you are interested. >> >> Cheers, >> >> Sebastian >> >> >> > St?fan >> > _______________________________________________ >> > NumPy-Discussion mailing list >> > NumPy-Discussion at python.org >> > https://mail.python.org/mailman/listinfo/numpy-discussion >> >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From alfonsoluis.castanom at um.es Tue Jun 15 09:59:06 2021 From: alfonsoluis.castanom at um.es (ALFONSO LUIS =?utf-8?b?Q0FTVEHDkU8=?= MARIN) Date: Tue, 15 Jun 2021 15:59:06 +0200 Subject: [Numpy-discussion] Tensor Typing presentation and discussion on Wednesday! (As part of the NumPy Community Meeting) In-Reply-To: References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> <3D0A76F0-1AB1-476E-82B2-E16C6C0CE0E7@fastmail.com> Message-ID: <20210615155906.Horde.-mmbd_Cfjf9ZcCqIEYs3KnG@webmail.um.es> Hi Matthew & Juan, Thank you for the kind words and for the feedback! I totally agree in what you are suggesting, so I will just provide a little of context on why it was presented that way. First of all, when talking about type arithmetic I suggest to refer to the latest presentation for the summit rather than from the Tensor Typing Meetings (https://docs.google.com/presentation/d/1NZzZfbUCXi78LDDe8C3hAaK9on8ZiX3Z2k4BlZXwsJ8/edit). Here I intentionally refer to the +,-,*,// syntax rather than the Add[] one. Moreover, I also write 1 + A rather than Literal[1] + A, assuming that we could write a PEP for enabling this behavior if needed, and as Matthew said, it seems feasible based on what was said in the summit. So yes, we totally agree that is important to make the syntax as simple as possible, especially because expressions can get quite complicated (e.g. convolutions). Nonetheless, I will also answer the question of "Why in the presentation of the Tensor Typing meeting you used the Prefix operators (Add) and did not support directly Subtract?" The answer is that the goal was to show what was tecnically possible to achieve with Type Arithmetic, and syntax does not matter in that regard. Since we knew that the syntax could change any point later on we just went for the prefix one after a quick 30 minutes discussion in Pyre. However, the implementation for doing A+B instead of Add[A,B] would have been the same complex, and can be changed with a few lines of code. About Subtract, it was once again, because we did not need a custom Subtract operator to show what type arithmetic can do. However, supporting it would have been a matter of a few lines in Pyre, I even had a PR ready but we decided to make as few changes as possible since it would not add any new functionality. After all, the idea was how to bring a big feature like Type Arithmetic with as few changes to the language as possible. Best, Alfonso. Quoting Matthew Rahtz : > Hi Juan ? > Thanks for the kind words! > ? > >> why isn?t there a Subtract operator? > > ? > I /think/?this is just because the implementation in Pyre is > still an early prototype. Alfonso? > ? > >> is there a prospect for using actual operators and actual literals here? > > ? > That's a really good question. We're optimistic that actual > literals should be possible - we assumed there was some subtle > reason we'd have to use Literal, but when we briefly talked about it > at PyCon, Guido was like "Nope, you should just write a PEP for > that". As for actual operators - I can't think of any > /technical/?reason this shouldn't be possible - when it comes time > to write a PEP for type arithmetic it's definitely something we > should propose. Alfonso, any thoughts? > ? > Best, > Matthew > > On Mon, 14 Jun 2021 at 03:51, Juan Nunez-Iglesias > wrote: > >> Thank you so much Matthew, Pradeep, and everyone else helping with >> this effort! ? >> And thanks Matthew for sharing the slides ? very informative! >> I?ve asked Sebastian for the recording but in the meantime I >> thought I?d ask a couple of questions about the syntax: >> ? >> * why isn?t there a Subtract operator? It seems that >> Subtract[A, B] is much more readable than Add[A, >> Multiply[Literal[-1], B]]? >> * is there a prospect for using actual operators and actual >> literals here? I think that a lot of reticence about Python typing >> comes from the annotations being so difficult to read. There?s been >> some great improvements recently with ?Optional[Tuple[Union[Float, >> Int]]]? becoming ?tuple[float | int] | None?, and I hope we can >> leapfrog the awkward phase with this tensor typing stuff. Again, A >> - B is much more readable again than Subtract[A, B]. And B-2 is >> much more readable than Add[B, Literal[-2]]. >> ? >> Other than that, love the work, thank you again! >> ? >> Juan. >> >> >>> On 11 Jun 2021, at 5:08 am, Matthew Rahtz wrote: >>> >>> Some links I promised to send around: >>> >>> * https://github.com/deepmind/tensor_annotations >>> which has a bunch of experimental shape-aware stubs for TensorFlow >>> and JAX using 'semantic' axis labels >>> * https://github.com/pradeep90/pytorch_examples >>> ditto for TensorFlow and PyTorch using value-based axis labels >>> * https://arxiv.org/pdf/2102.13254.pdf Similar work >>> in TensorFlow for Swift >>> * Slides[1]?for our presentation >>> * Tensor typing meeting details[2] >>> Thanks again, everyone! >>> >>> On Wed, 9 Jun 2021 at 22:28, Sebastian Berg >>> wrote: >>> >>>> On Tue, 2021-06-08 at 11:40 -0700, Stefan van der Walt wrote: >>>>> On Tue, Jun 8, 2021, at 03:23, Juan Nunez-Iglesias wrote: >>>>> > Hello! Any chance this could be recorded for those of us in useless >>>>> > time zones? ? >>>>> >>>>> I added a note to the agenda; we'll ask the speakers and record if >>>>> they don't mind. >>>> >>>> We have made a recording, but I did not plan on making it available >>>> publicly.? Please contact me directly if you are interested. >>>> >>>> Cheers, >>>> >>>> Sebastian >>>> >>>>> St?fan >>>>> _______________________________________________ >>>>> NumPy-Discussion mailing list >>>>> NumPy-Discussion at python.org >>>>> https://mail.python.org/mailman/listinfo/numpy-discussion >>>> >>>> _______________________________________________ >>>> NumPy-Discussion mailing list >>>> NumPy-Discussion at python.org >>>> https://mail.python.org/mailman/listinfo/numpy-discussion >>> >>> _______________________________________________ >>> NumPy-Discussion mailing list >>> NumPy-Discussion at python.org >>> https://mail.python.org/mailman/listinfo/numpy-discussion >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion Links: ------ [1] https://docs.google.com/presentation/d/1kLS-bz1ZmJIFizZExkm8N9jqAj2oOJzTmUaL8INGefc/edit?usp=sharing&resourcekey=0-eFDyGvcEeeHzF62x6Cwl6Q [2] https://docs.google.com/document/d/1oaG0V2ZE5BRDjd9N-Tr1N0IKGwZQcraIlZ0N8ayqVg8/edit -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Tue Jun 15 13:47:22 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Tue, 15 Jun 2021 10:47:22 -0700 Subject: [Numpy-discussion] =?utf-8?q?Tensor_Typing_presentation_and_disc?= =?utf-8?q?ussion_on_Wednesday!_=28As_part_of_the_NumPy_Community_Meeting?= =?utf-8?q?=29?= In-Reply-To: <20210615155906.Horde.-mmbd_Cfjf9ZcCqIEYs3KnG@webmail.um.es> References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> <3D0A76F0-1AB1-476E-82B2-E16C6C0CE0E7@fastmail.com> <20210615155906.Horde.-mmbd_Cfjf9ZcCqIEYs3KnG@webmail.um.es> Message-ID: Hi Alfonso, Matthew, On Tue, Jun 15, 2021, at 06:59, ALFONSO LUIS CASTA?O MARIN wrote: > First of all, when talking about type arithmetic I suggest to refer to the latest presentation for the summit rather than from the Tensor Typing Meetings (https://docs.google.com/presentation/d/1NZzZfbUCXi78LDDe8C3hAaK9on8ZiX3Z2k4BlZXwsJ8/edit). Here I intentionally refer to the +,-,*,// syntax rather than the Add[] one. Moreover, I also write 1 + A rather than Literal[1] + A, assuming that we could write a PEP for enabling this behavior if needed, and as Matthew said, it seems feasible based on what was said in the summit. This PEP sounds like it is of some interest to many of us. Would it make sense to start a repository with an initial document that we can iterate on, or how do you typically develop these? St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Tue Jun 15 14:15:57 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Tue, 15 Jun 2021 11:15:57 -0700 Subject: [Numpy-discussion] =?utf-8?q?Tensor_Typing_presentation_and_disc?= =?utf-8?q?ussion_on_Wednesday!_=28As_part_of_the_NumPy_Community_Meeting?= =?utf-8?q?=29?= In-Reply-To: <20210615201249.Horde.7FbIKlOZHlESvhNdsbBJcks@webmail.um.es> References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> <3D0A76F0-1AB1-476E-82B2-E16C6C0CE0E7@fastmail.com> <20210615155906.Horde.-mmbd_Cfjf9ZcCqIEYs3KnG@webmail.um.es> <20210615201249.Horde.7FbIKlOZHlESvhNdsbBJcks@webmail.um.es> Message-ID: <8a52669d-4c6c-44c7-9457-c2632eb1b8af@www.fastmail.com> On Tue, Jun 15, 2021, at 11:12, ALFONSO LUIS CASTA?O MARIN wrote: > To what potential PEP are you referring exactly? Type arithmetic or automatically interpret `1` as `Literal[1]` wherever it makes sense? I guess both, but particularly the first (using standard operators in type definitions). The first seems pretty unwieldy without the second, though. > Indeed to have a common repository with an initial document would be a good way to go. So far we did not start anything because the PEP on Variadics was still waiting for appoval. However, we also wanted to make sure that Numpy folks believe that this approach towards type arithmetic makes sense for their use cases. > Maybe we could sync on this on the next Numpy Development meeting? We have a "triage" meeting this coming Wednesday at 11am Pacific, which would be a good venue for discussing these details. Best regards, St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From alfonsoluis.castanom at um.es Tue Jun 15 14:12:49 2021 From: alfonsoluis.castanom at um.es (ALFONSO LUIS =?utf-8?b?Q0FTVEHDkU8=?= MARIN) Date: Tue, 15 Jun 2021 20:12:49 +0200 Subject: [Numpy-discussion] Tensor Typing presentation and discussion on Wednesday! (As part of the NumPy Community Meeting) In-Reply-To: References: <1aa0a4ef5cae6a9605614c5d4cffe1e940e51077.camel@sipsolutions.net> <3ce3298e-6820-4bba-acae-ad5578d57e14@www.fastmail.com> <32cecd66eb8ebaab34cb6d93d2914055da049b50.camel@sipsolutions.net> <3D0A76F0-1AB1-476E-82B2-E16C6C0CE0E7@fastmail.com> <20210615155906.Horde.-mmbd_Cfjf9ZcCqIEYs3KnG@webmail.um.es> Message-ID: <20210615201249.Horde.7FbIKlOZHlESvhNdsbBJcks@webmail.um.es> Hi St?fan, To what potential PEP are you referring exactly? Type arithmetic or automatically interpret `1` as `Literal[1]` wherever it makes sense? Indeed to have a common repository with an initial document would be a good way to go. So far we did not start anything because the PEP on Variadics was still waiting for appoval. However, we also wanted to make sure that Numpy folks believe that this approach towards type arithmetic makes sense for their use cases. Maybe we could sync on this on the next Numpy Development meeting? Best, Alfonso. Quoting Stefan van der Walt : > Hi Alfonso, Matthew, > ? > On Tue, Jun 15, 2021, at 06:59, ALFONSO LUIS CASTA?O MARIN wrote: > >> ?First of all, when talking about type arithmetic I suggest to >> refer to the latest presentation for the summit rather than from >> the Tensor Typing Meetings >> (https://docs.google.com/presentation/d/1NZzZfbUCXi78LDDe8C3hAaK9on8ZiX3Z2k4BlZXwsJ8/edit). Here I intentionally refer to the +,-,*,// syntax rather than the Add[] one. Moreover, I also write 1 + A rather than Literal[1] + A, assuming that we could write a PEP for enabling this behavior if needed, and as Matthew said, it seems feasible based on what was said in the >> summit. > > ? > This PEP sounds like it is of some interest to many of us.? Would > it make sense to start a repository with an initial document that we > can iterate on, or how do you typically develop these? > ? > St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Wed Jun 16 09:48:45 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Wed, 16 Jun 2021 08:48:45 -0500 Subject: [Numpy-discussion] NumPy Development Meeting Wednesday - Triage Focus (Soon today!) Message-ID: Hi all, Our bi-weekly triage-focused NumPy development meeting is Wednesday, June 16nd at 11 am Pacific Time (18:00 UTC). Everyone is invited to join in and edit the work-in-progress meeting topics and notes: https://hackmd.io/68i_JvOYQfy9ERiHgXMPvg I encourage everyone to notify us of issues or PRs that you feel should be prioritized, discussed, or reviewed. Best regards Sebastian PS: I am considering moving the meeting to slightly earlier if everyone agrees. From sebastian at sipsolutions.net Wed Jun 16 16:00:49 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Wed, 16 Jun 2021 15:00:49 -0500 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? Message-ID: Hi all, (sorry for the length, details/discussion below) On the triage call, there seemed a preference to just try to skip the deprecation and introduce `copy="never"`, `copy="if_needed"`, and `copy="always"` (i.e. string options for the `copy` keyword argument). Strictly speaking, this is against the typical policy (one year of warning/errors). But nobody could think of a reasonable chance that anyone actually uses it. (For me just "policy" will be enough of an argument to just take it slow.) BUT: If nobody has *any* concerns at all, I think we may just end up introducing the change right away. The PR is: https://github.com/numpy/numpy/pull/19173 ## The Feature There is the idea to add `copy=never` (or similar). This would modify the existing `copy` argument to make it a 3-way decision: * `copy=always` or `copy=True` to force a copy * `copy=if_needed` or `copy=False` to prefer no-copy behavior * `copy=never` to error when no-copy behavior is not possible (this ensures that a view is returned) this would affect the functions: * np.array(object, copy=...) * arr.astype(new_dtype, copy=...) * np.reshape(arr, new_shape, copy=...), and the method arr.reshape() * np.meshgrid and possibly Where `reshape` currently does not have the option and would benefit by allowing for `arr.reshape(-1, copy=never)`, which would guarantee a view. ## The Options We have three options that are currently being discussed: 1. We introduce a new `np.CopyMode` or `np..Copy` Enum with values `np.CopyMode.NEVER`, `np.CopyMode.IF_NEEDED`, and `np.CopyMode.ALWAYS` * Plus: No compatibility concerns * Downside(?): This would be a first in NumPy, and is untypical API due to that. 2. We introduce `copy="never"`, `copy="if_needed"` and `copy="always"` as strings (all other strings will be a `TypeError`): * Problem: `copy="never"` currently means `copy=True` (the opposite) Which means new code has to take care when it may run on older NumPy versions. And in theory could make old code return the wrong thing. * Plus: Strings are the typical for options in NumPy currently. 3. Same as 2. But we take it very slow: Make strings an error right now and only introduce the new options after two releases as per typical deprecation policy. ## Discussion We discussed it briefly today in the triage call and we were leaning towards strings. I was honestly expecting to converge to option 3 to avoid compatibility issues (mainly surprises with `copy="never"` on older versions). But considering how weird it is to currently pass `copy="never"`, the question was whether we should not change it with a release note. The probability of someone currently passing exactly one of those three (and no other) strings seems exceedingly small. Personally, I don't have a much of an opinion. But if *nobody* voices any concern about just changing the meaning of the string inputs, I think the current default may be to just do it. Cheers, Sebastian From melissawm at gmail.com Wed Jun 16 17:35:58 2021 From: melissawm at gmail.com (=?UTF-8?Q?Melissa_Mendon=C3=A7a?=) Date: Wed, 16 Jun 2021 18:35:58 -0300 Subject: [Numpy-discussion] Newcomer's Meeting tomorrow at 4pm UTC! In-Reply-To: References: Message-ID: Hi all! Our Newcomer's Meeting tomorrow, * June 17, will take place at 4pm UTC (instead of the usual 8pm UTC).* This new time is meant to be more inclusive to contributors in different time zones. I think it would be nice to experiment with alternating times for this meeting, so I'll update the calendar and will keep sending reminders to the mailing list. This is an informal meeting with no agenda to ask questions, get to know other people and (hopefully) figure out ways to contribute to NumPy. Feel free to join if you are lurking around but found it hard to start contributing - we'll do our best to support you. If you wish to join on Zoom, use this link: https://zoom.us/j/6345425936 Hope to see you around! ** You can click this link to get the correct time at your timezone: https://www.timeanddate.com/worldclock/fixedtime.html?msg=NumPy+Newcomer%27s+Meeting&iso=20210617T16&p1=1440&ah=1 *** You can add the NumPy community calendar to your google calendar by clicking this link: https://calendar.google.com/calendar /r?cid=YmVya2VsZXkuZWR1X2lla2dwaWdtMjMyamJobGRzZmIyYzJqODFjQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20 - Melissa -------------- next part -------------- An HTML attachment was scrubbed... URL: From shoyer at gmail.com Wed Jun 16 17:59:40 2021 From: shoyer at gmail.com (Stephan Hoyer) Date: Wed, 16 Jun 2021 14:59:40 -0700 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: Message-ID: On Wed, Jun 16, 2021 at 1:01 PM Sebastian Berg wrote: > 2. We introduce `copy="never"`, `copy="if_needed"` and `copy="always"` > as strings (all other strings will be a `TypeError`): > > * Problem: `copy="never"` currently means `copy=True` (the opposite) > Which means new code has to take care when it may run on > older NumPy versions. And in theory could make old code > return the wrong thing. > To me, this seems like a big problem. People try to use newer NumPy features on old versions of NumPy all the time. This works out OK if they get error messages, but we shouldn't add new features that silently do something else on old versions -- especially for recent old versions. In particular, both copy='if_needed' and copy='never' would mean copy='always' on old versions of NumPy. This seems bad -- basically the exact opposite of what the user explicitly requested. These sort of bugs can be quite challenging to track down. So in my opinion (1) and (3) are the only real options. > 3. Same as 2. But we take it very slow: Make strings an error right now > and only introduce the new options after two releases as per typical > deprecation policy. > > > ## Discussion > > We discussed it briefly today in the triage call and we were leaning > towards strings. > > I was honestly expecting to converge to option 3 to avoid compatibility > issues (mainly surprises with `copy="never"` on older versions). > But considering how weird it is to currently pass `copy="never"`, the > question was whether we should not change it with a release note. > > The probability of someone currently passing exactly one of those three > (and no other) strings seems exceedingly small. > > Personally, I don't have a much of an opinion. But if *nobody* voices > any concern about just changing the meaning of the string inputs, I > think the current default may be to just do it. > > Cheers, > > Sebastian > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From wieser.eric+numpy at gmail.com Wed Jun 16 18:10:54 2021 From: wieser.eric+numpy at gmail.com (Eric Wieser) Date: Wed, 16 Jun 2021 23:10:54 +0100 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: Message-ID: I agree with Stephan, but even 3 seems dangerous to me. Any code that wraps a numpy function and accepts a `copy` parameter (especially `__array_function__`) is likely to contain `if copy` somewhere, which would result in entirely (but likely silently) the wrong behavior for `copy="never"`. An important reason for the original `np.never_copy` suggestion the first time this was discussed is that it can overload `__bool__` to raise or return `False` and warn, which would make silent bad behavior visible one way or another. I think a short NEP might be in order here, just so we can make sure we've addressed everything that came up the previous time this was discussed. Eric. On Wed, Jun 16, 2021, 23:00 Stephan Hoyer wrote: > On Wed, Jun 16, 2021 at 1:01 PM Sebastian Berg > wrote: > >> 2. We introduce `copy="never"`, `copy="if_needed"` and `copy="always"` >> as strings (all other strings will be a `TypeError`): >> >> * Problem: `copy="never"` currently means `copy=True` (the opposite) >> Which means new code has to take care when it may run on >> older NumPy versions. And in theory could make old code >> return the wrong thing. >> > > To me, this seems like a big problem. > > People try to use newer NumPy features on old versions of NumPy all the > time. This works out OK if they get error messages, but we shouldn't add > new features that silently do something else on old versions -- especially > for recent old versions. > > In particular, both copy='if_needed' and copy='never' would mean > copy='always' on old versions of NumPy. This seems bad -- basically the > exact opposite of what the user explicitly requested. These sort of bugs > can be quite challenging to track down. > > So in my opinion (1) and (3) are the only real options. > > >> 3. Same as 2. But we take it very slow: Make strings an error right now >> and only introduce the new options after two releases as per typical >> deprecation policy. >> >> >> ## Discussion >> >> We discussed it briefly today in the triage call and we were leaning >> towards strings. >> >> I was honestly expecting to converge to option 3 to avoid compatibility >> issues (mainly surprises with `copy="never"` on older versions). >> But considering how weird it is to currently pass `copy="never"`, the >> question was whether we should not change it with a release note. >> >> The probability of someone currently passing exactly one of those three >> (and no other) strings seems exceedingly small. >> >> Personally, I don't have a much of an opinion. But if *nobody* voices >> any concern about just changing the meaning of the string inputs, I >> think the current default may be to just do it. >> >> Cheers, >> >> Sebastian >> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matti.picus at gmail.com Thu Jun 17 16:29:30 2021 From: matti.picus at gmail.com (Matti Picus) Date: Thu, 17 Jun 2021 23:29:30 +0300 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: Message-ID: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> On 16/6/21 11:00 pm, Sebastian Berg wrote: > Hi all, > > (sorry for the length, details/discussion below) > > On the triage call, there seemed a preference to just try to skip the > deprecation and introduce `copy="never"`, `copy="if_needed"`, and > `copy="always"` (i.e. string options for the `copy` keyword argument). > Why this may be controversial: today someone could be calling |'||np.array(..., copy="never")', which would call| '|bool("never")', which would evaluate to 1, and would end up| doing the exact opposite of never. So their code is wrong, and they do not know it but are used to the error. If we change this, it would silently fix their code to do what they intended. Is that a correct reading of the problem? If so, I am in favor of the proposal to use string options in addition to boolean options. Matti From shoyer at gmail.com Thu Jun 17 19:23:45 2021 From: shoyer at gmail.com (Stephan Hoyer) Date: Thu, 17 Jun 2021 16:23:45 -0700 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> Message-ID: On Thu, Jun 17, 2021 at 1:29 PM Matti Picus wrote: > On 16/6/21 11:00 pm, Sebastian Berg wrote: > > > Hi all, > > > > (sorry for the length, details/discussion below) > > > > On the triage call, there seemed a preference to just try to skip the > > deprecation and introduce `copy="never"`, `copy="if_needed"`, and > > `copy="always"` (i.e. string options for the `copy` keyword argument). > > > > Why this may be controversial: today someone could be calling > |'||np.array(..., copy="never")', which would call| '|bool("never")', > which would evaluate to 1, and would end up| doing the exact opposite of > never. So their code is wrong, and they do not know it but are used to > the error. If we change this, it would silently fix their code to do > what they intended. > > > Is that a correct reading of the problem? > > If so, I am in favor of the proposal to use string options in addition > to boolean options. > No, we aren't really concerned about users who write np.array(..., copy='never') today. This currently means np.array(..., copy=True), which is slightly unfortunate but not really a big deal. The big concern is users who will write np.array(..., copy='never') in the future, when it becomes supported by NumPy, but their code gets run on an older version of NumPy, in which case it silently works in a different way. This happens all the time. Even if we make copy='never' an error *today*, users will be encountering existing versions of NumPy for years into the future, so we won't be able to change the behavior of copy='never' for a very long time. Our deprecation policy says we would need to wait at least one year for this, but frankly I'm not sure that's enough for the possibility of silent bugs. 3-4 years might be more realistic. Eric's concerns about existing uses of "if copy" inside NEP 18 overloads is another good point, though there may be relatively few users of this feature today given that np.array() is only recently overridable (via "like"). Overall, I think using an enum is the happiest situation. It's a slightly awkward API, to be sure, but not very awkward in the scheme of things, and it's better than needing to wait a long time for a final resolution. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matti.picus at gmail.com Fri Jun 18 03:01:15 2021 From: matti.picus at gmail.com (Matti Picus) Date: Fri, 18 Jun 2021 10:01:15 +0300 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> Message-ID: An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Fri Jun 18 10:50:49 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Fri, 18 Jun 2021 07:50:49 -0700 Subject: [Numpy-discussion] =?utf-8?q?copy=3D=22never=22_discussion_and_n?= =?utf-8?q?o_deprecation_cycle=3F?= In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> Message-ID: On Thu, Jun 17, 2021, at 16:23, Stephan Hoyer wrote: > This happens all the time. Even if we make copy='never' an error *today*, users will be encountering existing versions of NumPy for years into the future, so we won't be able to change the behavior of copy='never' for a very long time. Our deprecation policy says we would need to wait at least one year for this, but frankly I'm not sure that's enough for the possibility of silent bugs. 3-4 years might be more realistic. If we go the enum route, we may just as well deprecate string arguments at the same time so that we have the flexibility to introduce them again in the future. St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From melissawm at gmail.com Fri Jun 18 18:35:25 2021 From: melissawm at gmail.com (=?UTF-8?Q?Melissa_Mendon=C3=A7a?=) Date: Fri, 18 Jun 2021 19:35:25 -0300 Subject: [Numpy-discussion] Documentation Team meeting - Monday June 21 In-Reply-To: References: Message-ID: Hi all! Our next Documentation Team meeting will be on *Monday, June 21* at ***4PM UTC***. All are welcome - you don't need to already be a contributor to join. If you have questions or are curious about what we're doing, we'll be happy to meet you! If you wish to join on Zoom, use this link: https://zoom.us/j/96219574921?pwd=VTRNeGwwOUlrYVNYSENpVVBRRjlkZz09#success Here's the permanent hackmd document with the meeting notes (still being updated in the next few days!): https://hackmd.io/oB_boakvRqKR-_2jRV-Qjg Hope to see you around! ** You can click this link to get the correct time at your timezone: https://www.timeanddate.com/worldclock/fixedtime.html?msg=NumPy+Documentation+Team+Meeting&iso=20210621T16&p1=1440&ah=1 *** You can add the NumPy community calendar to your google calendar by clicking this link: https://calendar.google.com/calendar /r?cid=YmVya2VsZXkuZWR1X2lla2dwaWdtMjMyamJobGRzZmIyYzJqODFjQGdyb3VwLmNhbGVuZGFyLmdvb2dsZS5jb20 - Melissa -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Sat Jun 19 19:59:02 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Sat, 19 Jun 2021 16:59:02 -0700 Subject: [Numpy-discussion] =?utf-8?q?NEP_36-_fair_play_=28was=3A_request?= =?utf-8?q?_to_remove_the_numpy-aarch64_package_from_PyPI=29?= In-Reply-To: <851f5443-4fce-6af5-32be-ecc4c52dffce@gmail.com> References: <851f5443-4fce-6af5-32be-ecc4c52dffce@gmail.com> Message-ID: <16741c63-526a-40da-9e7c-5ff43e731b84@www.fastmail.com> On Tue, Jun 15, 2021, at 00:38, Matti Picus wrote: > Having just re-read the NEP, I think the Motivation section should > mention name re-use: "Additionally, we wish to reduce confusion when > package names imply they are sanctioned or maintained by NumPy". Other > than that it looks good to me. Do you want to make a PR to add the > discussion and change the status, and notify the list of your intention > to accept it? Thanks, Matti. I've made the change suggested and updated the status here: https://github.com/numpy/numpy/pull/19284 St?fan From matti.picus at gmail.com Sun Jun 20 01:49:55 2021 From: matti.picus at gmail.com (Matti Picus) Date: Sun, 20 Jun 2021 08:49:55 +0300 Subject: [Numpy-discussion] Acceptance of NEP 36 - fair play Message-ID: <10b68641-4547-5f17-d502-4c89a8889de7@gmail.com> Stefan has submitted a PR [0] to accept "NEP 36 -fair play" as accepted. It was discussed recently on the mailing list [1] and in the original PR [2] . If there is no opposition in a week (27 June) the PR will be merged. [0]https://github.com/numpy/numpy/pull/19284 [1] https://mail.python.org/pipermail/numpy-discussion/2021-June/081873.html [2] https://github.com/numpy/numpy/pull/14779 From tyler.je.reddy at gmail.com Sun Jun 20 15:44:45 2021 From: tyler.je.reddy at gmail.com (Tyler Reddy) Date: Sun, 20 Jun 2021 13:44:45 -0600 Subject: [Numpy-discussion] ANN: SciPy 1.7.0 Message-ID: Hi all, On behalf of the SciPy development team I'm pleased to announce the release of SciPy 1.7.0. Sources and binary wheels can be found at: https://pypi.org/project/scipy/ and at: https://github.com/scipy/scipy/releases/tag/v1.7.0 One of a few ways to install this release with pip: pip install scipy==1.7.0 ===================== SciPy 1.7.0 Release Notes ===================== SciPy 1.7.0 is the culmination of 6 months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Before upgrading, we recommend that users check that their own code does not use deprecated SciPy functionality (to do so, run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). Our development attention will now shift to bug-fix releases on the 1.7.x branch, and on adding new features on the master branch. This release requires Python 3.7+ and NumPy 1.16.5 or greater. For running on PyPy, PyPy3 6.0+ is required. **************************** Highlights of this release **************************** - A new submodule for quasi-Monte Carlo, `scipy.stats.qmc`, was added - The documentation design was updated to use the same PyData-Sphinx theme as NumPy and other ecosystem libraries. - We now vendor and leverage the Boost C++ library to enable numerous improvements for long-standing weaknesses in `scipy.stats` - `scipy.stats` has six new distributions, eight new (or overhauled) hypothesis tests, a new function for bootstrapping, a class that enables fast random variate sampling and percentile point function evaluation, and many other enhancements. - ``cdist`` and ``pdist`` distance calculations are faster for several metrics, especially weighted cases, thanks to a rewrite to a new C++ backend framework - A new class for radial basis function interpolation, `RBFInterpolator`, was added to address issues with the `Rbf` class. We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source Software for Science program for supporting many of the improvements to `scipy.stats`. *************** New features *************** `scipy.cluster` improvements ====================== An optional argument, ``seed``, has been added to ``kmeans`` and ``kmeans2`` to set the random generator and random state. `scipy.interpolate` improvements ========================= Improved input validation and error messages for ``fitpack.bispev`` and ``fitpack.parder`` for scenarios that previously caused substantial confusion for users. The class `RBFInterpolator` was added to supersede the `Rbf` class. The new class has usage that more closely follows other interpolator classes, corrects sign errors that caused unexpected smoothing behavior, includes polynomial terms in the interpolant (which are necessary for some RBF choices), and supports interpolation using only the k-nearest neighbors for memory efficiency. `scipy.linalg` improvements ===================== An LAPACK wrapper was added for access to the ``tgexc`` subroutine. `scipy.ndimage` improvements ======================= `scipy.ndimage.affine_transform` is now able to infer the ``output_shape`` from the ``out`` array. `scipy.optimize` improvements ======================= The optional parameter ``bounds`` was added to ``_minimize_neldermead`` to support bounds constraints for the Nelder-Mead solver. ``trustregion`` methods ``trust-krylov``, ``dogleg`` and ``trust-ncg`` can now estimate ``hess`` by finite difference using one of ``["2-point", "3-point", "cs"]``. ``halton`` was added as a ``sampling_method`` in `scipy.optimize.shgo`. ``sobol`` was fixed and is now using `scipy.stats.qmc.Sobol`. ``halton`` and ``sobol`` were added as ``init`` methods in `scipy.optimize.differential_evolution.` ``differential_evolution`` now accepts an ``x0`` parameter to provide an initial guess for the minimization. ``least_squares`` has a modest performance improvement when SciPy is built with Pythran transpiler enabled. When ``linprog`` is used with ``method`` ``'highs'``, ``'highs-ipm'``, or ``'highs-ds'``, the result object now reports the marginals (AKA shadow prices, dual values) and residuals associated with each constraint. `scipy.signal` improvements ===================== ``get_window`` supports ``general_cosine`` and ``general_hamming`` window functions. `scipy.signal.medfilt2d` now releases the GIL where appropriate to enable performance gains via multithreaded calculations. `scipy.sparse` improvements ====================== Addition of ``dia_matrix`` sparse matrices is now faster. `scipy.spatial` improvements ====================== ``distance.cdist`` and ``distance.pdist`` performance has greatly improved for certain weighted metrics. Namely: ``minkowski``, ``euclidean``, ``chebyshev``, ``canberra``, and ``cityblock``. Modest performance improvements for many of the unweighted ``cdist`` and ``pdist`` metrics noted above. The parameter ``seed`` was added to `scipy.spatial.vq.kmeans` and `scipy.spatial.vq.kmeans2`. The parameters ``axis`` and ``keepdims`` where added to `scipy.spatial.distance.jensenshannon`. The ``rotation`` methods ``from_rotvec`` and ``as_rotvec`` now accept a ``degrees`` argument to specify usage of degrees instead of radians. `scipy.special` improvements ====================== Wright's generalized Bessel function for positive arguments was added as `scipy.special.wright_bessel.` An implementation of the inverse of the Log CDF of the Normal Distribution is now available via `scipy.special.ndtri_exp`. `scipy.stats` improvements ==================== Hypothesis Tests ----------------------- The Mann-Whitney-Wilcoxon test, ``mannwhitneyu``, has been rewritten. It now supports n-dimensional input, an exact test method when there are no ties, and improved documentation. Please see "Other changes" for adjustments to default behavior. The new function `scipy.stats.binomtest` replaces `scipy.stats.binom_test`. The new function returns an object that calculates a confidence intervals of the proportion parameter. Also, performance was improved from O(n) to O(log(n)) by using binary search. The two-sample version of the Cramer-von Mises test is implemented in `scipy.stats.cramervonmises_2samp`. The Alexander-Govern test is implemented in the new function `scipy.stats.alexandergovern`. The new functions `scipy.stats.barnard_exact` and `scipy.stats. boschloo_exact` respectively perform Barnard's exact test and Boschloo's exact test for 2x2 contingency tables. The new function `scipy.stats.page_trend_test` performs Page's test for ordered alternatives. The new function `scipy.stats.somersd` performs Somers' D test for ordinal association between two variables. An option, ``permutations``, has been added in `scipy.stats.ttest_ind` to perform permutation t-tests. A ``trim`` option was also added to perform a trimmed (Yuen's) t-test. The ``alternative`` parameter was added to the ``skewtest``, ``kurtosistest``, ``ranksums``, ``mood``, ``ansari``, ``linregress``, and ``spearmanr`` functions to allow one-sided hypothesis testing. Sample statistics ----------------------- The new function `scipy.stats.differential_entropy` estimates the differential entropy of a continuous distribution from a sample. The ``boxcox`` and ``boxcox_normmax`` now allow the user to control the optimizer used to minimize the negative log-likelihood function. A new function `scipy.stats.contingency.relative_risk` calculates the relative risk, or risk ratio, of a 2x2 contingency table. The object returned has a method to compute the confidence interval of the relative risk. Performance improvements in the ``skew`` and ``kurtosis`` functions achieved by removal of repeated/redundant calculations. Substantial performance improvements in `scipy.stats.mstats.hdquantiles_sd`. The new function `scipy.stats.contingency.association` computes several measures of association for a contingency table: Pearsons contingency coefficient, Cramer's V, and Tschuprow's T. The parameter ``nan_policy`` was added to `scipy.stats.zmap` to provide options for handling the occurrence of ``nan`` in the input data. The parameter ``ddof`` was added to `scipy.stats.variation` and `scipy.stats.mstats.variation`. The parameter ``weights`` was added to `scipy.stats.gmean`. Statistical Distributions ------------------------------- We now vendor and leverage the Boost C++ library to address a number of previously reported issues in ``stats``. Notably, ``beta``, ``binom``, ``nbinom`` now have Boost backends, and it is straightforward to leverage the backend for additional functions. The skew Cauchy probability distribution has been implemented as `scipy.stats.skewcauchy`. The Zipfian probability distribution has been implemented as `scipy.stats.zipfian`. The new distributions ``nchypergeom_fisher`` and ``nchypergeom_wallenius`` implement the Fisher and Wallenius versions of the noncentral hypergeometric distribution, respectively. The generalized hyperbolic distribution was added in `scipy.stats.genhyperbolic`. The studentized range distribution was added in `scipy.stats.studentized_range`. `scipy.stats.argus` now has improved handling for small parameter values. Better argument handling/preparation has resulted in performance improvements for many distributions. The ``cosine`` distribution has added ufuncs for ``ppf``, ``cdf``, ``sf``, and ``isf`` methods including numerical precision improvements at the edges of the support of the distribution. An option to fit the distribution to data by the method of moments has been added to the ``fit`` method of the univariate continuous distributions. Other --------- `scipy.stats.bootstrap` has been added to allow estimation of the confidence interval and standard error of a statistic. The new function `scipy.stats.contingency.crosstab` computes a contingency table (i.e. a table of counts of unique entries) for the given data. `scipy.stats.NumericalInverseHermite` enables fast random variate sampling and percentile point function evaluation of an arbitrary univariate statistical distribution. New `scipy.stats.qmc` module ----------------------------------------- This new module provides Quasi-Monte Carlo (QMC) generators and associated helper functions. It provides a generic class `scipy.stats.qmc.QMCEngine` which defines a QMC engine/sampler. An engine is state aware: it can be continued, advanced and reset. 3 base samplers are available: - `scipy.stats.qmc.Sobol` the well known Sobol low discrepancy sequence. Several warnings have been added to guide the user into properly using this sampler. The sequence is scrambled by default. - `scipy.stats.qmc.Halton`: Halton low discrepancy sequence. The sequence is scrambled by default. - `scipy.stats.qmc.LatinHypercube`: plain LHS design. And 2 special samplers are available: - `scipy.stats.qmc.MultinomialQMC`: sampling from a multinomial distribution using any of the base `scipy.stats.qmc.QMCEngine`. - `scipy.stats.qmc.MultivariateNormalQMC`: sampling from a multivariate Normal using any of the base `scipy.stats.qmc.QMCEngine`. The module also provide the following helpers: - `scipy.stats.qmc.discrepancy`: assess the quality of a set of points in terms of space coverage. - `scipy.stats.qmc.update_discrepancy`: can be used in an optimization loop to construct a good set of points. - `scipy.stats.qmc.scale`: easily scale a set of points from (to) the unit interval to (from) a given range. *********************** Deprecated features *********************** `scipy.linalg` deprecations ==================== - `scipy.linalg.pinv2` is deprecated and its functionality is completely subsumed into `scipy.linalg.pinv` - Both ``rcond``, ``cond`` keywords of `scipy.linalg.pinv` and `scipy.linalg.pinvh` were not working and now are deprecated. They are now replaced with functioning ``atol`` and ``rtol`` keywords with clear usage. `scipy.spatial` deprecations ===================== - `scipy.spatial.distance` metrics expect 1d input vectors but will call ``np.squeeze`` on their inputs to accept any extra length-1 dimensions. That behaviour is now deprecated. ***************** Other changes ***************** We now accept and leverage performance improvements from the ahead-of-time Python-to-C++ transpiler, Pythran, which can be optionally disabled (via ``export SCIPY_USE_PYTHRAN=0``) but is enabled by default at build time. There are two changes to the default behavior of `scipy.stats.mannwhitenyu`: - For years, use of the default ``alternative=None`` was deprecated; explicit ``alternative`` specification was required. Use of the new default value of ``alternative``, "two-sided", is now permitted. - Previously, all p-values were based on an asymptotic approximation. Now, for small samples without ties, the p-values returned are exact by default. Support has been added for PEP 621 (project metadata in ``pyproject.toml``) We now support a Gitpod environment to reduce the barrier to entry for SciPy development; for more details see :ref:`quickstart-gitpod`. ********* Authors ********* * @endolith * Jelle Aalbers + * Adam + * Tania Allard + * Sven Baars + * Max Balandat + * baumgarc + * Christoph Baumgarten * Peter Bell * Lilian Besson * Robinson Besson + * Max Bolingbroke * Blair Bonnett + * Jord?o Bragantini * Harm Buisman + * Evgeni Burovski * Matthias Bussonnier * Dominic C * CJ Carey * Ram?n Casero + * Chachay + * charlotte12l + * Benjamin Curtice Corbett + * Falcon Dai + * Ian Dall + * Terry Davis * droussea2001 + * DWesl + * dwight200 + * Thomas J. Fan + * Joseph Fox-Rabinovitz * Max Frei + * Laura Gutierrez Funderburk + * gbonomib + * Matthias Geier + * Pradipta Ghosh + * Ralf Gommers * Evan H + * h-vetinari * Matt Haberland * Anselm Hahn + * Alex Henrie * Piet Hessenius + * Trever Hines + * Elisha Hollander + * Stephan Hoyer * Tom Hu + * Kei Ishikawa + * Julien Jerphanion * Robert Kern * Shashank KS + * Peter Mahler Larsen * Eric Larson * Cheng H. Lee + * Gregory R. Lee * Jean-Benoist Leger + * lgfunderburk + * liam-o-marsh + * Xingyu Liu + * Alex Loftus + * Christian Lorentzen + * Cong Ma * Marc + * MarkPundurs + * Markus L?ning + * Liam Marsh + * Nicholas McKibben * melissawm + * Jamie Morton * Andrew Nelson * Nikola Forr? * Tor Nordam + * Olivier Gauth? + * Rohit Pandey + * Avanindra Kumar Pandeya + * Tirth Patel * paugier + * Alex H. Wagner, PhD + * Jeff Plourde + * Ilhan Polat * pranavrajpal + * Vladyslav Rachek * Bharat Raghunathan * Recursing + * Tyler Reddy * Lucas Roberts * Gregor Robinson + * Pamphile Roy + * Atsushi Sakai * Benjamin Santos * Martin K. Scherer + * Thomas Schmelzer + * Daniel Scott + * Sebastian Wallk?tter + * serge-sans-paille + * Namami Shanker + * Masashi Shibata + * Alexandre de Siqueira + * Albert Steppi + * Adam J. Stewart + * Kai Striega * Diana Sukhoverkhova * S?ren Fuglede J?rgensen * Mike Taves * Dan Temkin + * Nicolas Tessore + * tsubota20 + * Robert Uhl * christos val + * Bas van Beek + * Ashutosh Varma + * Jose Vazquez + * Sebastiano Vigna * Aditya Vijaykumar * VNMabus * Arthur Volant + * Samuel Wallan * Stefan van der Walt * Warren Weckesser * Anreas Weh * Josh Wilson * Rory Yorke * Egor Zemlyanoy * Marc Zoeller + * zoj613 + * ?? + A total of 126 people contributed to this release. People with a "+" by their names contributed a patch for the first time. This list of names is automatically generated, and may not be fully complete. ************************** Issues closed for 1.7.0 ************************** * `#636 `__: Statistics Review: mannwhitneyu (Trac #109) * `#1346 `__: signal.medfilt2d should fall back on signal.medfilt for types... * `#2118 `__: Mann-Whitney statistic returns incorrect results (Trac #1593) * `#2158 `__: special.chndtrix (ncx2.ppf) gives wrong results (Trac #1633) * `#3284 `__: build_sphinx weirdness * `#3352 `__: beta distribution sf * `#4067 `__: Mannwhitneyu with arrays full of nan still reports significance * `#4080 `__: entropy in Scipy * `#4641 `__: mstats.mannwhitneyu and stats.mannwhitneyu return inconsistent... * `#5122 `__: scipy.stats.binom.ppf Incorrect for p=0 * `#5180 `__: Rbf interpolation - use only K nearest neighbors * `#5258 `__: affine_transform complains about output_shape when output array... * `#5562 `__: Wishart degrees of freedom should be $v > p-1$ instead of $v... * `#5933 `__: mstats_basic.py - mannwhitneyu [scipy/scipy/stats/mstats_basic.py] * `#6409 `__: _unequal_var_ttest_denom causes ZeroDivisionError in early samples * `#6682 `__: negative binomial survival function is imprecise * `#6897 `__: scipy.stats.mannwhitneyu of empty sets gives p=0.0 and does not... * `#7303 `__: stats.describe with nan_policy=omit returns matrix-wide minmax... * `#7406 `__: scipy.stats.binom.ppf returns nan for q between 0 and 1 if n... * `#7437 `__: ENH: add skewed Cauchy distribution to stats * `#7542 `__: DOC: stats tutorials: Questions on arcsine and Student t formulae * `#7593 `__: Meaning of \`tol\` argument in \`scipy.optimize.minimize\` is... * `#8565 `__: Error in SmoothSphereBivariateSpline(): "ValueError: Error code... * `#8665 `__: \`scipy.ncx2.sf\` should be monotone decreasing * `#8836 `__: scipy.optimize.linprog(method='simplex') needs to return duals * `#9184 `__: Mann-Whitney implementation wrong? * `#9450 `__: allow seeding of init methods in vq.kmeans2 * `#9704 `__: RectSphereBivariateSpline fails for negative longitude * `#9836 `__: scipy.stats.rice gives incorrect results when s is very low compared... * `#9904 `__: Request/Proposal: Greatly improve scipy.interpolate.Rbf * `#9981 `__: stats.kruskal : add a warning for an input with 2 or more columns * `#10358 `__: DOC: linprog and linear_sum_assignment tutorials needed * `#10908 `__: Nakami fitting doesn't converge (scipy.stats) * `#10933 `__: Add scaled inverse chi2 distribution * `#11014 `__: Barnard's Test for More Powerful Hypothesis Testing of 2x2 Contingency... * `#11050 `__: Feature request: Nelder-Mead with bounds * `#11086 `__: scipy.stats.skew doesn't work correctly for float point numbers * `#11113 `__: inconsistent result from ttest_ind and mannwhitneyu when used... * `#11134 `__: Wrong confidence interval for binomial distribution with p=0 * `#11325 `__: Add axis parameter for scipy.spatial.distance.jensenshannon * `#11474 `__: scipy.stats.skellam.cdf(0) returns 0 for large mu1 = mu2 * `#11523 `__: scipy.stats.zipf doesn't implement zipf distribution * `#11848 `__: How to get Lagrange / lambda multipliers out of 'linprog' optimize... * `#11909 `__: Enable bounds for lambda in boxcox * `#12118 `__: Docstring missing defaults * `#12132 `__: Slow tests to be trimmed or moved to test('full') * `#12230 `__: Dendrogram: enable leaves labelling with 'labels' when using... * `#12282 `__: scipy.stats.chisquare test does not check that observed and expected... * `#12298 `__: BUG: fmin_powell missing squeeze in 1.5.0rc * `#12403 `__: Add nan_policy to stats.zmap * `#12518 `__: Null hypothesis of Kolmogorov Smirnov test is not correctly described * `#12534 `__: Feature request: scipy.linalg.norm to deal with 0-size array * `#12622 `__: scipy.interpolate.interpn docstring example * `#12635 `__: scipy.stats.beta.ppf gives unexpexted results * `#12669 `__: Median-averaging of complex CSDs * `#12731 `__: stats.ncx2.cdf fails for nc >> x >> 1 * `#12778 `__: Confusing documentation of scipy.stats.weightedtau * `#12794 `__: [Bug] The result of stats.beta.isf is inconsistent with stats.beta.sf * `#12837 `__: stats.mannwhitneyu could support arrays * `#12868 `__: Vector-valued interpolation in \`interp2d\` * `#12922 `__: Minimize with trust-constr method leads to TypeError if option... * `#12929 `__: The use of starred expressions to create data detracts from understanding... * `#12965 `__: domain of argument of scipy.interpolate.RectSphereBivariateSpline(u,... * `#13025 `__: Generalized Hyperbolic Distribution * `#13090 `__: Broken link in doc for signal.max_len_seq * `#13101 `__: MAINT: Upgrade python version in docker file * `#13158 `__: \`signal.get_window()\` has a missing doc link and cannot get... * `#13173 `__: Uninformative error message from bisplev function * `#13234 `__: BUG: stats: Wrong shape of burr.moment() and fisk.moment() when... * `#13242 `__: Does kmeans "drop" clusters? * `#13243 `__: tgsen uses an output argument for computing a default argument * `#13245 `__: Kurtosis returning 1 for array of same elements * `#13257 `__: GitHub Actions test failures for MacOS * `#13272 `__: scipy.stats.yeojohnson_llf doc mistake * `#13280 `__: Wrong results with hypergeom cdf * `#13285 `__: description correction in scipy.stats.t * `#13287 `__: Generate binomial CDF with mu instead of prob * `#13294 `__: BUG: stats: wrong bounds returned by 'support' method for distributions... * `#13299 `__: Typing for scipy.spatial * `#13300 `__: Add a single individual to a latinhypercube initial population... * `#13311 `__: MAINT: pavement.py PYVER is outdated * `#13339 `__: savemat discards dimension information if any dimension is zero * `#13341 `__: add scipy.stats.variation with an ddof parameter * `#13353 `__: Documentation: in scipy.stats.johnsonsu, parameter \`a\` can... * `#13405 `__: TST: add a few tests for sparse BSR ctor * `#13410 `__: BUG: skew for empty array raises * `#13417 `__: 10,000 times speedup for generating random numbers from the cosine... * `#13440 `__: python runtest.py -t path-to-test.py failed * `#13454 `__: Scipy cosine distance can be greater than 2 * `#13459 `__: Broken link in cramervonmises documentation * `#13494 `__: One-word typo in the documentation of optimize.linprog_simplex * `#13501 `__: minimize using Powell methods with Bounds leads to "TypeError:... * `#13509 `__: signal.medfilt2d vs ndimage.median_filter * `#13511 `__: DOC: error in description of "direc" parameter of "fmin_powell" * `#13526 `__: TST: stats: intermittent \`test_ttest_ind_randperm_alternative2... * `#13536 `__: \`_within_tolerance\` seems an unnecessary repetition of \`numpy.isclose\` * `#13540 `__: missing python 3.8 manylinux wheels on scipy-wheels-nightly * `#13559 `__: shape error in linprog with revised simplex * `#13587 `__: binned_statistic unreliable with single precision * `#13589 `__: Better argument preparation for distributions in stats package. * `#13602 `__: The crystallball distribution entropy is sometimes minus infinity * `#13606 `__: MAINT: mypy: some typing errors while running mypy + adding mypy... * `#13608 `__: Why does stats.binned_statistic_2d convert its values argument... * `#13609 `__: BUG: SciPy pip install -e gets unusable version spec * `#13610 `__: Highs solver did not provide a solution nor did it report a failure * `#13614 `__: BUG: invgauss.cdf should return the correct value when \`mu\`... * `#13628 `__: 1-letter typo in the definition of scipy.special.spence function... * `#13634 `__: mmwrite fails on dense, skew-symmetric array * `#13646 `__: Sparse matrix argmax() integer overflow on Windows 10 * `#13647 `__: \`scipy.stats.qmc.LatinHypercube\` cannot sample single sample... * `#13651 `__: Documentation wrong in scipy.linalg.eigvalsh * `#13664 `__: BUG: gamma distribution's inverse survival function overflows... * `#13693 `__: BUG: sokalmichener appears to incorrectly apply weights * `#13697 `__: BUG: stats: Spurious warning generated by arcsine.pdf at the... * `#13704 `__: Make it possible to pass a rank cut-off value relatively to the... * `#13707 `__: Kullback Leibler Divergence broadcasting no longer works * `#13740 `__: Scipy.optimize x0 out of bounds when it is within bounds. * `#13744 `__: scipy.interpolate.interp1d has inconsistent behavior for non-unique... * `#13754 `__: optimize.minimize 'trust' methods and finite difference Hessian... * `#13762 `__: MAINT, TST: aarch64 stats test failures showing up in wheels... * `#13769 `__: probplot draws fit line even when fit=False * `#13791 `__: BUG: stats: wrapcauchy.cdf does not broadcast the shape parameter... * `#13793 `__: CI: CircleCI doc build failure * `#13840 `__: manylinux1 builds are failing because of C99 usage in \`special/_cosine.c\` * `#13850 `__: CI: Homebrew is failing due to bintray * `#13875 `__: BUG: chi2_contingency with Yates correction * `#13878 `__: BUG: \`signal.get_window\` argument handling issue * `#13880 `__: Remove all usages of numpy.compat * `#13896 `__: Boschloo's Test for More Powerful Hypothesis Testing of 2x2 Contingency... * `#13923 `__: Inverse of Log CDF of Normal Distribution * `#13933 `__: \`signal.get_window\` does not support \`general_cosine\` and... * `#13950 `__: DOC: scipy.spatial.KDTree.query * `#13969 `__: N=4 must not exceed M=3 * `#13970 `__: Pearson's original paper on chi-square test could be referenced. * `#13984 `__: Faster addition of sparse diagonal matrices * `#13988 `__: An error occurred when using scipy.io.wavfile of scipy 1.6 version... * `#13997 `__: BUG: sparse: Incorrect result from \`dia_matrix.diagonal()\` * `#14005 `__: MAINT: optimize: \`curve_fit\` input error msg can be improved. * `#14038 `__: MAINT: add type annotations for _sobol.pyx * `#14048 `__: DOC: missing git submodule information * `#14055 `__: linalg.solve: Unclear error when using assume_a='her' with real... * `#14093 `__: DOC: Inconsistency in the definition of default values in the... * `#14158 `__: TST, BUG: test_rbfinterp.py -- test_interpolation_misfit_1d fails... * `#14170 `__: TST: signal submodule test_filtfilt_gust failing on 32-bit amd64... * `#14194 `__: MAINT: download-wheels.py missing import * `#14199 `__: Generated sources for biasedurn extension are broken in 1.7.0rc1 ************************** Pull requests for 1.7.0 ************************** * `#4824 `__: Permutation Ttest (new PR) * `#4933 `__: ENH: Update the Mann-Whitney-Wilcoxon test * `#7702 `__: ENH: stats: Add Skewed Cauchy Distribution * `#8306 `__: Optional Pythran support for scipy.signal.max_len_seq_inner * `#10170 `__: MAINT: stats: Implement cdf and ppf as ufuncs for the cosine... * `#10454 `__: ENH: Extend find_peaks_cwt to take numbers and iterables for... * `#10844 `__: ENH: add stats.qmc module with quasi Monte Carlo functionality * `#11313 `__: ENH: add Wright's generalized Bessel function * `#11352 `__: ENH: stats: Add crosstab function. * `#11477 `__: FIX: bounded parameter in cdfchn.f gives bad results * `#11695 `__: ENH: stats: add method of moments to \`rv_continuous.fit\` * `#11911 `__: ENH: Added bounds to boxcox and boxcox_normmax * `#12438 `__: BUG: use ellipkm1 in elliptical filter design to prevent numerical... * `#12531 `__: ENH: stats: add Page's L test * `#12603 `__: ENH: stats: Add \`binomtest\` to replace \`binom_test\`. * `#12653 `__: ENH: stats: add Somers' D test * `#12676 `__: BUG: update median averaging in signal.csd * `#12760 `__: BUG: special: erfinv(x<<1) loses precision * `#12801 `__: ENH: Add single-sided p-values to remaining spearmanr and linregress * `#12873 `__: ENH: Stats: add Alexander Govern Test * `#13008 `__: ENH: Add 'alternative' to functions using normal CDF for p-value * `#13040 `__: BUG: Allow RectSphereBivariateSpline to accept negative longitude * `#13048 `__: ENH: stats: Add a function that computes the relative risk. * `#13067 `__: ENH: Add weights parameter to stats.gmean * `#13084 `__: ENH: fast Hankel transform * `#13104 `__: MAINT: upgrade python version (drop python 3.6) for docker dev... * `#13153 `__: ENH: added association measurements Pearsons Contingency Coefficient,... * `#13166 `__: ENH: stats: Add nan_policy to zmap. * `#13175 `__: MAINT: tests for tall cost matrices in \`linear_sum_assignment\` * `#13177 `__: BUG: raise NotImplementedError in fourier_ellipsoid when ndim... * `#13184 `__: BUG: stats: Fix min and max calculation of mstats.describe with... * `#13188 `__: DOC: stats: make null and alternative hypotheses of kstest more... * `#13193 `__: MAINT: stats: chisquare check sum of observed/expected frequencies * `#13197 `__: ENH/MAINT: HiGHS upstream enhancements and bug fixes * `#13198 `__: ENH: allow inference of output_shape from out array in affine_transform * `#13204 `__: ENH: stats: add Zipfian (different from Zipf/zeta) distribution * `#13208 `__: REL: set version to 1.7.0.dev0 * `#13216 `__: TST: stats: break up and mark slow tests * `#13224 `__: Update docs for the weighted ? * `#13230 `__: ENH: linalg: Add LAPACK wrapper for tgexc. * `#13232 `__: MAINT: stats: raise error when input to kruskal has >1 dim * `#13233 `__: DOC: stats: fix MGF of arcsine and entropy of t in tutorial * `#13236 `__: MAINT: reorganize shared linear assignment tests * `#13237 `__: BENCH: Refactor stats.Distribution to easily add new distributions * `#13238 `__: BUG: stats: fix wrong shape output of burr and fisk distributions * `#13240 `__: MAINT: add tests of trivial cost matrices for linear sum assignment * `#13252 `__: DOC: optimize: add \`optimize.linear_sum_assignment\` tutorial. * `#13254 `__: BUG: Fix precision issues for constant input in skew and kurtosis * `#13262 `__: BUG: scipy.medfilt and .medfilt2d fixes * `#13263 `__: ENH: add Cramer-von Mises test for two samples * `#13264 `__: fix a minor typo in \`stats.anderson\` doc * `#13268 `__: ENH: stats: Add implementation of _entropy for the t distr. * `#13273 `__: DOC: stats: fix typo in Yeo-Johnson LL function documentation * `#13275 `__: MAINT: stats: Correct a comment in the _fitstart method of gamma. * `#13283 `__: BUG: stats: fix the cdf method of rv_discrete class * `#13286 `__: DOC: stats: clairify rv_continuous/discrete.stats example * `#13288 `__: DOC: stats: discrete distribution shape parameter restrictions * `#13289 `__: MAINT: fix a build warning in sigtoolsmodule.c * `#13290 `__: DOC: Expand the discussion of the nan_policy API. * `#13291 `__: MAINT: signal, stats: Use keepdims where appropriate. * `#13292 `__: DOC: stats: note another common parameterization of nbinom * `#13293 `__: DOC: Change broken link for default values to archived link * `#13295 `__: BUG: stats: fix the support method to return correct bounds * `#13296 `__: DOC: stats: Fix latex markup in the kstwo docstring. * `#13297 `__: TST: mark kde.logpdf overflow test as xslow * `#13298 `__: Generalized Hyperbolic Distribution * `#13301 `__: DOC: cluster: Add cluster number note to the docstring of cluster.vq.kmeans * `#13302 `__: BUG: Fix ndimage.morphology.distance_transform\_\* argument handling * `#13303 `__: CI: prevent Codecov giving false CI failures and wrong PR annotations * `#13313 `__: ENH: static typing for qhull * `#13316 `__: Pythran implementation of scipy.signal._spectral * `#13317 `__: DOC: forward port 1.6.0 relnotes * `#13319 `__: ENH: stats: add fast numerical inversion of distribution CDF * `#13320 `__: ENH: x0 for differential_evolution * `#13324 `__: DOC correct linprog highs versionadded to 1.6 * `#13326 `__: MAINT: update numpydoc to v1.1.0 * `#13327 `__: DOC: interpolate: improved docstring examples of \`interpolate.interpn()\`... * `#13328 `__: ENH: Boost stats distributions * `#13330 `__: ENH: stats: add noncentral hypergeometric distributions (Fisher's... * `#13331 `__: MAINT/ENH: resolve mypy warnings/errors * `#13332 `__: DOC: interpolate: improved docstring of \`interpolate.interp2d\`... * `#13333 `__: ENH: stats: Some more _sf and _isf implementations. * `#13334 `__: MAINT: stats: Clean up a few defunct comments in _continuous_distns.py * `#13336 `__: Pythran version of scipy.optimize._group_columns * `#13337 `__: DOC|ENH: type hinting in scipy.integrate.simpson * `#13346 `__: ENH: stats: add 'ddof' parameter to the 'variation' function * `#13355 `__: ENH: stats: implement _logpdf, _sf and _isf for loggamma. * `#13360 `__: ENH|DOC: fix docstring and input validation in interpolate.RectSphereBivariateSpline * `#13366 `__: BUG: stats: Don't raise ZeroDivisionError in _unequal_var_ttest_denom * `#13370 `__: ENH: fix ARGUS distribution for small parameters in stats * `#13371 `__: ENH: stats: add \`bootstrap\` for estimating confidence interval... * `#13373 `__: BUG: io/matlab: preserve dimensions of empty >=2D arrays * `#13374 `__: ENH: stats: add skewed Cauchy distribution * `#13379 `__: BUG: sparse: fix verbosity in sparse lsqr * `#13383 `__: TST: stats: mark many dimension permutation t-test slow * `#13384 `__: MAINT: Make keywords array static * `#13388 `__: PERF: Avoid duplicate mean calculations in skew and kurtosis * `#13389 `__: DOC: Fix deprecated directive syntax * `#13390 `__: DOC: Correct line length for Parameter Section underline * `#13393 `__: MAINT: stats: allow wishart dim - 1 < df < dim * `#13395 `__: DOC: fix typo in setup.py warning message * `#13396 `__: BUG: Fix MLE for Nakagami \`nakagami_gen.fit\` * `#13397 `__: MAINT:linalg: Fix tgsen family wrapper and ordqz * `#13406 `__: TST: add error handling tests for sparse BSR ctor * `#13413 `__: DOC: ultra-quickstart guide * `#13418 `__: BUG: Fix moment returning inconsistent types and shapes * `#13423 `__: DOC: Update example for leaf_label_func/dendrogram * `#13431 `__: ENH: stats: override _rvs for nhypergeom * `#13432 `__: Add indicator in NDInterpolator docstring that N must be > 1 * `#13434 `__: DOC: stats: note relationship between scaled-inv-chi2 and invgamma * `#13436 `__: ENH: interpolate: add input validation to check input x-y is... * `#13441 `__: ENH: add functionality \`barnard_exact\` test to scipy.stats. * `#13443 `__: MAINT: stats: Updates for skewcauchy * `#13444 `__: DOC: clarify range of \`a\` parameter fpr johnsonsu/johnsonsb * `#13445 `__: DOC: fix runtests guidelines. * `#13446 `__: MAINT: stats: Add _fitstart method to wrapcauchy. * `#13447 `__: DEV: Update development Docker image * `#13448 `__: ENH: Add annotations for \`scipy.spatial.distance\` * `#13451 `__: DOC: minor formatting. * `#13458 `__: DOC: indent see also. * `#13460 `__: DOC: stats: Fix link to Cramer-von Mises wikipedia article. * `#13461 `__: DOC: reorganize scipy.stats overview docs page * `#13463 `__: DOC: misc formatting fixes * `#13466 `__: DOC: Typo in see also s/SmoothUni/SmoothBi/g * `#13467 `__: DOC: optimize: add description about \`tol\` argument for \`minimize\`. * `#13469 `__: MAINT: Refactor optimization methods to use scipy.stats.qmc * `#13477 `__: CI: pin numpy to 1.19.5 for the three macOS CI jobs * `#13478 `__: DOC: fix typos where double :: for Sphinx directives were missing * `#13481 `__: CI: pin numpy to 1.19.5 in the 4 parallel Windows builds on Azure * `#13482 `__: CI: use numpy 1.20.0 again in macOS CI * `#13483 `__: DOC: Multiple documentation syntax fixes. * `#13484 `__: Move some pythran config from CI to setup * `#13487 `__: DOC: add a tutorial about scipy.stats.qmc * `#13492 `__: ENH: GH actions should not run on forks * `#13493 `__: DEV: Enable gitpod for SciPy * `#13495 `__: DOC One-word typo in the documentation of optimize.linprog_simplex * `#13499 `__: DOC: describe LSAP implementation * `#13502 `__: BUG: Bounds created with lists weren't working for Powell * `#13507 `__: MAINT, TST: stats: centralize invalid parameters list for all... * `#13510 `__: DOC: stats: fix small doc errors in 'multivariate_hypergeom' * `#13513 `__: DOC: Added math notation in examples in ltisys.py * `#13514 `__: ENH: simplify low_0_bit function for Sobol * `#13515 `__: ENH: optimize: add bound constraint support for nelder-mead solver * `#13516 `__: DOC: reduce LaTeX usage for johnsonb docstring * `#13519 `__: BLD: remove build_sphinx support from setup.py * `#13527 `__: TST: stats: xfail ttest_ind_randperm_alternative2 on 32 bit * `#13530 `__: DOC: correct comparisons between median filter functions * `#13532 `__: ENH: release the GIL inside medfilt2d * `#13538 `__: DOC: optimize: fix minor doc error in 'fmin_powell' (#13511) * `#13546 `__: DOC: fix list of "mode" options for ndimage * `#13549 `__: ENH: stats: add 'alternative' keyword to some normality tests. * `#13551 `__: MAINT: add git to docker env * `#13552 `__: MAINT: stats: remove float_power shim * `#13553 `__: DOC: use support rather than a/b in stats tutorial * `#13560 `__: MAINT: optimize: improve linprog error message for sparse input... * `#13562 `__: MAINT: optimize: using np.isclose instead of _within_tolerance. * `#13566 `__: ENH: Speed up hdquantiles_sd() * `#13569 `__: BENCH: optimize: benchmark only HiGHS methods; add bigger linprog... * `#13574 `__: DOC: In description of cluster.hierarchy.dendrogram 'level' parameter,... * `#13576 `__: ENH: improve discrepancy performance * `#13579 `__: TST: Add pybind11 to tox environments * `#13583 `__: BUG: Fix Dockerfile apt-get installs * `#13588 `__: MAINT: forward port 1.6.1 relnotes. * `#13593 `__: BUG: stats: preserve sample dtype for bin edges * `#13595 `__: ENH: interpolate: add RBFInterpolator * `#13596 `__: DOC: Fix indentation in new_stats_distribution.rst.inc * `#13601 `__: Add dpss for get_window function * `#13604 `__: DOC: Correct dual annealing visiting param range. * `#13605 `__: Add Codecov badge to README * `#13607 `__: MAINT: stats: fix crystalball entropy * `#13611 `__: Better argument preparation for distributions in stats package. * `#13612 `__: Add docker run command for Windows cmd * `#13613 `__: MAINT, CI: mypy: fix typing errors + add mypy to CI * `#13616 `__: FIX: Return correct output for invgauss.cdf when mu is very small * `#13617 `__: MAINT: accept numbers and iterables for width in find_peaks_cwt * `#13620 `__: CI: disable the mypy CI job (partial revert of gh-13613) * `#13621 `__: DOC: signal: use array_like for input types * `#13622 `__: MAINT: clean up some unused files, make \`mypy scipy\` pass * `#13623 `__: CI: enable Mypy CI job again * `#13624 `__: TST: test more values for \`visiting_param\` input to \`dual_annealing\` * `#13625 `__: Rename integrate.simps to integrate.simpsons in documentation... * `#13631 `__: ENH: add a \`stats.differential_entropy\` function * `#13633 `__: BUG: stats.binned_statistic_2d user function expecting arrays * `#13641 `__: ENH: Added degrees parameter to rotvec * `#13645 `__: MAINT: mypy: don't install numpy-stubs * `#13649 `__: BUG: sparse: csc_matrix.argmax() integer overflow * `#13650 `__: ENH: stats: add 'alternative' parameter to ansari * `#13652 `__: DOC: fix eigvalsh documentation (#13651) * `#13654 `__: BUG: Fix LatinHypercubes * `#13656 `__: DOC: Fix PCHIP references * `#13657 `__: TST: remove IPython warning in debug session * `#13658 `__: Remove spurious quotes in docstring * `#13661 `__: ENH: stats: improve efficiency of / fix bug in exact permutation... * `#13667 `__: MAINT: Make latest Docker image default * `#13668 `__: MAINT: add .theia/ to .gitignore * `#13669 `__: BLD: change SCIPY_USE_PYTHRAN default to \`1\` * `#13676 `__: ENH Small improvements for LSQR with damp * `#13678 `__: MAINT: add Pythran-generated files to .gitignore * `#13679 `__: MAINT: move the \`conda develop .\` in the Gitpod config * `#13680 `__: DOC: Add cKDTree note comparing it with KDTree * `#13681 `__: DOC: build doc updates on Pythran, compiled code, and cleanups * `#13683 `__: BUG: mmwrite correctly serializes non skew-symmetric arrays * `#13684 `__: FIX: fix numerical overflow in gamma.isf method * `#13685 `__: BUG: fix cosine distance range to 0-2 * `#13694 `__: MAINT: fix warning emitted when NumPy version is incorrect * `#13696 `__: ENH: support trimming in ttest_ind * `#13698 `__: BUG: stats: Fix spurious warnings generated by arcsine.pdf * `#13701 `__: DEV: scipy.interpolate b-splines (periodic case) * `#13702 `__: DEP: Clean up spent deprecations in spatial.distance * `#13703 `__: MAINT: fix issues found by static code analysis * `#13706 `__: ENH: stats: Implement sf and isf for the laplace distribution. * `#13711 `__: MAINT: stats: fix broadcasting for scipy.stats.entropy * `#13712 `__: BUG: stats: Override _fitstart for the invweibull distribution. * `#13713 `__: DOC: update toolchain.rst to reflect windows universal C runtime * `#13714 `__: MAINT: stats: Remove an unused list from test_continuous_basic.py. * `#13715 `__: MAINT: stats: No need to suppress frechet deprecation warnings. * `#13716 `__: MAINT: use super() as described by PEP 3135 * `#13718 `__: MAINT: new-style class, removing inheritance to object * `#13721 `__: MAINT: add a type-ignore for mpmath (#13721) * `#13723 `__: MAINT: mypy: ignore mpmath imports in mypy.ini * `#13724 `__: DOC: pydata sphinx theme * `#13725 `__: BENCH: add benchmark for Kendalltau * `#13727 `__: CI: simplify Pythran configuration setup for Azure * `#13731 `__: MAINT: stats: Some flake8-driven clean up. * `#13732 `__: ENH: stats: Studentized Range Distribution * `#13735 `__: DOC: correct Voronoi docstring * `#13738 `__: DOC: add example to wright_bessel * `#13739 `__: ENH: stats: Implement _sf and _isf for the chi distribution. * `#13741 `__: MAINT: prevent overwriting of x in minimize * `#13747 `__: DOC: Add note for interp1d for non-unique x-values * `#13749 `__: MAINT: forward port 1.6.2 relnotes * `#13759 `__: MAINT: simpson small performance speedups * `#13765 `__: FIX: npymath missing causing npy_log1p to be unknown * `#13768 `__: BENCH: Add missing pythran dependency * `#13770 `__: ENH: stats.contingency: Add the sparse option to crosstab. * `#13774 `__: DEP: Deprecate squeezing input vectors in spatial.distance * `#13775 `__: Enable trust region methods to use a finite difference Hessian... * `#13777 `__: DOC: Fix Ubuntu/Debian installation instructions * `#13778 `__: DOC: remove references to RandomState * `#13782 `__: MAINT: LBFGSB err msg on MAXLS changed closes #11718 * `#13785 `__: BENCH: Add benchmark for cdist/pdist with weights * `#13786 `__: MAINT: Prepare cdist/pdist for C++ rework * `#13787 `__: MAINT: stats: move entropy and differential_entropy functions... * `#13790 `__: DOC: Add some dependencies for Dockerfile doc of scipy development. * `#13792 `__: BUG: stats: Fix broadcasting in wrapcauchy.cdf * `#13795 `__: MAINT: stats: add hypotests to __all__ in init.py, not stats.py * `#13797 `__: MAINT: stats: probplot: don't plot least-squares fit line unless... * `#13798 `__: MAINT: fix incorrect code comment in \`hierarchy.to_tree\` * `#13802 `__: DEV: add environment.yml file for development with conda/mamba * `#13803 `__: DOC: fix doc build warning about arxiv role already being registered * `#13804 `__: DOC+MAINT: optimize: lb and ub in the Bounds constructor are... * `#13807 `__: MAINT: Dont use parallel Sphinx * `#13808 `__: MAINT: cluster.to_tree: more idiomatic looping over rows of matrix... * `#13810 `__: MAINT: add a CODEOWNERS file * `#13811 `__: MAINT: Add ci skip to azp * `#13814 `__: ENH/DOC: pydata sphinx theme polishing * `#13817 `__: DOC: Misc parameter typo and casing in scipy/linalg/_decomp_ldl.py * `#13818 `__: MAINT: stats: keep \`entropy\` importable from \`scipy.stats.distributions\` * `#13820 `__: BUG: update _kendall_p_exact ValueError to f-string * `#13831 `__: FIX:DEP: Allow better tolerance control for pinv and pinvh and... * `#13832 `__: BUG: stats: Fix rvs for levy_stable when alpha=1 * `#13833 `__: MAINT: Add inline type hintings for stats.qmc * `#13836 `__: MAINT: Fix a couple compiler warnings. * `#13838 `__: TST: relax test tolerances for BinomTest * `#13841 `__: BLD: add \`-std=c99\` flag to scipy.special extensions using... * `#13845 `__: ENH: stats: add \`method\` parameter to \`differential_entropy\`... * `#13847 `__: TST: skip on optimize failure on macOS, mark one as xfail * `#13848 `__: DOC: optimize: move Nelder Mead doc from Unconstrained minimization... * `#13849 `__: DOC: Roadmap update * `#13852 `__: CI: fix temporary wrong brew version from GitHub * `#13854 `__: ENH: Update Scipy Gitpod * `#13859 `__: TST: fix ultra-slow ttest permutations test * `#13860 `__: MAINT: clean up LSAP error checking * `#13863 `__: DOC: remove seed in examples * `#13865 `__: DOC: optimize: The bounds param of differential_evolution is... * `#13866 `__: MAINT: special: Remove an unused variable from _poly_approx in... * `#13867 `__: DOC: stats: Explain meaning of alternatives for fisher_exact. * `#13868 `__: CI: fix the failing job on linux. * `#13870 `__: MAINT: move LSAP rectangular matrix handling into solver code * `#13871 `__: DOC: Add Gitpod documentation * `#13876 `__: Workflow : Add nightly release of NumPy in linux workflows * `#13877 `__: DOC: Conform to numpydoc + uniformity. * `#13879 `__: BUG: signal: fix get_window argument handling and add tests. * `#13881 `__: CI: remove .travis.yml, remove codecov from CircleCI * `#13882 `__: BLD: ensure incrementing dev version strings * `#13886 `__: TST: optimize: skip test_network_flow_limited_capacity w/ UMFPACK... * `#13888 `__: MAINT: Fix issues involving elif conditions * `#13891 `__: Rename InivariateSpline to UnivariateSpline * `#13893 `__: ENH: linprog HiGHS marginals/sensitivy analysis * `#13894 `__: DOC: Add blank line before \`Return\` section. * `#13897 `__: DOC: BLD: fix doc build version check, and improve build time * `#13903 `__: MAINT: Gitpod fixes * `#13907 `__: ENH: Rewrite minkowski metric in C++ with pybind11 * `#13909 `__: Revert "Workflow : Add nightly release of NumPy in linux workflows" * `#13910 `__: DOC: update Readme * `#13911 `__: MAINT: use dict built-in rather than OrderedDict * `#13920 `__: BUG: Reactivate conda environment in init * `#13925 `__: BUG: stats: magnitude of Yates' correction <= abs(observed-expected)... * `#13926 `__: DOC: correct return type in disjoint_set.subsets docstring * `#13927 `__: DOC/MAINT: Add copyright notice to qmc.primes_from_2_to * `#13928 `__: BUG: DOC: signal: fix need argument config and add missing doc... * `#13929 `__: REL: add PEP 621 (project metadata in pyproject.toml) support * `#13931 `__: MAINT: special: get rid of _logit.c.src * `#13934 `__: ENH: signal: make \`get_window\` supports \`general_cosine\`... * `#13940 `__: MAINT: QMCEngine d input validation * `#13941 `__: MAINT: forward port 1.6.3 relnotes * `#13944 `__: BUG: spatial: fix weight handling of \`distance.sokalmichener\`. * `#13947 `__: MAINT: Remove duplicate calculations in sokalmichener * `#13949 `__: DOC: minor grammar fixes in minimize and KDTree.query * `#13951 `__: ENH: Add Boschloo exact test to stats * `#13956 `__: ENH: spatial: add \`axis\` and \`keepdims\` optional argument... * `#13963 `__: MAINT: stats: Fix unused imports and a few other issues related... * `#13971 `__: DOC: Add Karl Pearson's reference to chi-square test * `#13972 `__: ENH: cluster: add an optional argument \`seed\` for \`kmeans\`... * `#13973 `__: BLD: fix build warnings for causal/anticausal pointers in ndimage * `#13975 `__: ENH: set empty array norm to zero. * `#13977 `__: MAINT: signal: replace distutils templating with tempita * `#13978 `__: MAINT: improve validations and keyword only arguments for some... * `#13979 `__: ENH: Add Inverse of Log CDF of Normal Distribution * `#13983 `__: Fixing \`ndimage.watershed_ift\` tutorial's documentation * `#13987 `__: DOC: Adding examples to docstrings in morphology: white_tophat,... * `#13989 `__: DOC: interpolate: improve examples of \`RegularGridInterpolator\`... * `#13990 `__: MAINT, DOC: optimize: Make the input validation explanation clear... * `#13992 `__: Workflow : Add nightly release of NumPy in linux workflows * `#13995 `__: Doc: Continuous integration information * `#14000 `__: BUG: sparse: Fix DIA.diagonal bug and add a regression test * `#14004 `__: ENH: Fast addition dia matrix * `#14006 `__: MAINT: optimize: add validation to check func parameter number... * `#14008 `__: BUG: Raise exception for inconsistent WAV header * `#14009 `__: DEP: Remove usage of numpy.compat * `#14010 `__: MAINT: add support for wheel DL proxy * `#14012 `__: DOC: Broaden Exact Test Reference * `#14015 `__: MAINT: remove brew update * `#14017 `__: BENCH: Add more formats for sparse arithmetic * `#14018 `__: BENCH: add benchmark for f_oneway * `#14020 `__: MAINT: modify np.int\_ to np.int32 to make it the same for 32/64... * `#14023 `__: MAINT: Fix clang build and remove some unicode characters * `#14025 `__: BUG: sparse: fix DIA.setdiag issue * `#14026 `__: TST: optimize: xfail part of test_powell * `#14029 `__: CI: github macos fix * `#14030 `__: MAINT: use 'yield from ' (PEP 380) * `#14031 `__: MAINT: new-style class, removing inheritance to object * `#14032 `__: MAINT: CXXFLAGS for Pythran * `#14033 `__: ENH: Port sqeuclidean and braycurtis to _distance_pybind * `#14034 `__: MAINT: Clean-up 'next = __next__' * `#14045 `__: MAINT: bump PYVER pavement.py * `#14047 `__: DEV: initialize boost submodule in Gitpod Dockerfile * `#14051 `__: BLD: if boost submodule content is missing, error out early * `#14052 `__: DOC: missing submodule init information * `#14057 `__: DOC: special: Add Examples to \`psi\` docstring * `#14058 `__: BUG: fixed a dtype bug in linalg.solve. * `#14060 `__: Doc: Fix typo in documentation of spence function. * `#14061 `__: MAINT:stats: Type annotations for _sobol.pyx * `#14062 `__: DOC: A few small fixes in quickstart_gitpod.rst * `#14063 `__: DOC: signal: add Add Examples to \`cont2discrete\` docstring * `#14064 `__: DOC: optimize: Add Examples to fmin_bfgs docstring * `#14065 `__: Add example for scipy stats.trim1 under docstring * `#14066 `__: DOC add example to scipy.special.hermite * `#14067 `__: DOC add alpha docstring description, add example to docstring * `#14070 `__: DOC add parameters, return, and example to docstring * `#14072 `__: MAINT/TST: Fix tests failing with the nightly build of numpy. * `#14075 `__: DOC Improve the code snippet in signal.hilbert docstring. * `#14076 `__: DOC: Document Jensen-Shannon distance being accepted by cdist/pdist * `#14079 `__: BLD: Avoid importing scipy.stats during cythonize stage * `#14082 `__: MAINT: Remove old, commented extract_diagonal * `#14083 `__: MAINT: sparse: Remove defunct function extract_diagonal * `#14085 `__: ENH: Implement canberra distance in _distance_pybind * `#14086 `__: MAINT: Clear scipy namespace of entries better imported from... * `#14088 `__: Install Pythran from sources for python 3.10 * `#14092 `__: BUG: Fixes issue with clang. * `#14094 `__: DOC: Correct the inconsistence definition of Default in class... * `#14105 `__: TST: stats: mannwhitneyu: check that mstats and stats mannwhitneyu... * `#14106 `__: DOC: stats.mstats: mannwhitneyu: the returned statistic is the... * `#14107 `__: ENH: stats: bootstrap: add \`vectorized\` parameter; automatically... * `#14109 `__: BUG: fix two issues in the fblas signature files * `#14110 `__: DOC: mailmap update * `#14113 `__: ENH: stats: bootstrap: add \`paired\` parameter * `#14116 `__: MAINT: fix deprecated Python C API usage in odr * `#14118 `__: DOC: 1.7.0 release notes * `#14125 `__: DOC: fix typo * `#14126 `__: ENH: stats: bootstrap: add \`batch\` parameter to control batch... * `#14127 `__: CI: upgrade pip in benchmarks CI run * `#14130 `__: BUG: Fix trust-constr report TypeError if verbose is set to 2... * `#14133 `__: MAINT: interpolate: raise NotImplementedError not ValueError * `#14139 `__: FIX/DOC: lsqr doctests print failure * `#14145 `__: MAINT: 1.7.x version pins ("backport") * `#14146 `__: MAINT: commit count if no tag * `#14164 `__: TST, BUG: fix rbf matrix value * `#14166 `__: CI, MAINT: restrictions on pre-release CI * `#14171 `__: TST: signal: Bump tolerances for a test of Gustafsson's... * `#14175 `__: TST: stats: Loosen tolerance in some binomtest tests. * `#14182 `__: MAINT: stats: Update ppcc_plot and ppcc_max docstring. * `#14195 `__: MAINT: download-wheels missing import * `#14230 `__: REL: stop shipping generated Cython sources in sdist Checksums ========= MD5 ~~~ 276042cf01da2970b83883375b036eef scipy-1.7.0-cp37-cp37m-macosx_10_9_x86_64.whl 8149ae5442d3ca11d477893b9797b565 scipy-1.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 32d249d21ec09fe351b471cd578a54bd scipy-1.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl 6f9b11e29d59e276729ec706c38961e2 scipy-1.7.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl c4b23f53f47888744713a25000ed73fd scipy-1.7.0-cp37-cp37m-win32.whl 767b17455eba48cbe3949a4a8609d9e7 scipy-1.7.0-cp37-cp37m-win_amd64.whl ac0f5c087893240b13a78dbc80e002e1 scipy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl e2e369078c6b7ca29c952cb9971bc154 scipy-1.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2f4d2c55937133983031428405ef50e5 scipy-1.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl 092c9b3117c2acc378be46fac846b088 scipy-1.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl 08a560d8f936ea64d65471382d829b43 scipy-1.7.0-cp38-cp38-win32.whl 330c71d5ae61a6f1a96573ee5e2dc536 scipy-1.7.0-cp38-cp38-win_amd64.whl 535e0df93c3005acb69cf32eed57e5d7 scipy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl 003d015e6c75d683f8e27e80d731f782 scipy-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 9306001377da7b018ac0215eed2ba022 scipy-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl ed943492a5f97a086c96b6d158028ba4 scipy-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl 89499df789ff766d6140ab50b8a56745 scipy-1.7.0-cp39-cp39-win32.whl daf4ab11d37576bd792ece587e8f7ae6 scipy-1.7.0-cp39-cp39-win_amd64.whl 8776cb3e803f07c74ddf1045eb177904 scipy-1.7.0.tar.gz a0690bb8aa427fc0a3a59946b532763c scipy-1.7.0.tar.xz f1f1970a34948e59b37e9706a3dfca0e scipy-1.7.0.zip SHA256 ~~~~~~ 821e75f5c16cd7b0ab0ffe7eb9917e5af7b48c25306b4777287de8d792a5f7f3 scipy-1.7.0-cp37-cp37m-macosx_10_9_x86_64.whl 3e7df79b42c3015058a5554bfeab6fd4c9906c46560c9ddebb5c652840f3e182 scipy-1.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 0572256c10ddd058e3d315c555538671ddb2737f27eb56189bfbc3483391403f scipy-1.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl b77ee5e3a9507622e7f98b16122242a3903397f98d1fe3bc269d904a9025e2bc scipy-1.7.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl 53116abd5060a5b4a58489cf689bee259b779e6b7ecd4ce366e7147aa7c9626e scipy-1.7.0-cp37-cp37m-win32.whl e7b733d4d98e604109715e11f2ab9340eb45d53f803634ed730039070fc3bc11 scipy-1.7.0-cp37-cp37m-win_amd64.whl 4ef3d4df8af40cb6f4d4eaf7b02780109ebabeec334cda26a7899ec9d8de9176 scipy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl bd4399d4388ca0239a4825e312b3e61b60f743dd6daf49e5870837716502a92a scipy-1.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 80df8af7039bce92fb4cd1ceb056258631b11b3c627384e2d29bb48d44c0cae7 scipy-1.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl 6130e22bf6ee506f7cddde7e0515296d97eb6c6c94f7ef5103c2b77aec5833a7 scipy-1.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl 97ca4552ace1c313707058e774609af59644321e278c3a539322fab2fb09b943 scipy-1.7.0-cp38-cp38-win32.whl c5d012cb82cc1dcfa72609abaabb4a4ed8113e3e8ac43464508a418c146be57d scipy-1.7.0-cp38-cp38-win_amd64.whl 5eb8f054eebb351af7490bbb57465ba9662c4e16e1786655c6c7ed530eb9a74e scipy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl 7f4b89c223bd09460b52b669e2e642cab73c28855b540e6ed029692546a86f8d scipy-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 2e685fdbfa5b989af4338b29c408b9157ea6addec15d661104c437980c292be5 scipy-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl 3595c8b64970c9e5a3f137fa1a9eb64da417e78fb7991d0b098b18a00b776d88 scipy-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl 5a983d3cebc27294897951a494cebd78af2eae37facf75d9e4ad4f1f62229860 scipy-1.7.0-cp39-cp39-win32.whl aef6e922aea6f2e6bbb539b413c85210a9ee32757535b84204ebd22723e69704 scipy-1.7.0-cp39-cp39-win_amd64.whl 998c5e6ea649489302de2c0bc026ed34284f531df89d2bdc8df3a0d44d165739 scipy-1.7.0.tar.gz 0564d1091b8db03418356f0839cc4bf73b9bf7cd1089586eb690208e1f44bb8d scipy-1.7.0.tar.xz 3a0ec7390c491140551f6493611a30605144a4d47c0410e81f49921ada026993 scipy-1.7.0.zip -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Sun Jun 20 21:38:23 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Sun, 20 Jun 2021 19:38:23 -0600 Subject: [Numpy-discussion] ANN: SciPy 1.7.0 In-Reply-To: References: Message-ID: On Sun, Jun 20, 2021 at 1:45 PM Tyler Reddy wrote: > Hi all, > > On behalf of the SciPy development team I'm pleased to announce > the release of SciPy 1.7.0. > > Sources and binary wheels can be found at: > https://pypi.org/project/scipy/ > and at: > https://github.com/scipy/scipy/releases/tag/v1.7.0 > > One of a few ways to install this release with pip: > > pip install scipy==1.7.0 > > Thanks Tyler. Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Sun Jun 20 21:53:45 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Sun, 20 Jun 2021 19:53:45 -0600 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> Message-ID: On Fri, Jun 18, 2021 at 8:52 AM Stefan van der Walt wrote: > On Thu, Jun 17, 2021, at 16:23, Stephan Hoyer wrote: > > This happens all the time. Even if we make copy='never' an error *today*, > users will be encountering existing versions of NumPy for years into the > future, so we won't be able to change the behavior of copy='never' for a > very long time. Our deprecation policy says we would need to wait at least > one year for this, but frankly I'm not sure that's enough for > the possibility of silent bugs. 3-4 years might be more realistic. > > > If we go the enum route, we may just as well deprecate string arguments at > the same time so that we have the flexibility to introduce them again in > the future. > > St?fan > > What if we made `copy=False` do what it says. I always thought the ambiguous behavior was just asking for trouble. For a couple of releases we could raise a FutureWarning when a copy was made in spite of `copy=False`, which might expose some bugs in existing code. Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From jni at fastmail.com Sun Jun 20 22:23:17 2021 From: jni at fastmail.com (Juan Nunez-Iglesias) Date: Mon, 21 Jun 2021 12:23:17 +1000 Subject: [Numpy-discussion] ANN: SciPy 1.7.0 In-Reply-To: References: Message-ID: <0CE4BE69-971D-401E-AF82-B34F6BF3E6A5@fastmail.com> It appears that previous doc links have been broken without redirects? e.g.: https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.distance_transform_edt.html#scipy.ndimage.distance_transform_edt is 404. The new link is at: https://docs.scipy.org/doc/scipy/reference/reference/generated/scipy.ndimage.distance_transform_edt.html#scipy.ndimage.distance_transform_edt Note the extra ?reference? in the URL. Was this a conscious choice or an unforeseen side effect of moving to the PyData theme? There?s a *lot* of links to the docs out there. Juan. > On 21 Jun 2021, at 5:44 am, Tyler Reddy wrote: > > Hi all, > > On behalf of the SciPy development team I'm pleased to announce > the release of SciPy 1.7.0. > > Sources and binary wheels can be found at: > https://pypi.org/project/scipy/ > and at: > https://github.com/scipy/scipy/releases/tag/v1.7.0 > > One of a few ways to install this release with pip: > > pip install scipy==1.7.0 > > ===================== > SciPy 1.7.0 Release Notes > ===================== > > SciPy 1.7.0 is the culmination of 6 months of hard work. It contains > many new features, numerous bug-fixes, improved test coverage and better > documentation. There have been a number of deprecations and API changes > in this release, which are documented below. All users are encouraged to > upgrade to this release, as there are a large number of bug-fixes and > optimizations. Before upgrading, we recommend that users check that > their own code does not use deprecated SciPy functionality (to do so, > run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). > Our development attention will now shift to bug-fix releases on the > 1.7.x branch, and on adding new features on the master branch. > > This release requires Python 3.7+ and NumPy 1.16.5 or greater. > > For running on PyPy, PyPy3 6.0+ is required. > > > **************************** > Highlights of this release > **************************** > > - A new submodule for quasi-Monte Carlo, `scipy.stats.qmc`, was added > - The documentation design was updated to use the same PyData-Sphinx theme as > NumPy and other ecosystem libraries. > - We now vendor and leverage the Boost C++ library to enable numerous > improvements for long-standing weaknesses in `scipy.stats` > - `scipy.stats` has six new distributions, eight new (or overhauled) > hypothesis tests, a new function for bootstrapping, a class that enables > fast random variate sampling and percentile point function evaluation, > and many other enhancements. > - ``cdist`` and ``pdist`` distance calculations are faster for several metrics, > especially weighted cases, thanks to a rewrite to a new C++ backend framework > - A new class for radial basis function interpolation, `RBFInterpolator`, was > added to address issues with the `Rbf` class. > > We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open Source > Software for Science program for supporting many of the improvements to > `scipy.stats`. > > *************** > New features > *************** > > `scipy.cluster` improvements > ====================== > > An optional argument, ``seed``, has been added to ``kmeans`` and ``kmeans2`` to > set the random generator and random state. > > `scipy.interpolate` improvements > ========================= > > Improved input validation and error messages for ``fitpack.bispev`` and > ``fitpack.parder`` for scenarios that previously caused substantial confusion > for users. > > The class `RBFInterpolator` was added to supersede the `Rbf` class. The new > class has usage that more closely follows other interpolator classes, corrects > sign errors that caused unexpected smoothing behavior, includes polynomial > terms in the interpolant (which are necessary for some RBF choices), and > supports interpolation using only the k-nearest neighbors for memory > efficiency. > > `scipy.linalg` improvements > ===================== > > An LAPACK wrapper was added for access to the ``tgexc`` subroutine. > > `scipy.ndimage` improvements > ======================= > > `scipy.ndimage.affine_transform` is now able to infer the ``output_shape`` from > the ``out`` array. > > `scipy.optimize` improvements > ======================= > > The optional parameter ``bounds`` was added to > ``_minimize_neldermead`` to support bounds constraints > for the Nelder-Mead solver. > > ``trustregion`` methods ``trust-krylov``, ``dogleg`` and ``trust-ncg`` can now > estimate ``hess`` by finite difference using one of > ``["2-point", "3-point", "cs"]``. > > ``halton`` was added as a ``sampling_method`` in `scipy.optimize.shgo`. > ``sobol`` was fixed and is now using `scipy.stats.qmc.Sobol`. > > ``halton`` and ``sobol`` were added as ``init`` methods in > `scipy.optimize.differential_evolution.` > > ``differential_evolution`` now accepts an ``x0`` parameter to provide an > initial guess for the minimization. > > ``least_squares`` has a modest performance improvement when SciPy is built > with Pythran transpiler enabled. > > When ``linprog`` is used with ``method`` ``'highs'``, ``'highs-ipm'``, or > ``'highs-ds'``, the result object now reports the marginals (AKA shadow > prices, dual values) and residuals associated with each constraint. > > `scipy.signal` improvements > ===================== > > ``get_window`` supports ``general_cosine`` and ``general_hamming`` window > functions. > > `scipy.signal.medfilt2d` now releases the GIL where appropriate to enable > performance gains via multithreaded calculations. > > `scipy.sparse` improvements > ====================== > > Addition of ``dia_matrix`` sparse matrices is now faster. > > > `scipy.spatial` improvements > ====================== > > ``distance.cdist`` and ``distance.pdist`` performance has greatly improved for > certain weighted metrics. Namely: ``minkowski``, ``euclidean``, ``chebyshev``, > ``canberra``, and ``cityblock``. > > Modest performance improvements for many of the unweighted ``cdist`` and > ``pdist`` metrics noted above. > > The parameter ``seed`` was added to `scipy.spatial.vq.kmeans` and > `scipy.spatial.vq.kmeans2`. > > The parameters ``axis`` and ``keepdims`` where added to > `scipy.spatial.distance.jensenshannon`. > > The ``rotation`` methods ``from_rotvec`` and ``as_rotvec`` now accept a > ``degrees`` argument to specify usage of degrees instead of radians. > > `scipy.special` improvements > ====================== > > Wright's generalized Bessel function for positive arguments was added as > `scipy.special.wright_bessel.` > > An implementation of the inverse of the Log CDF of the Normal Distribution is > now available via `scipy.special.ndtri_exp`. > > `scipy.stats` improvements > ==================== > > Hypothesis Tests > ----------------------- > > The Mann-Whitney-Wilcoxon test, ``mannwhitneyu``, has been rewritten. It now > supports n-dimensional input, an exact test method when there are no ties, > and improved documentation. Please see "Other changes" for adjustments to > default behavior. > > The new function `scipy.stats.binomtest` replaces `scipy.stats.binom_test`. The > new function returns an object that calculates a confidence intervals of the > proportion parameter. Also, performance was improved from O(n) to O(log(n)) by > using binary search. > > The two-sample version of the Cramer-von Mises test is implemented in > `scipy.stats.cramervonmises_2samp`. > > The Alexander-Govern test is implemented in the new function > `scipy.stats.alexandergovern`. > > The new functions `scipy.stats.barnard_exact` and `scipy.stats. boschloo_exact` > respectively perform Barnard's exact test and Boschloo's exact test > for 2x2 contingency tables. > > The new function `scipy.stats.page_trend_test` performs Page's test for ordered > alternatives. > > The new function `scipy.stats.somersd` performs Somers' D test for ordinal > association between two variables. > > An option, ``permutations``, has been added in `scipy.stats.ttest_ind` to > perform permutation t-tests. A ``trim`` option was also added to perform > a trimmed (Yuen's) t-test. > > The ``alternative`` parameter was added to the ``skewtest``, ``kurtosistest``, > ``ranksums``, ``mood``, ``ansari``, ``linregress``, and ``spearmanr`` functions > to allow one-sided hypothesis testing. > > Sample statistics > ----------------------- > > The new function `scipy.stats.differential_entropy` estimates the differential > entropy of a continuous distribution from a sample. > > The ``boxcox`` and ``boxcox_normmax`` now allow the user to control the > optimizer used to minimize the negative log-likelihood function. > > A new function `scipy.stats.contingency.relative_risk` calculates the > relative risk, or risk ratio, of a 2x2 contingency table. The object > returned has a method to compute the confidence interval of the relative risk. > > Performance improvements in the ``skew`` and ``kurtosis`` functions achieved > by removal of repeated/redundant calculations. > > Substantial performance improvements in `scipy.stats.mstats.hdquantiles_sd`. > > The new function `scipy.stats.contingency.association` computes several > measures of association for a contingency table: Pearsons contingency > coefficient, Cramer's V, and Tschuprow's T. > > The parameter ``nan_policy`` was added to `scipy.stats.zmap` to provide options > for handling the occurrence of ``nan`` in the input data. > > The parameter ``ddof`` was added to `scipy.stats.variation` and > `scipy.stats.mstats.variation`. > > The parameter ``weights`` was added to `scipy.stats.gmean`. > > Statistical Distributions > ------------------------------- > > We now vendor and leverage the Boost C++ library to address a number of > previously reported issues in ``stats``. Notably, ``beta``, ``binom``, > ``nbinom`` now have Boost backends, and it is straightforward to leverage > the backend for additional functions. > > The skew Cauchy probability distribution has been implemented as > `scipy.stats.skewcauchy`. > > The Zipfian probability distribution has been implemented as > `scipy.stats.zipfian`. > > The new distributions ``nchypergeom_fisher`` and ``nchypergeom_wallenius`` > implement the Fisher and Wallenius versions of the noncentral hypergeometric > distribution, respectively. > > The generalized hyperbolic distribution was added in > `scipy.stats.genhyperbolic`. > > The studentized range distribution was added in `scipy.stats.studentized_range`. > > `scipy.stats.argus` now has improved handling for small parameter values. > > Better argument handling/preparation has resulted in performance improvements > for many distributions. > > The ``cosine`` distribution has added ufuncs for ``ppf``, ``cdf``, ``sf``, and > ``isf`` methods including numerical precision improvements at the edges of the > support of the distribution. > > An option to fit the distribution to data by the method of moments has been > added to the ``fit`` method of the univariate continuous distributions. > > Other > --------- > `scipy.stats.bootstrap` has been added to allow estimation of the confidence > interval and standard error of a statistic. > > The new function `scipy.stats.contingency.crosstab` computes a contingency > table (i.e. a table of counts of unique entries) for the given data. > > `scipy.stats.NumericalInverseHermite` enables fast random variate sampling > and percentile point function evaluation of an arbitrary univariate statistical > distribution. > > New `scipy.stats.qmc` module > ----------------------------------------- > > This new module provides Quasi-Monte Carlo (QMC) generators and associated > helper functions. > > It provides a generic class `scipy.stats.qmc.QMCEngine` which defines a QMC > engine/sampler. An engine is state aware: it can be continued, advanced and > reset. 3 base samplers are available: > > - `scipy.stats.qmc.Sobol` the well known Sobol low discrepancy sequence. > Several warnings have been added to guide the user into properly using this > sampler. The sequence is scrambled by default. > - `scipy.stats.qmc.Halton`: Halton low discrepancy sequence. The sequence is > scrambled by default. > - `scipy.stats.qmc.LatinHypercube`: plain LHS design. > > And 2 special samplers are available: > > - `scipy.stats.qmc.MultinomialQMC`: sampling from a multinomial distribution > using any of the base `scipy.stats.qmc.QMCEngine`. > - `scipy.stats.qmc.MultivariateNormalQMC`: sampling from a multivariate Normal > using any of the base `scipy.stats.qmc.QMCEngine`. > > The module also provide the following helpers: > > - `scipy.stats.qmc.discrepancy`: assess the quality of a set of points in terms > of space coverage. > - `scipy.stats.qmc.update_discrepancy`: can be used in an optimization loop to > construct a good set of points. > - `scipy.stats.qmc.scale`: easily scale a set of points from (to) the unit > interval to (from) a given range. > > > *********************** > Deprecated features > *********************** > > `scipy.linalg` deprecations > ==================== > > - `scipy.linalg.pinv2` is deprecated and its functionality is completely > subsumed into `scipy.linalg.pinv` > - Both ``rcond``, ``cond`` keywords of `scipy.linalg.pinv` and > `scipy.linalg.pinvh` were not working and now are deprecated. They are now > replaced with functioning ``atol`` and ``rtol`` keywords with clear usage. > > `scipy.spatial` deprecations > ===================== > > - `scipy.spatial.distance` metrics expect 1d input vectors but will call > ``np.squeeze`` on their inputs to accept any extra length-1 dimensions. That > behaviour is now deprecated. > > ***************** > Other changes > ***************** > > We now accept and leverage performance improvements from the ahead-of-time > Python-to-C++ transpiler, Pythran, which can be optionally disabled (via > ``export SCIPY_USE_PYTHRAN=0``) but is enabled by default at build time. > > There are two changes to the default behavior of `scipy.stats.mannwhitenyu`: > > - For years, use of the default ``alternative=None`` was deprecated; explicit > ``alternative`` specification was required. Use of the new default value of > ``alternative``, "two-sided", is now permitted. > - Previously, all p-values were based on an asymptotic approximation. Now, for > small samples without ties, the p-values returned are exact by default. > > Support has been added for PEP 621 (project metadata in ``pyproject.toml``) > > We now support a Gitpod environment to reduce the barrier to entry for SciPy > development; for more details see :ref:`quickstart-gitpod`. > > > ********* > Authors > ********* > > * @endolith > * Jelle Aalbers + > * Adam + > * Tania Allard + > * Sven Baars + > * Max Balandat + > * baumgarc + > * Christoph Baumgarten > * Peter Bell > * Lilian Besson > * Robinson Besson + > * Max Bolingbroke > * Blair Bonnett + > * Jord?o Bragantini > * Harm Buisman + > * Evgeni Burovski > * Matthias Bussonnier > * Dominic C > * CJ Carey > * Ram?n Casero + > * Chachay + > * charlotte12l + > * Benjamin Curtice Corbett + > * Falcon Dai + > * Ian Dall + > * Terry Davis > * droussea2001 + > * DWesl + > * dwight200 + > * Thomas J. Fan + > * Joseph Fox-Rabinovitz > * Max Frei + > * Laura Gutierrez Funderburk + > * gbonomib + > * Matthias Geier + > * Pradipta Ghosh + > * Ralf Gommers > * Evan H + > * h-vetinari > * Matt Haberland > * Anselm Hahn + > * Alex Henrie > * Piet Hessenius + > * Trever Hines + > * Elisha Hollander + > * Stephan Hoyer > * Tom Hu + > * Kei Ishikawa + > * Julien Jerphanion > * Robert Kern > * Shashank KS + > * Peter Mahler Larsen > * Eric Larson > * Cheng H. Lee + > * Gregory R. Lee > * Jean-Benoist Leger + > * lgfunderburk + > * liam-o-marsh + > * Xingyu Liu + > * Alex Loftus + > * Christian Lorentzen + > * Cong Ma > * Marc + > * MarkPundurs + > * Markus L?ning + > * Liam Marsh + > * Nicholas McKibben > * melissawm + > * Jamie Morton > * Andrew Nelson > * Nikola Forr? > * Tor Nordam + > * Olivier Gauth? + > * Rohit Pandey + > * Avanindra Kumar Pandeya + > * Tirth Patel > * paugier + > * Alex H. Wagner, PhD + > * Jeff Plourde + > * Ilhan Polat > * pranavrajpal + > * Vladyslav Rachek > * Bharat Raghunathan > * Recursing + > * Tyler Reddy > * Lucas Roberts > * Gregor Robinson + > * Pamphile Roy + > * Atsushi Sakai > * Benjamin Santos > * Martin K. Scherer + > * Thomas Schmelzer + > * Daniel Scott + > * Sebastian Wallk?tter + > * serge-sans-paille + > * Namami Shanker + > * Masashi Shibata + > * Alexandre de Siqueira + > * Albert Steppi + > * Adam J. Stewart + > * Kai Striega > * Diana Sukhoverkhova > * S?ren Fuglede J?rgensen > * Mike Taves > * Dan Temkin + > * Nicolas Tessore + > * tsubota20 + > * Robert Uhl > * christos val + > * Bas van Beek + > * Ashutosh Varma + > * Jose Vazquez + > * Sebastiano Vigna > * Aditya Vijaykumar > * VNMabus > * Arthur Volant + > * Samuel Wallan > * Stefan van der Walt > * Warren Weckesser > * Anreas Weh > * Josh Wilson > * Rory Yorke > * Egor Zemlyanoy > * Marc Zoeller + > * zoj613 + > * ?? + > > A total of 126 people contributed to this release. > People with a "+" by their names contributed a patch for the first time. > This list of names is automatically generated, and may not be fully complete. > > ************************** > Issues closed for 1.7.0 > ************************** > > * `#636 >`__: Statistics Review: mannwhitneyu (Trac #109) > * `#1346 >`__: signal.medfilt2d should fall back on signal.medfilt for types... > * `#2118 >`__: Mann-Whitney statistic returns incorrect results (Trac #1593) > * `#2158 >`__: special.chndtrix (ncx2.ppf) gives wrong results (Trac #1633) > * `#3284 >`__: build_sphinx weirdness > * `#3352 >`__: beta distribution sf > * `#4067 >`__: Mannwhitneyu with arrays full of nan still reports significance > * `#4080 >`__: entropy in Scipy > * `#4641 >`__: mstats.mannwhitneyu and stats.mannwhitneyu return inconsistent... > * `#5122 >`__: scipy.stats.binom.ppf Incorrect for p=0 > * `#5180 >`__: Rbf interpolation - use only K nearest neighbors > * `#5258 >`__: affine_transform complains about output_shape when output array... > * `#5562 >`__: Wishart degrees of freedom should be $v > p-1$ instead of $v... > * `#5933 >`__: mstats_basic.py - mannwhitneyu [scipy/scipy/stats/mstats_basic.py] > * `#6409 >`__: _unequal_var_ttest_denom causes ZeroDivisionError in early samples > * `#6682 >`__: negative binomial survival function is imprecise > * `#6897 >`__: scipy.stats.mannwhitneyu of empty sets gives p=0.0 and does not... > * `#7303 >`__: stats.describe with nan_policy=omit returns matrix-wide minmax... > * `#7406 >`__: scipy.stats.binom.ppf returns nan for q between 0 and 1 if n... > * `#7437 >`__: ENH: add skewed Cauchy distribution to stats > * `#7542 >`__: DOC: stats tutorials: Questions on arcsine and Student t formulae > * `#7593 >`__: Meaning of \`tol\` argument in \`scipy.optimize.minimize\` is... > * `#8565 >`__: Error in SmoothSphereBivariateSpline(): "ValueError: Error code... > * `#8665 >`__: \`scipy.ncx2.sf\` should be monotone decreasing > * `#8836 >`__: scipy.optimize.linprog(method='simplex') needs to return duals > * `#9184 >`__: Mann-Whitney implementation wrong? > * `#9450 >`__: allow seeding of init methods in vq.kmeans2 > * `#9704 >`__: RectSphereBivariateSpline fails for negative longitude > * `#9836 >`__: scipy.stats.rice gives incorrect results when s is very low compared... > * `#9904 >`__: Request/Proposal: Greatly improve scipy.interpolate.Rbf > * `#9981 >`__: stats.kruskal : add a warning for an input with 2 or more columns > * `#10358 >`__: DOC: linprog and linear_sum_assignment tutorials needed > * `#10908 >`__: Nakami fitting doesn't converge (scipy.stats) > * `#10933 >`__: Add scaled inverse chi2 distribution > * `#11014 >`__: Barnard's Test for More Powerful Hypothesis Testing of 2x2 Contingency... > * `#11050 >`__: Feature request: Nelder-Mead with bounds > * `#11086 >`__: scipy.stats.skew doesn't work correctly for float point numbers > * `#11113 >`__: inconsistent result from ttest_ind and mannwhitneyu when used... > * `#11134 >`__: Wrong confidence interval for binomial distribution with p=0 > * `#11325 >`__: Add axis parameter for scipy.spatial.distance.jensenshannon > * `#11474 >`__: scipy.stats.skellam.cdf(0) returns 0 for large mu1 = mu2 > * `#11523 >`__: scipy.stats.zipf doesn't implement zipf distribution > * `#11848 >`__: How to get Lagrange / lambda multipliers out of 'linprog' optimize... > * `#11909 >`__: Enable bounds for lambda in boxcox > * `#12118 >`__: Docstring missing defaults > * `#12132 >`__: Slow tests to be trimmed or moved to test('full') > * `#12230 >`__: Dendrogram: enable leaves labelling with 'labels' when using... > * `#12282 >`__: scipy.stats.chisquare test does not check that observed and expected... > * `#12298 >`__: BUG: fmin_powell missing squeeze in 1.5.0rc > * `#12403 >`__: Add nan_policy to stats.zmap > * `#12518 >`__: Null hypothesis of Kolmogorov Smirnov test is not correctly described > * `#12534 >`__: Feature request: scipy.linalg.norm to deal with 0-size array > * `#12622 >`__: scipy.interpolate.interpn docstring example > * `#12635 >`__: scipy.stats.beta.ppf gives unexpexted results > * `#12669 >`__: Median-averaging of complex CSDs > * `#12731 >`__: stats.ncx2.cdf fails for nc >> x >> 1 > * `#12778 >`__: Confusing documentation of scipy.stats.weightedtau > * `#12794 >`__: [Bug] The result of stats.beta.isf is inconsistent with stats.beta.sf > * `#12837 >`__: stats.mannwhitneyu could support arrays > * `#12868 >`__: Vector-valued interpolation in \`interp2d\` > * `#12922 >`__: Minimize with trust-constr method leads to TypeError if option... > * `#12929 >`__: The use of starred expressions to create data detracts from understanding... > * `#12965 >`__: domain of argument of scipy.interpolate.RectSphereBivariateSpline(u,... > * `#13025 >`__: Generalized Hyperbolic Distribution > * `#13090 >`__: Broken link in doc for signal.max_len_seq > * `#13101 >`__: MAINT: Upgrade python version in docker file > * `#13158 >`__: \`signal.get_window()\` has a missing doc link and cannot get... > * `#13173 >`__: Uninformative error message from bisplev function > * `#13234 >`__: BUG: stats: Wrong shape of burr.moment() and fisk.moment() when... > * `#13242 >`__: Does kmeans "drop" clusters? > * `#13243 >`__: tgsen uses an output argument for computing a default argument > * `#13245 >`__: Kurtosis returning 1 for array of same elements > * `#13257 >`__: GitHub Actions test failures for MacOS > * `#13272 >`__: scipy.stats.yeojohnson_llf doc mistake > * `#13280 >`__: Wrong results with hypergeom cdf > * `#13285 >`__: description correction in scipy.stats.t > * `#13287 >`__: Generate binomial CDF with mu instead of prob > * `#13294 >`__: BUG: stats: wrong bounds returned by 'support' method for distributions... > * `#13299 >`__: Typing for scipy.spatial > * `#13300 >`__: Add a single individual to a latinhypercube initial population... > * `#13311 >`__: MAINT: pavement.py PYVER is outdated > * `#13339 >`__: savemat discards dimension information if any dimension is zero > * `#13341 >`__: add scipy.stats.variation with an ddof parameter > * `#13353 >`__: Documentation: in scipy.stats.johnsonsu, parameter \`a\` can... > * `#13405 >`__: TST: add a few tests for sparse BSR ctor > * `#13410 >`__: BUG: skew for empty array raises > * `#13417 >`__: 10,000 times speedup for generating random numbers from the cosine... > * `#13440 >`__: python runtest.py -t path-to-test.py failed > * `#13454 >`__: Scipy cosine distance can be greater than 2 > * `#13459 >`__: Broken link in cramervonmises documentation > * `#13494 >`__: One-word typo in the documentation of optimize.linprog_simplex > * `#13501 >`__: minimize using Powell methods with Bounds leads to "TypeError:... > * `#13509 >`__: signal.medfilt2d vs ndimage.median_filter > * `#13511 >`__: DOC: error in description of "direc" parameter of "fmin_powell" > * `#13526 >`__: TST: stats: intermittent \`test_ttest_ind_randperm_alternative2... > * `#13536 >`__: \`_within_tolerance\` seems an unnecessary repetition of \`numpy.isclose\` > * `#13540 >`__: missing python 3.8 manylinux wheels on scipy-wheels-nightly > * `#13559 >`__: shape error in linprog with revised simplex > * `#13587 >`__: binned_statistic unreliable with single precision > * `#13589 >`__: Better argument preparation for distributions in stats package. > * `#13602 >`__: The crystallball distribution entropy is sometimes minus infinity > * `#13606 >`__: MAINT: mypy: some typing errors while running mypy + adding mypy... > * `#13608 >`__: Why does stats.binned_statistic_2d convert its values argument... > * `#13609 >`__: BUG: SciPy pip install -e gets unusable version spec > * `#13610 >`__: Highs solver did not provide a solution nor did it report a failure > * `#13614 >`__: BUG: invgauss.cdf should return the correct value when \`mu\`... > * `#13628 >`__: 1-letter typo in the definition of scipy.special.spence function... > * `#13634 >`__: mmwrite fails on dense, skew-symmetric array > * `#13646 >`__: Sparse matrix argmax() integer overflow on Windows 10 > * `#13647 >`__: \`scipy.stats.qmc.LatinHypercube\` cannot sample single sample... > * `#13651 >`__: Documentation wrong in scipy.linalg.eigvalsh > * `#13664 >`__: BUG: gamma distribution's inverse survival function overflows... > * `#13693 >`__: BUG: sokalmichener appears to incorrectly apply weights > * `#13697 >`__: BUG: stats: Spurious warning generated by arcsine.pdf at the... > * `#13704 >`__: Make it possible to pass a rank cut-off value relatively to the... > * `#13707 >`__: Kullback Leibler Divergence broadcasting no longer works > * `#13740 >`__: Scipy.optimize x0 out of bounds when it is within bounds. > * `#13744 >`__: scipy.interpolate.interp1d has inconsistent behavior for non-unique... > * `#13754 >`__: optimize.minimize 'trust' methods and finite difference Hessian... > * `#13762 >`__: MAINT, TST: aarch64 stats test failures showing up in wheels... > * `#13769 >`__: probplot draws fit line even when fit=False > * `#13791 >`__: BUG: stats: wrapcauchy.cdf does not broadcast the shape parameter... > * `#13793 >`__: CI: CircleCI doc build failure > * `#13840 >`__: manylinux1 builds are failing because of C99 usage in \`special/_cosine.c\` > * `#13850 >`__: CI: Homebrew is failing due to bintray > * `#13875 >`__: BUG: chi2_contingency with Yates correction > * `#13878 >`__: BUG: \`signal.get_window\` argument handling issue > * `#13880 >`__: Remove all usages of numpy.compat > * `#13896 >`__: Boschloo's Test for More Powerful Hypothesis Testing of 2x2 Contingency... > * `#13923 >`__: Inverse of Log CDF of Normal Distribution > * `#13933 >`__: \`signal.get_window\` does not support \`general_cosine\` and... > * `#13950 >`__: DOC: scipy.spatial.KDTree.query > * `#13969 >`__: N=4 must not exceed M=3 > * `#13970 >`__: Pearson's original paper on chi-square test could be referenced. > * `#13984 >`__: Faster addition of sparse diagonal matrices > * `#13988 >`__: An error occurred when using scipy.io.wavfile of scipy 1.6 version... > * `#13997 >`__: BUG: sparse: Incorrect result from \`dia_matrix.diagonal()\` > * `#14005 >`__: MAINT: optimize: \`curve_fit\` input error msg can be improved. > * `#14038 >`__: MAINT: add type annotations for _sobol.pyx > * `#14048 >`__: DOC: missing git submodule information > * `#14055 >`__: linalg.solve: Unclear error when using assume_a='her' with real... > * `#14093 >`__: DOC: Inconsistency in the definition of default values in the... > * `#14158 >`__: TST, BUG: test_rbfinterp.py -- test_interpolation_misfit_1d fails... > * `#14170 >`__: TST: signal submodule test_filtfilt_gust failing on 32-bit amd64... > * `#14194 >`__: MAINT: download-wheels.py missing import > * `#14199 >`__: Generated sources for biasedurn extension are broken in 1.7.0rc1 > > > ************************** > Pull requests for 1.7.0 > ************************** > > * `#4824 >`__: Permutation Ttest (new PR) > * `#4933 >`__: ENH: Update the Mann-Whitney-Wilcoxon test > * `#7702 >`__: ENH: stats: Add Skewed Cauchy Distribution > * `#8306 >`__: Optional Pythran support for scipy.signal.max_len_seq_inner > * `#10170 >`__: MAINT: stats: Implement cdf and ppf as ufuncs for the cosine... > * `#10454 >`__: ENH: Extend find_peaks_cwt to take numbers and iterables for... > * `#10844 >`__: ENH: add stats.qmc module with quasi Monte Carlo functionality > * `#11313 >`__: ENH: add Wright's generalized Bessel function > * `#11352 >`__: ENH: stats: Add crosstab function. > * `#11477 >`__: FIX: bounded parameter in cdfchn.f gives bad results > * `#11695 >`__: ENH: stats: add method of moments to \`rv_continuous.fit\` > * `#11911 >`__: ENH: Added bounds to boxcox and boxcox_normmax > * `#12438 >`__: BUG: use ellipkm1 in elliptical filter design to prevent numerical... > * `#12531 >`__: ENH: stats: add Page's L test > * `#12603 >`__: ENH: stats: Add \`binomtest\` to replace \`binom_test\`. > * `#12653 >`__: ENH: stats: add Somers' D test > * `#12676 >`__: BUG: update median averaging in signal.csd > * `#12760 >`__: BUG: special: erfinv(x<<1) loses precision > * `#12801 >`__: ENH: Add single-sided p-values to remaining spearmanr and linregress > * `#12873 >`__: ENH: Stats: add Alexander Govern Test > * `#13008 >`__: ENH: Add 'alternative' to functions using normal CDF for p-value > * `#13040 >`__: BUG: Allow RectSphereBivariateSpline to accept negative longitude > * `#13048 >`__: ENH: stats: Add a function that computes the relative risk. > * `#13067 >`__: ENH: Add weights parameter to stats.gmean > * `#13084 >`__: ENH: fast Hankel transform > * `#13104 >`__: MAINT: upgrade python version (drop python 3.6) for docker dev... > * `#13153 >`__: ENH: added association measurements Pearsons Contingency Coefficient,... > * `#13166 >`__: ENH: stats: Add nan_policy to zmap. > * `#13175 >`__: MAINT: tests for tall cost matrices in \`linear_sum_assignment\` > * `#13177 >`__: BUG: raise NotImplementedError in fourier_ellipsoid when ndim... > * `#13184 >`__: BUG: stats: Fix min and max calculation of mstats.describe with... > * `#13188 >`__: DOC: stats: make null and alternative hypotheses of kstest more... > * `#13193 >`__: MAINT: stats: chisquare check sum of observed/expected frequencies > * `#13197 >`__: ENH/MAINT: HiGHS upstream enhancements and bug fixes > * `#13198 >`__: ENH: allow inference of output_shape from out array in affine_transform > * `#13204 >`__: ENH: stats: add Zipfian (different from Zipf/zeta) distribution > * `#13208 >`__: REL: set version to 1.7.0.dev0 > * `#13216 >`__: TST: stats: break up and mark slow tests > * `#13224 >`__: Update docs for the weighted ? > * `#13230 >`__: ENH: linalg: Add LAPACK wrapper for tgexc. > * `#13232 >`__: MAINT: stats: raise error when input to kruskal has >1 dim > * `#13233 >`__: DOC: stats: fix MGF of arcsine and entropy of t in tutorial > * `#13236 >`__: MAINT: reorganize shared linear assignment tests > * `#13237 >`__: BENCH: Refactor stats.Distribution to easily add new distributions > * `#13238 >`__: BUG: stats: fix wrong shape output of burr and fisk distributions > * `#13240 >`__: MAINT: add tests of trivial cost matrices for linear sum assignment > * `#13252 >`__: DOC: optimize: add \`optimize.linear_sum_assignment\` tutorial. > * `#13254 >`__: BUG: Fix precision issues for constant input in skew and kurtosis > * `#13262 >`__: BUG: scipy.medfilt and .medfilt2d fixes > * `#13263 >`__: ENH: add Cramer-von Mises test for two samples > * `#13264 >`__: fix a minor typo in \`stats.anderson\` doc > * `#13268 >`__: ENH: stats: Add implementation of _entropy for the t distr. > * `#13273 >`__: DOC: stats: fix typo in Yeo-Johnson LL function documentation > * `#13275 >`__: MAINT: stats: Correct a comment in the _fitstart method of gamma. > * `#13283 >`__: BUG: stats: fix the cdf method of rv_discrete class > * `#13286 >`__: DOC: stats: clairify rv_continuous/discrete.stats example > * `#13288 >`__: DOC: stats: discrete distribution shape parameter restrictions > * `#13289 >`__: MAINT: fix a build warning in sigtoolsmodule.c > * `#13290 >`__: DOC: Expand the discussion of the nan_policy API. > * `#13291 >`__: MAINT: signal, stats: Use keepdims where appropriate. > * `#13292 >`__: DOC: stats: note another common parameterization of nbinom > * `#13293 >`__: DOC: Change broken link for default values to archived link > * `#13295 >`__: BUG: stats: fix the support method to return correct bounds > * `#13296 >`__: DOC: stats: Fix latex markup in the kstwo docstring. > * `#13297 >`__: TST: mark kde.logpdf overflow test as xslow > * `#13298 >`__: Generalized Hyperbolic Distribution > * `#13301 >`__: DOC: cluster: Add cluster number note to the docstring of cluster.vq.kmeans > * `#13302 >`__: BUG: Fix ndimage.morphology.distance_transform\_\* argument handling > * `#13303 >`__: CI: prevent Codecov giving false CI failures and wrong PR annotations > * `#13313 >`__: ENH: static typing for qhull > * `#13316 >`__: Pythran implementation of scipy.signal._spectral > * `#13317 >`__: DOC: forward port 1.6.0 relnotes > * `#13319 >`__: ENH: stats: add fast numerical inversion of distribution CDF > * `#13320 >`__: ENH: x0 for differential_evolution > * `#13324 >`__: DOC correct linprog highs versionadded to 1.6 > * `#13326 >`__: MAINT: update numpydoc to v1.1.0 > * `#13327 >`__: DOC: interpolate: improved docstring examples of \`interpolate.interpn()\`... > * `#13328 >`__: ENH: Boost stats distributions > * `#13330 >`__: ENH: stats: add noncentral hypergeometric distributions (Fisher's... > * `#13331 >`__: MAINT/ENH: resolve mypy warnings/errors > * `#13332 >`__: DOC: interpolate: improved docstring of \`interpolate.interp2d\`... > * `#13333 >`__: ENH: stats: Some more _sf and _isf implementations. > * `#13334 >`__: MAINT: stats: Clean up a few defunct comments in _continuous_distns.py > * `#13336 >`__: Pythran version of scipy.optimize._group_columns > * `#13337 >`__: DOC|ENH: type hinting in scipy.integrate.simpson > * `#13346 >`__: ENH: stats: add 'ddof' parameter to the 'variation' function > * `#13355 >`__: ENH: stats: implement _logpdf, _sf and _isf for loggamma. > * `#13360 >`__: ENH|DOC: fix docstring and input validation in interpolate.RectSphereBivariateSpline > * `#13366 >`__: BUG: stats: Don't raise ZeroDivisionError in _unequal_var_ttest_denom > * `#13370 >`__: ENH: fix ARGUS distribution for small parameters in stats > * `#13371 >`__: ENH: stats: add \`bootstrap\` for estimating confidence interval... > * `#13373 >`__: BUG: io/matlab: preserve dimensions of empty >=2D arrays > * `#13374 >`__: ENH: stats: add skewed Cauchy distribution > * `#13379 >`__: BUG: sparse: fix verbosity in sparse lsqr > * `#13383 >`__: TST: stats: mark many dimension permutation t-test slow > * `#13384 >`__: MAINT: Make keywords array static > * `#13388 >`__: PERF: Avoid duplicate mean calculations in skew and kurtosis > * `#13389 >`__: DOC: Fix deprecated directive syntax > * `#13390 >`__: DOC: Correct line length for Parameter Section underline > * `#13393 >`__: MAINT: stats: allow wishart dim - 1 < df < dim > * `#13395 >`__: DOC: fix typo in setup.py warning message > * `#13396 >`__: BUG: Fix MLE for Nakagami \`nakagami_gen.fit\` > * `#13397 >`__: MAINT:linalg: Fix tgsen family wrapper and ordqz > * `#13406 >`__: TST: add error handling tests for sparse BSR ctor > * `#13413 >`__: DOC: ultra-quickstart guide > * `#13418 >`__: BUG: Fix moment returning inconsistent types and shapes > * `#13423 >`__: DOC: Update example for leaf_label_func/dendrogram > * `#13431 >`__: ENH: stats: override _rvs for nhypergeom > * `#13432 >`__: Add indicator in NDInterpolator docstring that N must be > 1 > * `#13434 >`__: DOC: stats: note relationship between scaled-inv-chi2 and invgamma > * `#13436 >`__: ENH: interpolate: add input validation to check input x-y is... > * `#13441 >`__: ENH: add functionality \`barnard_exact\` test to scipy.stats. > * `#13443 >`__: MAINT: stats: Updates for skewcauchy > * `#13444 >`__: DOC: clarify range of \`a\` parameter fpr johnsonsu/johnsonsb > * `#13445 >`__: DOC: fix runtests guidelines. > * `#13446 >`__: MAINT: stats: Add _fitstart method to wrapcauchy. > * `#13447 >`__: DEV: Update development Docker image > * `#13448 >`__: ENH: Add annotations for \`scipy.spatial.distance\` > * `#13451 >`__: DOC: minor formatting. > * `#13458 >`__: DOC: indent see also. > * `#13460 >`__: DOC: stats: Fix link to Cramer-von Mises wikipedia article. > * `#13461 >`__: DOC: reorganize scipy.stats overview docs page > * `#13463 >`__: DOC: misc formatting fixes > * `#13466 >`__: DOC: Typo in see also s/SmoothUni/SmoothBi/g > * `#13467 >`__: DOC: optimize: add description about \`tol\` argument for \`minimize\`. > * `#13469 >`__: MAINT: Refactor optimization methods to use scipy.stats.qmc > * `#13477 >`__: CI: pin numpy to 1.19.5 for the three macOS CI jobs > * `#13478 >`__: DOC: fix typos where double :: for Sphinx directives were missing > * `#13481 >`__: CI: pin numpy to 1.19.5 in the 4 parallel Windows builds on Azure > * `#13482 >`__: CI: use numpy 1.20.0 again in macOS CI > * `#13483 >`__: DOC: Multiple documentation syntax fixes. > * `#13484 >`__: Move some pythran config from CI to setup > * `#13487 >`__: DOC: add a tutorial about scipy.stats.qmc > * `#13492 >`__: ENH: GH actions should not run on forks > * `#13493 >`__: DEV: Enable gitpod for SciPy > * `#13495 >`__: DOC One-word typo in the documentation of optimize.linprog_simplex > * `#13499 >`__: DOC: describe LSAP implementation > * `#13502 >`__: BUG: Bounds created with lists weren't working for Powell > * `#13507 >`__: MAINT, TST: stats: centralize invalid parameters list for all... > * `#13510 >`__: DOC: stats: fix small doc errors in 'multivariate_hypergeom' > * `#13513 >`__: DOC: Added math notation in examples in ltisys.py > * `#13514 >`__: ENH: simplify low_0_bit function for Sobol > * `#13515 >`__: ENH: optimize: add bound constraint support for nelder-mead solver > * `#13516 >`__: DOC: reduce LaTeX usage for johnsonb docstring > * `#13519 >`__: BLD: remove build_sphinx support from setup.py > * `#13527 >`__: TST: stats: xfail ttest_ind_randperm_alternative2 on 32 bit > * `#13530 >`__: DOC: correct comparisons between median filter functions > * `#13532 >`__: ENH: release the GIL inside medfilt2d > * `#13538 >`__: DOC: optimize: fix minor doc error in 'fmin_powell' (#13511) > * `#13546 >`__: DOC: fix list of "mode" options for ndimage > * `#13549 >`__: ENH: stats: add 'alternative' keyword to some normality tests. > * `#13551 >`__: MAINT: add git to docker env > * `#13552 >`__: MAINT: stats: remove float_power shim > * `#13553 >`__: DOC: use support rather than a/b in stats tutorial > * `#13560 >`__: MAINT: optimize: improve linprog error message for sparse input... > * `#13562 >`__: MAINT: optimize: using np.isclose instead of _within_tolerance. > * `#13566 >`__: ENH: Speed up hdquantiles_sd() > * `#13569 >`__: BENCH: optimize: benchmark only HiGHS methods; add bigger linprog... > * `#13574 >`__: DOC: In description of cluster.hierarchy.dendrogram 'level' parameter,... > * `#13576 >`__: ENH: improve discrepancy performance > * `#13579 >`__: TST: Add pybind11 to tox environments > * `#13583 >`__: BUG: Fix Dockerfile apt-get installs > * `#13588 >`__: MAINT: forward port 1.6.1 relnotes. > * `#13593 >`__: BUG: stats: preserve sample dtype for bin edges > * `#13595 >`__: ENH: interpolate: add RBFInterpolator > * `#13596 >`__: DOC: Fix indentation in new_stats_distribution.rst.inc > * `#13601 >`__: Add dpss for get_window function > * `#13604 >`__: DOC: Correct dual annealing visiting param range. > * `#13605 >`__: Add Codecov badge to README > * `#13607 >`__: MAINT: stats: fix crystalball entropy > * `#13611 >`__: Better argument preparation for distributions in stats package. > * `#13612 >`__: Add docker run command for Windows cmd > * `#13613 >`__: MAINT, CI: mypy: fix typing errors + add mypy to CI > * `#13616 >`__: FIX: Return correct output for invgauss.cdf when mu is very small > * `#13617 >`__: MAINT: accept numbers and iterables for width in find_peaks_cwt > * `#13620 >`__: CI: disable the mypy CI job (partial revert of gh-13613) > * `#13621 >`__: DOC: signal: use array_like for input types > * `#13622 >`__: MAINT: clean up some unused files, make \`mypy scipy\` pass > * `#13623 >`__: CI: enable Mypy CI job again > * `#13624 >`__: TST: test more values for \`visiting_param\` input to \`dual_annealing\` > * `#13625 >`__: Rename integrate.simps to integrate.simpsons in documentation... > * `#13631 >`__: ENH: add a \`stats.differential_entropy\` function > * `#13633 >`__: BUG: stats.binned_statistic_2d user function expecting arrays > * `#13641 >`__: ENH: Added degrees parameter to rotvec > * `#13645 >`__: MAINT: mypy: don't install numpy-stubs > * `#13649 >`__: BUG: sparse: csc_matrix.argmax() integer overflow > * `#13650 >`__: ENH: stats: add 'alternative' parameter to ansari > * `#13652 >`__: DOC: fix eigvalsh documentation (#13651) > * `#13654 >`__: BUG: Fix LatinHypercubes > * `#13656 >`__: DOC: Fix PCHIP references > * `#13657 >`__: TST: remove IPython warning in debug session > * `#13658 >`__: Remove spurious quotes in docstring > * `#13661 >`__: ENH: stats: improve efficiency of / fix bug in exact permutation... > * `#13667 >`__: MAINT: Make latest Docker image default > * `#13668 >`__: MAINT: add .theia/ to .gitignore > * `#13669 >`__: BLD: change SCIPY_USE_PYTHRAN default to \`1\` > * `#13676 >`__: ENH Small improvements for LSQR with damp > * `#13678 >`__: MAINT: add Pythran-generated files to .gitignore > * `#13679 >`__: MAINT: move the \`conda develop .\` in the Gitpod config > * `#13680 >`__: DOC: Add cKDTree note comparing it with KDTree > * `#13681 >`__: DOC: build doc updates on Pythran, compiled code, and cleanups > * `#13683 >`__: BUG: mmwrite correctly serializes non skew-symmetric arrays > * `#13684 >`__: FIX: fix numerical overflow in gamma.isf method > * `#13685 >`__: BUG: fix cosine distance range to 0-2 > * `#13694 >`__: MAINT: fix warning emitted when NumPy version is incorrect > * `#13696 >`__: ENH: support trimming in ttest_ind > * `#13698 >`__: BUG: stats: Fix spurious warnings generated by arcsine.pdf > * `#13701 >`__: DEV: scipy.interpolate b-splines (periodic case) > * `#13702 >`__: DEP: Clean up spent deprecations in spatial.distance > * `#13703 >`__: MAINT: fix issues found by static code analysis > * `#13706 >`__: ENH: stats: Implement sf and isf for the laplace distribution. > * `#13711 >`__: MAINT: stats: fix broadcasting for scipy.stats.entropy > * `#13712 >`__: BUG: stats: Override _fitstart for the invweibull distribution. > * `#13713 >`__: DOC: update toolchain.rst to reflect windows universal C runtime > * `#13714 >`__: MAINT: stats: Remove an unused list from test_continuous_basic.py. > * `#13715 >`__: MAINT: stats: No need to suppress frechet deprecation warnings. > * `#13716 >`__: MAINT: use super() as described by PEP 3135 > * `#13718 >`__: MAINT: new-style class, removing inheritance to object > * `#13721 >`__: MAINT: add a type-ignore for mpmath (#13721) > * `#13723 >`__: MAINT: mypy: ignore mpmath imports in mypy.ini > * `#13724 >`__: DOC: pydata sphinx theme > * `#13725 >`__: BENCH: add benchmark for Kendalltau > * `#13727 >`__: CI: simplify Pythran configuration setup for Azure > * `#13731 >`__: MAINT: stats: Some flake8-driven clean up. > * `#13732 >`__: ENH: stats: Studentized Range Distribution > * `#13735 >`__: DOC: correct Voronoi docstring > * `#13738 >`__: DOC: add example to wright_bessel > * `#13739 >`__: ENH: stats: Implement _sf and _isf for the chi distribution. > * `#13741 >`__: MAINT: prevent overwriting of x in minimize > * `#13747 >`__: DOC: Add note for interp1d for non-unique x-values > * `#13749 >`__: MAINT: forward port 1.6.2 relnotes > * `#13759 >`__: MAINT: simpson small performance speedups > * `#13765 >`__: FIX: npymath missing causing npy_log1p to be unknown > * `#13768 >`__: BENCH: Add missing pythran dependency > * `#13770 >`__: ENH: stats.contingency: Add the sparse option to crosstab. > * `#13774 >`__: DEP: Deprecate squeezing input vectors in spatial.distance > * `#13775 >`__: Enable trust region methods to use a finite difference Hessian... > * `#13777 >`__: DOC: Fix Ubuntu/Debian installation instructions > * `#13778 >`__: DOC: remove references to RandomState > * `#13782 >`__: MAINT: LBFGSB err msg on MAXLS changed closes #11718 > * `#13785 >`__: BENCH: Add benchmark for cdist/pdist with weights > * `#13786 >`__: MAINT: Prepare cdist/pdist for C++ rework > * `#13787 >`__: MAINT: stats: move entropy and differential_entropy functions... > * `#13790 >`__: DOC: Add some dependencies for Dockerfile doc of scipy development. > * `#13792 >`__: BUG: stats: Fix broadcasting in wrapcauchy.cdf > * `#13795 >`__: MAINT: stats: add hypotests to __all__ in init.py, not stats.py > * `#13797 >`__: MAINT: stats: probplot: don't plot least-squares fit line unless... > * `#13798 >`__: MAINT: fix incorrect code comment in \`hierarchy.to_tree\` > * `#13802 >`__: DEV: add environment.yml file for development with conda/mamba > * `#13803 >`__: DOC: fix doc build warning about arxiv role already being registered > * `#13804 >`__: DOC+MAINT: optimize: lb and ub in the Bounds constructor are... > * `#13807 >`__: MAINT: Dont use parallel Sphinx > * `#13808 >`__: MAINT: cluster.to_tree: more idiomatic looping over rows of matrix... > * `#13810 >`__: MAINT: add a CODEOWNERS file > * `#13811 >`__: MAINT: Add ci skip to azp > * `#13814 >`__: ENH/DOC: pydata sphinx theme polishing > * `#13817 >`__: DOC: Misc parameter typo and casing in scipy/linalg/_decomp_ldl.py > * `#13818 >`__: MAINT: stats: keep \`entropy\` importable from \`scipy.stats.distributions\` > * `#13820 >`__: BUG: update _kendall_p_exact ValueError to f-string > * `#13831 >`__: FIX:DEP: Allow better tolerance control for pinv and pinvh and... > * `#13832 >`__: BUG: stats: Fix rvs for levy_stable when alpha=1 > * `#13833 >`__: MAINT: Add inline type hintings for stats.qmc > * `#13836 >`__: MAINT: Fix a couple compiler warnings. > * `#13838 >`__: TST: relax test tolerances for BinomTest > * `#13841 >`__: BLD: add \`-std=c99\` flag to scipy.special extensions using... > * `#13845 >`__: ENH: stats: add \`method\` parameter to \`differential_entropy\`... > * `#13847 >`__: TST: skip on optimize failure on macOS, mark one as xfail > * `#13848 >`__: DOC: optimize: move Nelder Mead doc from Unconstrained minimization... > * `#13849 >`__: DOC: Roadmap update > * `#13852 >`__: CI: fix temporary wrong brew version from GitHub > * `#13854 >`__: ENH: Update Scipy Gitpod > * `#13859 >`__: TST: fix ultra-slow ttest permutations test > * `#13860 >`__: MAINT: clean up LSAP error checking > * `#13863 >`__: DOC: remove seed in examples > * `#13865 >`__: DOC: optimize: The bounds param of differential_evolution is... > * `#13866 >`__: MAINT: special: Remove an unused variable from _poly_approx in... > * `#13867 >`__: DOC: stats: Explain meaning of alternatives for fisher_exact. > * `#13868 >`__: CI: fix the failing job on linux. > * `#13870 >`__: MAINT: move LSAP rectangular matrix handling into solver code > * `#13871 >`__: DOC: Add Gitpod documentation > * `#13876 >`__: Workflow : Add nightly release of NumPy in linux workflows > * `#13877 >`__: DOC: Conform to numpydoc + uniformity. > * `#13879 >`__: BUG: signal: fix get_window argument handling and add tests. > * `#13881 >`__: CI: remove .travis.yml, remove codecov from CircleCI > * `#13882 >`__: BLD: ensure incrementing dev version strings > * `#13886 >`__: TST: optimize: skip test_network_flow_limited_capacity w/ UMFPACK... > * `#13888 >`__: MAINT: Fix issues involving elif conditions > * `#13891 >`__: Rename InivariateSpline to UnivariateSpline > * `#13893 >`__: ENH: linprog HiGHS marginals/sensitivy analysis > * `#13894 >`__: DOC: Add blank line before \`Return\` section. > * `#13897 >`__: DOC: BLD: fix doc build version check, and improve build time > * `#13903 >`__: MAINT: Gitpod fixes > * `#13907 >`__: ENH: Rewrite minkowski metric in C++ with pybind11 > * `#13909 >`__: Revert "Workflow : Add nightly release of NumPy in linux workflows" > * `#13910 >`__: DOC: update Readme > * `#13911 >`__: MAINT: use dict built-in rather than OrderedDict > * `#13920 >`__: BUG: Reactivate conda environment in init > * `#13925 >`__: BUG: stats: magnitude of Yates' correction <= abs(observed-expected)... > * `#13926 >`__: DOC: correct return type in disjoint_set.subsets docstring > * `#13927 >`__: DOC/MAINT: Add copyright notice to qmc.primes_from_2_to > * `#13928 >`__: BUG: DOC: signal: fix need argument config and add missing doc... > * `#13929 >`__: REL: add PEP 621 (project metadata in pyproject.toml) support > * `#13931 >`__: MAINT: special: get rid of _logit.c.src > * `#13934 >`__: ENH: signal: make \`get_window\` supports \`general_cosine\`... > * `#13940 >`__: MAINT: QMCEngine d input validation > * `#13941 >`__: MAINT: forward port 1.6.3 relnotes > * `#13944 >`__: BUG: spatial: fix weight handling of \`distance.sokalmichener\`. > * `#13947 >`__: MAINT: Remove duplicate calculations in sokalmichener > * `#13949 >`__: DOC: minor grammar fixes in minimize and KDTree.query > * `#13951 >`__: ENH: Add Boschloo exact test to stats > * `#13956 >`__: ENH: spatial: add \`axis\` and \`keepdims\` optional argument... > * `#13963 >`__: MAINT: stats: Fix unused imports and a few other issues related... > * `#13971 >`__: DOC: Add Karl Pearson's reference to chi-square test > * `#13972 >`__: ENH: cluster: add an optional argument \`seed\` for \`kmeans\`... > * `#13973 >`__: BLD: fix build warnings for causal/anticausal pointers in ndimage > * `#13975 >`__: ENH: set empty array norm to zero. > * `#13977 >`__: MAINT: signal: replace distutils templating with tempita > * `#13978 >`__: MAINT: improve validations and keyword only arguments for some... > * `#13979 >`__: ENH: Add Inverse of Log CDF of Normal Distribution > * `#13983 >`__: Fixing \`ndimage.watershed_ift\` tutorial's documentation > * `#13987 >`__: DOC: Adding examples to docstrings in morphology: white_tophat,... > * `#13989 >`__: DOC: interpolate: improve examples of \`RegularGridInterpolator\`... > * `#13990 >`__: MAINT, DOC: optimize: Make the input validation explanation clear... > * `#13992 >`__: Workflow : Add nightly release of NumPy in linux workflows > * `#13995 >`__: Doc: Continuous integration information > * `#14000 >`__: BUG: sparse: Fix DIA.diagonal bug and add a regression test > * `#14004 >`__: ENH: Fast addition dia matrix > * `#14006 >`__: MAINT: optimize: add validation to check func parameter number... > * `#14008 >`__: BUG: Raise exception for inconsistent WAV header > * `#14009 >`__: DEP: Remove usage of numpy.compat > * `#14010 >`__: MAINT: add support for wheel DL proxy > * `#14012 >`__: DOC: Broaden Exact Test Reference > * `#14015 >`__: MAINT: remove brew update > * `#14017 >`__: BENCH: Add more formats for sparse arithmetic > * `#14018 >`__: BENCH: add benchmark for f_oneway > * `#14020 >`__: MAINT: modify np.int \_ to np.int32 to make it the same for 32/64... > * `#14023 >`__: MAINT: Fix clang build and remove some unicode characters > * `#14025 >`__: BUG: sparse: fix DIA.setdiag issue > * `#14026 >`__: TST: optimize: xfail part of test_powell > * `#14029 >`__: CI: github macos fix > * `#14030 >`__: MAINT: use 'yield from ' (PEP 380) > * `#14031 >`__: MAINT: new-style class, removing inheritance to object > * `#14032 >`__: MAINT: CXXFLAGS for Pythran > * `#14033 >`__: ENH: Port sqeuclidean and braycurtis to _distance_pybind > * `#14034 >`__: MAINT: Clean-up 'next = __next__' > * `#14045 >`__: MAINT: bump PYVER pavement.py > * `#14047 >`__: DEV: initialize boost submodule in Gitpod Dockerfile > * `#14051 >`__: BLD: if boost submodule content is missing, error out early > * `#14052 >`__: DOC: missing submodule init information > * `#14057 >`__: DOC: special: Add Examples to \`psi\` docstring > * `#14058 >`__: BUG: fixed a dtype bug in linalg.solve. > * `#14060 >`__: Doc: Fix typo in documentation of spence function. > * `#14061 >`__: MAINT:stats: Type annotations for _sobol.pyx > * `#14062 >`__: DOC: A few small fixes in quickstart_gitpod.rst > * `#14063 >`__: DOC: signal: add Add Examples to \`cont2discrete\` docstring > * `#14064 >`__: DOC: optimize: Add Examples to fmin_bfgs docstring > * `#14065 >`__: Add example for scipy stats.trim1 under docstring > * `#14066 >`__: DOC add example to scipy.special.hermite > * `#14067 >`__: DOC add alpha docstring description, add example to docstring > * `#14070 >`__: DOC add parameters, return, and example to docstring > * `#14072 >`__: MAINT/TST: Fix tests failing with the nightly build of numpy. > * `#14075 >`__: DOC Improve the code snippet in signal.hilbert docstring. > * `#14076 >`__: DOC: Document Jensen-Shannon distance being accepted by cdist/pdist > * `#14079 >`__: BLD: Avoid importing scipy.stats during cythonize stage > * `#14082 >`__: MAINT: Remove old, commented extract_diagonal > * `#14083 >`__: MAINT: sparse: Remove defunct function extract_diagonal > * `#14085 >`__: ENH: Implement canberra distance in _distance_pybind > * `#14086 >`__: MAINT: Clear scipy namespace of entries better imported from... > * `#14088 >`__: Install Pythran from sources for python 3.10 > * `#14092 >`__: BUG: Fixes issue with clang. > * `#14094 >`__: DOC: Correct the inconsistence definition of Default in class... > * `#14105 >`__: TST: stats: mannwhitneyu: check that mstats and stats mannwhitneyu... > * `#14106 >`__: DOC: stats.mstats: mannwhitneyu: the returned statistic is the... > * `#14107 >`__: ENH: stats: bootstrap: add \`vectorized\` parameter; automatically... > * `#14109 >`__: BUG: fix two issues in the fblas signature files > * `#14110 >`__: DOC: mailmap update > * `#14113 >`__: ENH: stats: bootstrap: add \`paired\` parameter > * `#14116 >`__: MAINT: fix deprecated Python C API usage in odr > * `#14118 >`__: DOC: 1.7.0 release notes > * `#14125 >`__: DOC: fix typo > * `#14126 >`__: ENH: stats: bootstrap: add \`batch\` parameter to control batch... > * `#14127 >`__: CI: upgrade pip in benchmarks CI run > * `#14130 >`__: BUG: Fix trust-constr report TypeError if verbose is set to 2... > * `#14133 >`__: MAINT: interpolate: raise NotImplementedError not ValueError > * `#14139 >`__: FIX/DOC: lsqr doctests print failure > * `#14145 >`__: MAINT: 1.7.x version pins ("backport") > * `#14146 >`__: MAINT: commit count if no tag > * `#14164 >`__: TST, BUG: fix rbf matrix value > * `#14166 >`__: CI, MAINT: restrictions on pre-release CI > * `#14171 >`__: TST: signal: Bump tolerances for a test of Gustafsson's... > * `#14175 >`__: TST: stats: Loosen tolerance in some binomtest tests. > * `#14182 >`__: MAINT: stats: Update ppcc_plot and ppcc_max docstring. > * `#14195 >`__: MAINT: download-wheels missing import > * `#14230 >`__: REL: stop shipping generated Cython sources in sdist > > Checksums > ========= > > MD5 > ~~~ > > 276042cf01da2970b83883375b036eef scipy-1.7.0-cp37-cp37m-macosx_10_9_x86_64.whl > 8149ae5442d3ca11d477893b9797b565 scipy-1.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 32d249d21ec09fe351b471cd578a54bd scipy-1.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl > 6f9b11e29d59e276729ec706c38961e2 scipy-1.7.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl > c4b23f53f47888744713a25000ed73fd scipy-1.7.0-cp37-cp37m-win32.whl > 767b17455eba48cbe3949a4a8609d9e7 scipy-1.7.0-cp37-cp37m-win_amd64.whl > ac0f5c087893240b13a78dbc80e002e1 scipy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl > e2e369078c6b7ca29c952cb9971bc154 scipy-1.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 2f4d2c55937133983031428405ef50e5 scipy-1.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl > 092c9b3117c2acc378be46fac846b088 scipy-1.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 08a560d8f936ea64d65471382d829b43 scipy-1.7.0-cp38-cp38-win32.whl > 330c71d5ae61a6f1a96573ee5e2dc536 scipy-1.7.0-cp38-cp38-win_amd64.whl > 535e0df93c3005acb69cf32eed57e5d7 scipy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl > 003d015e6c75d683f8e27e80d731f782 scipy-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 9306001377da7b018ac0215eed2ba022 scipy-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl > ed943492a5f97a086c96b6d158028ba4 scipy-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 89499df789ff766d6140ab50b8a56745 scipy-1.7.0-cp39-cp39-win32.whl > daf4ab11d37576bd792ece587e8f7ae6 scipy-1.7.0-cp39-cp39-win_amd64.whl > 8776cb3e803f07c74ddf1045eb177904 scipy-1.7.0.tar.gz > a0690bb8aa427fc0a3a59946b532763c scipy-1.7.0.tar.xz > f1f1970a34948e59b37e9706a3dfca0e scipy-1.7.0.zip > > SHA256 > ~~~~~~ > > 821e75f5c16cd7b0ab0ffe7eb9917e5af7b48c25306b4777287de8d792a5f7f3 scipy-1.7.0-cp37-cp37m-macosx_10_9_x86_64.whl > 3e7df79b42c3015058a5554bfeab6fd4c9906c46560c9ddebb5c652840f3e182 scipy-1.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 0572256c10ddd058e3d315c555538671ddb2737f27eb56189bfbc3483391403f scipy-1.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl > b77ee5e3a9507622e7f98b16122242a3903397f98d1fe3bc269d904a9025e2bc scipy-1.7.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 53116abd5060a5b4a58489cf689bee259b779e6b7ecd4ce366e7147aa7c9626e scipy-1.7.0-cp37-cp37m-win32.whl > e7b733d4d98e604109715e11f2ab9340eb45d53f803634ed730039070fc3bc11 scipy-1.7.0-cp37-cp37m-win_amd64.whl > 4ef3d4df8af40cb6f4d4eaf7b02780109ebabeec334cda26a7899ec9d8de9176 scipy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl > bd4399d4388ca0239a4825e312b3e61b60f743dd6daf49e5870837716502a92a scipy-1.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 80df8af7039bce92fb4cd1ceb056258631b11b3c627384e2d29bb48d44c0cae7 scipy-1.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl > 6130e22bf6ee506f7cddde7e0515296d97eb6c6c94f7ef5103c2b77aec5833a7 scipy-1.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 97ca4552ace1c313707058e774609af59644321e278c3a539322fab2fb09b943 scipy-1.7.0-cp38-cp38-win32.whl > c5d012cb82cc1dcfa72609abaabb4a4ed8113e3e8ac43464508a418c146be57d scipy-1.7.0-cp38-cp38-win_amd64.whl > 5eb8f054eebb351af7490bbb57465ba9662c4e16e1786655c6c7ed530eb9a74e scipy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl > 7f4b89c223bd09460b52b669e2e642cab73c28855b540e6ed029692546a86f8d scipy-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 2e685fdbfa5b989af4338b29c408b9157ea6addec15d661104c437980c292be5 scipy-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl > 3595c8b64970c9e5a3f137fa1a9eb64da417e78fb7991d0b098b18a00b776d88 scipy-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 5a983d3cebc27294897951a494cebd78af2eae37facf75d9e4ad4f1f62229860 scipy-1.7.0-cp39-cp39-win32.whl > aef6e922aea6f2e6bbb539b413c85210a9ee32757535b84204ebd22723e69704 scipy-1.7.0-cp39-cp39-win_amd64.whl > 998c5e6ea649489302de2c0bc026ed34284f531df89d2bdc8df3a0d44d165739 scipy-1.7.0.tar.gz > 0564d1091b8db03418356f0839cc4bf73b9bf7cd1089586eb690208e1f44bb8d scipy-1.7.0.tar.xz > 3a0ec7390c491140551f6493611a30605144a4d47c0410e81f49921ada026993 scipy-1.7.0.zip > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Sun Jun 20 23:02:42 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Sun, 20 Jun 2021 20:02:42 -0700 Subject: [Numpy-discussion] =?utf-8?q?copy=3D=22never=22_discussion_and_n?= =?utf-8?q?o_deprecation_cycle=3F?= In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> Message-ID: On Sun, Jun 20, 2021, at 18:53, Charles R Harris wrote: > > On Fri, Jun 18, 2021 at 8:52 AM Stefan van der Walt wrote: >> __ >> On Thu, Jun 17, 2021, at 16:23, Stephan Hoyer wrote: >>> This happens all the time. Even if we make copy='never' an error *today*, users will be encountering existing versions of NumPy for years into the future, so we won't be able to change the behavior of copy='never' for a very long time. Our deprecation policy says we would need to wait at least one year for this, but frankly I'm not sure that's enough for the possibility of silent bugs. 3-4 years might be more realistic. >> >> If we go the enum route, we may just as well deprecate string arguments at the same time so that we have the flexibility to introduce them again in the future. That makes sense to me, but I think this would not preclude the enum from being introduced right now. If we make this change, the enum will become the only mechanism by which to get the behavior we currently have (copy-if-needed). St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From gsingh at quansight.com Sun Jun 20 23:46:35 2021 From: gsingh at quansight.com (Gagandeep Singh) Date: Mon, 21 Jun 2021 09:16:35 +0530 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> Message-ID: Hi, I have recently joined the mailing list and have gone through the previous discussions on this thread. I would like to share my analysis (advantages and disadvantages) of three possible alternatives (Enum, String, boolean) to support the proposed feature. *Enum* Advantages 1. Compatibility - Enums (currently, `np.CopyMode`) can be added to support the never copy feature without breaking any code which uses NumPy. Current values for `copy` arguments are `True` and `False` which can be easily mapped to two members of the above enum and the code will keep working as it used to be. Considering the large user base of NumPy, I think this is the most significant point to be considered. 2. Clarity and Consistency - Enums inherently provide consistency i.e., all the values of the copy argument will be of the same type and hence, one wouldn't have to worry much about using some special values just for the sake of prohibiting a deep copy. Also, Enums make the intention clear (np.CopyMode.ALWAYS, etc. already reflect the expected behaviour). Booleans like True and False are a bit cryptic in nature. In fact, the current behaviour of False is also a bit confusing. Enums can help in doing away with this issue without breaking anything which uses previous NumPy versions. 3. Code will break loudly - If anyone will try to use `np.CopyMode` on a previous version then the code will break loudly (AttributeError) rather than doing unpredictable things silently (fixing these is much more painful, especially in large code bases than updating the version). Disadvantages 1. Polluting Namespace - Enums do pollute the global namespace. Maybe it's an unavoidable thing which comes with the usage of Enums. 2. Inconsistent with APIs where strings are used - Many NumPy API use strings for supporting various options for an argument. For example, `np.linalg.qr` accepts strings for different modes. I think this would be the first time (if it happens) for an Enum to be used in such a scenario. *Strings* Advantages 1. Consistent with other NumPy APIs - As I said above, strings will keep things consistent across NumPy. 2. Clarity and Consistency - Strings too provide clarity of intention regarding the behaviour of the code. If we support strings for all the cases of copy argument then it would be consistent as well. 3. No pollution of namespace. I am not sure but supporting strings and booleans at least in new NumPy versions should be possible though doing that would not be as easy as Enums. Disadvantages 1. Silent and Unpredictable behaviour on previous NumPy versions - Since, strings can be interpreted as Booleans internally, if anyone passes any non-empty string, it will map to `True` and hence the code will always do a deep copy, irrespective of the argument. So, there would be cases, when this thing will go unnoticed by the user, the unwanted consequences of which I think shouldn't be ignored while making a choice for this feature. *Boolean (True/False/None)* Advantages 1. Easy to extend - As of now True and False are already supported. None can additionally be used to support never copy. Disadvantages 1. Silent behaviour in case of None and False - If someone passes None to some previous NumPy version then it may behave as False. Hence no error would be raised, but yeah the copy will be made only if needed. 2. Cryptic - The intention is not clearly reflected in these three values (in fact False is a bit relaxed in nature i.e., instead of never doing a copy it does only if needed which should have been the case with None). *Summary* To the best of my understanding, I think Booleans are not a good option when compared to String and Enums. Now, the choice is whether we are okay with unpredictable behaviour of user code in case of strings to reject Enums or we are okay with pollution of namespace to easily support previous API without breaking anything for future versions. Please let me know if I missed any important points. Thanks. On Mon, Jun 21, 2021 at 8:33 AM Stefan van der Walt wrote: > On Sun, Jun 20, 2021, at 18:53, Charles R Harris wrote: > > > On Fri, Jun 18, 2021 at 8:52 AM Stefan van der Walt > wrote: > > > On Thu, Jun 17, 2021, at 16:23, Stephan Hoyer wrote: > > This happens all the time. Even if we make copy='never' an error *today*, > users will be encountering existing versions of NumPy for years into the > future, so we won't be able to change the behavior of copy='never' for a > very long time. Our deprecation policy says we would need to wait at least > one year for this, but frankly I'm not sure that's enough for > the possibility of silent bugs. 3-4 years might be more realistic. > > > If we go the enum route, we may just as well deprecate string arguments at > the same time so that we have the flexibility to introduce them again in > the future. > > > That makes sense to me, but I think this would not preclude the enum from > being introduced right now. If we make this change, the enum will become > the only mechanism by which to get the behavior we currently have > (copy-if-needed). > > St?fan > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Mon Jun 21 00:05:45 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Sun, 20 Jun 2021 22:05:45 -0600 Subject: [Numpy-discussion] ANN: SciPy 1.7.0 In-Reply-To: References: Message-ID: On Sun, Jun 20, 2021 at 7:38 PM Charles R Harris wrote: > > > On Sun, Jun 20, 2021 at 1:45 PM Tyler Reddy > wrote: > >> Hi all, >> >> On behalf of the SciPy development team I'm pleased to announce >> the release of SciPy 1.7.0. >> >> Sources and binary wheels can be found at: >> https://pypi.org/project/scipy/ >> and at: >> https://github.com/scipy/scipy/releases/tag/v1.7.0 >> >> One of a few ways to install this release with pip: >> >> pip install scipy==1.7.0 >> >> > > > Thanks Tyler. > > You may want to make the post to the python-announce list BCC so that replies to the announcement don't go there. The list administrator doesn't like that and rejects those posts. Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Mon Jun 21 03:20:05 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Mon, 21 Jun 2021 09:20:05 +0200 Subject: [Numpy-discussion] [SciPy-User] ANN: SciPy 1.7.0 In-Reply-To: <0CE4BE69-971D-401E-AF82-B34F6BF3E6A5@fastmail.com> References: <0CE4BE69-971D-401E-AF82-B34F6BF3E6A5@fastmail.com> Message-ID: On Mon, Jun 21, 2021 at 4:24 AM Juan Nunez-Iglesias wrote: > It appears that previous doc links have been broken without redirects? > e.g.: > > > https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.distance_transform_edt.html#scipy.ndimage.distance_transform_edt > > is 404. The new link is at: > > > https://docs.scipy.org/doc/scipy/reference/reference/generated/scipy.ndimage.distance_transform_edt.html#scipy.ndimage.distance_transform_edt > > Note the extra ?reference? in the URL. Was this a conscious choice or an > unforeseen side effect of moving to the PyData theme? There?s a *lot* of > links to the docs out there. > Argh, definitely a bug. The bug will be in the uploader, because https://scipy.github.io/devdocs/reference/generated/scipy.linalg.solve.html#scipy.linalg.solve looks fine. Will try to resolve that later today. Cheers, Ralf > Juan. > > On 21 Jun 2021, at 5:44 am, Tyler Reddy wrote: > > Hi all, > > On behalf of the SciPy development team I'm pleased to announce > the release of SciPy 1.7.0. > > Sources and binary wheels can be found at: > https://pypi.org/project/scipy/ > and at: > https://github.com/scipy/scipy/releases/tag/v1.7.0 > > One of a few ways to install this release with pip: > > pip install scipy==1.7.0 > > ===================== > SciPy 1.7.0 Release Notes > ===================== > > SciPy 1.7.0 is the culmination of 6 months of hard work. It contains > many new features, numerous bug-fixes, improved test coverage and better > documentation. There have been a number of deprecations and API changes > in this release, which are documented below. All users are encouraged to > upgrade to this release, as there are a large number of bug-fixes and > optimizations. Before upgrading, we recommend that users check that > their own code does not use deprecated SciPy functionality (to do so, > run your code with ``python -Wd`` and check for ``DeprecationWarning`` s). > Our development attention will now shift to bug-fix releases on the > 1.7.x branch, and on adding new features on the master branch. > > This release requires Python 3.7+ and NumPy 1.16.5 or greater. > > For running on PyPy, PyPy3 6.0+ is required. > > > **************************** > Highlights of this release > **************************** > > - A new submodule for quasi-Monte Carlo, `scipy.stats.qmc`, was added > - The documentation design was updated to use the same PyData-Sphinx > theme as > NumPy and other ecosystem libraries. > - We now vendor and leverage the Boost C++ library to enable numerous > improvements for long-standing weaknesses in `scipy.stats` > - `scipy.stats` has six new distributions, eight new (or overhauled) > hypothesis tests, a new function for bootstrapping, a class that enables > fast random variate sampling and percentile point function evaluation, > and many other enhancements. > - ``cdist`` and ``pdist`` distance calculations are faster for several > metrics, > especially weighted cases, thanks to a rewrite to a new C++ backend > framework > - A new class for radial basis function interpolation, `RBFInterpolator`, > was > added to address issues with the `Rbf` class. > > We gratefully acknowledge the Chan-Zuckerberg Initiative Essential Open > Source > Software for Science program for supporting many of the improvements to > `scipy.stats`. > > *************** > New features > *************** > > `scipy.cluster` improvements > ====================== > > An optional argument, ``seed``, has been added to ``kmeans`` and > ``kmeans2`` to > set the random generator and random state. > > `scipy.interpolate` improvements > ========================= > > Improved input validation and error messages for ``fitpack.bispev`` and > ``fitpack.parder`` for scenarios that previously caused substantial > confusion > for users. > > The class `RBFInterpolator` was added to supersede the `Rbf` class. The new > class has usage that more closely follows other interpolator classes, > corrects > sign errors that caused unexpected smoothing behavior, includes polynomial > terms in the interpolant (which are necessary for some RBF choices), and > supports interpolation using only the k-nearest neighbors for memory > efficiency. > > `scipy.linalg` improvements > ===================== > > An LAPACK wrapper was added for access to the ``tgexc`` subroutine. > > `scipy.ndimage` improvements > ======================= > > `scipy.ndimage.affine_transform` is now able to infer the ``output_shape`` > from > the ``out`` array. > > `scipy.optimize` improvements > ======================= > > The optional parameter ``bounds`` was added to > ``_minimize_neldermead`` to support bounds constraints > for the Nelder-Mead solver. > > ``trustregion`` methods ``trust-krylov``, ``dogleg`` and ``trust-ncg`` can > now > estimate ``hess`` by finite difference using one of > ``["2-point", "3-point", "cs"]``. > > ``halton`` was added as a ``sampling_method`` in `scipy.optimize.shgo`. > ``sobol`` was fixed and is now using `scipy.stats.qmc.Sobol`. > > ``halton`` and ``sobol`` were added as ``init`` methods in > `scipy.optimize.differential_evolution.` > > ``differential_evolution`` now accepts an ``x0`` parameter to provide an > initial guess for the minimization. > > ``least_squares`` has a modest performance improvement when SciPy is built > with Pythran transpiler enabled. > > When ``linprog`` is used with ``method`` ``'highs'``, ``'highs-ipm'``, or > ``'highs-ds'``, the result object now reports the marginals (AKA shadow > prices, dual values) and residuals associated with each constraint. > > `scipy.signal` improvements > ===================== > > ``get_window`` supports ``general_cosine`` and ``general_hamming`` window > functions. > > `scipy.signal.medfilt2d` now releases the GIL where appropriate to enable > performance gains via multithreaded calculations. > > `scipy.sparse` improvements > ====================== > > Addition of ``dia_matrix`` sparse matrices is now faster. > > > `scipy.spatial` improvements > ====================== > > ``distance.cdist`` and ``distance.pdist`` performance has greatly improved > for > certain weighted metrics. Namely: ``minkowski``, ``euclidean``, > ``chebyshev``, > ``canberra``, and ``cityblock``. > > Modest performance improvements for many of the unweighted ``cdist`` and > ``pdist`` metrics noted above. > > The parameter ``seed`` was added to `scipy.spatial.vq.kmeans` and > `scipy.spatial.vq.kmeans2`. > > The parameters ``axis`` and ``keepdims`` where added to > `scipy.spatial.distance.jensenshannon`. > > The ``rotation`` methods ``from_rotvec`` and ``as_rotvec`` now accept a > ``degrees`` argument to specify usage of degrees instead of radians. > > `scipy.special` improvements > ====================== > > Wright's generalized Bessel function for positive arguments was added as > `scipy.special.wright_bessel.` > > An implementation of the inverse of the Log CDF of the Normal Distribution > is > now available via `scipy.special.ndtri_exp`. > > `scipy.stats` improvements > ==================== > > Hypothesis Tests > ----------------------- > > The Mann-Whitney-Wilcoxon test, ``mannwhitneyu``, has been rewritten. It > now > supports n-dimensional input, an exact test method when there are no ties, > and improved documentation. Please see "Other changes" for adjustments to > default behavior. > > The new function `scipy.stats.binomtest` replaces > `scipy.stats.binom_test`. The > new function returns an object that calculates a confidence intervals of > the > proportion parameter. Also, performance was improved from O(n) to > O(log(n)) by > using binary search. > > The two-sample version of the Cramer-von Mises test is implemented in > `scipy.stats.cramervonmises_2samp`. > > The Alexander-Govern test is implemented in the new function > `scipy.stats.alexandergovern`. > > The new functions `scipy.stats.barnard_exact` and `scipy.stats. > boschloo_exact` > respectively perform Barnard's exact test and Boschloo's exact test > for 2x2 contingency tables. > > The new function `scipy.stats.page_trend_test` performs Page's test for > ordered > alternatives. > > The new function `scipy.stats.somersd` performs Somers' D test for ordinal > association between two variables. > > An option, ``permutations``, has been added in `scipy.stats.ttest_ind` to > perform permutation t-tests. A ``trim`` option was also added to perform > a trimmed (Yuen's) t-test. > > The ``alternative`` parameter was added to the ``skewtest``, > ``kurtosistest``, > ``ranksums``, ``mood``, ``ansari``, ``linregress``, and ``spearmanr`` > functions > to allow one-sided hypothesis testing. > > Sample statistics > ----------------------- > > The new function `scipy.stats.differential_entropy` estimates the > differential > entropy of a continuous distribution from a sample. > > The ``boxcox`` and ``boxcox_normmax`` now allow the user to control the > optimizer used to minimize the negative log-likelihood function. > > A new function `scipy.stats.contingency.relative_risk` calculates the > relative risk, or risk ratio, of a 2x2 contingency table. The object > returned has a method to compute the confidence interval of the relative > risk. > > Performance improvements in the ``skew`` and ``kurtosis`` functions > achieved > by removal of repeated/redundant calculations. > > Substantial performance improvements in > `scipy.stats.mstats.hdquantiles_sd`. > > The new function `scipy.stats.contingency.association` computes several > measures of association for a contingency table: Pearsons contingency > coefficient, Cramer's V, and Tschuprow's T. > > The parameter ``nan_policy`` was added to `scipy.stats.zmap` to provide > options > for handling the occurrence of ``nan`` in the input data. > > The parameter ``ddof`` was added to `scipy.stats.variation` and > `scipy.stats.mstats.variation`. > > The parameter ``weights`` was added to `scipy.stats.gmean`. > > Statistical Distributions > ------------------------------- > > We now vendor and leverage the Boost C++ library to address a number of > previously reported issues in ``stats``. Notably, ``beta``, ``binom``, > ``nbinom`` now have Boost backends, and it is straightforward to leverage > the backend for additional functions. > > The skew Cauchy probability distribution has been implemented as > `scipy.stats.skewcauchy`. > > The Zipfian probability distribution has been implemented as > `scipy.stats.zipfian`. > > The new distributions ``nchypergeom_fisher`` and ``nchypergeom_wallenius`` > implement the Fisher and Wallenius versions of the noncentral > hypergeometric > distribution, respectively. > > The generalized hyperbolic distribution was added in > `scipy.stats.genhyperbolic`. > > The studentized range distribution was added in > `scipy.stats.studentized_range`. > > `scipy.stats.argus` now has improved handling for small parameter values. > > Better argument handling/preparation has resulted in performance > improvements > for many distributions. > > The ``cosine`` distribution has added ufuncs for ``ppf``, ``cdf``, ``sf``, > and > ``isf`` methods including numerical precision improvements at the edges of > the > support of the distribution. > > An option to fit the distribution to data by the method of moments has been > added to the ``fit`` method of the univariate continuous distributions. > > Other > --------- > `scipy.stats.bootstrap` has been added to allow estimation of the > confidence > interval and standard error of a statistic. > > The new function `scipy.stats.contingency.crosstab` computes a contingency > table (i.e. a table of counts of unique entries) for the given data. > > `scipy.stats.NumericalInverseHermite` enables fast random variate sampling > and percentile point function evaluation of an arbitrary univariate > statistical > distribution. > > New `scipy.stats.qmc` module > ----------------------------------------- > > This new module provides Quasi-Monte Carlo (QMC) generators and associated > helper functions. > > It provides a generic class `scipy.stats.qmc.QMCEngine` which defines a QMC > engine/sampler. An engine is state aware: it can be continued, advanced and > reset. 3 base samplers are available: > > - `scipy.stats.qmc.Sobol` the well known Sobol low discrepancy sequence. > Several warnings have been added to guide the user into properly using > this > sampler. The sequence is scrambled by default. > - `scipy.stats.qmc.Halton`: Halton low discrepancy sequence. The sequence > is > scrambled by default. > - `scipy.stats.qmc.LatinHypercube`: plain LHS design. > > And 2 special samplers are available: > > - `scipy.stats.qmc.MultinomialQMC`: sampling from a multinomial > distribution > using any of the base `scipy.stats.qmc.QMCEngine`. > - `scipy.stats.qmc.MultivariateNormalQMC`: sampling from a multivariate > Normal > using any of the base `scipy.stats.qmc.QMCEngine`. > > The module also provide the following helpers: > > - `scipy.stats.qmc.discrepancy`: assess the quality of a set of points in > terms > of space coverage. > - `scipy.stats.qmc.update_discrepancy`: can be used in an optimization > loop to > construct a good set of points. > - `scipy.stats.qmc.scale`: easily scale a set of points from (to) the unit > interval to (from) a given range. > > > *********************** > Deprecated features > *********************** > > `scipy.linalg` deprecations > ==================== > > - `scipy.linalg.pinv2` is deprecated and its functionality is completely > subsumed into `scipy.linalg.pinv` > - Both ``rcond``, ``cond`` keywords of `scipy.linalg.pinv` and > `scipy.linalg.pinvh` were not working and now are deprecated. They are > now > replaced with functioning ``atol`` and ``rtol`` keywords with clear > usage. > > `scipy.spatial` deprecations > ===================== > > - `scipy.spatial.distance` metrics expect 1d input vectors but will call > ``np.squeeze`` on their inputs to accept any extra length-1 dimensions. > That > behaviour is now deprecated. > > ***************** > Other changes > ***************** > > We now accept and leverage performance improvements from the ahead-of-time > Python-to-C++ transpiler, Pythran, which can be optionally disabled (via > ``export SCIPY_USE_PYTHRAN=0``) but is enabled by default at build time. > > There are two changes to the default behavior of > `scipy.stats.mannwhitenyu`: > > - For years, use of the default ``alternative=None`` was deprecated; > explicit > ``alternative`` specification was required. Use of the new default value > of > ``alternative``, "two-sided", is now permitted. > - Previously, all p-values were based on an asymptotic approximation. > Now, for > small samples without ties, the p-values returned are exact by default. > > Support has been added for PEP 621 (project metadata in ``pyproject.toml``) > > We now support a Gitpod environment to reduce the barrier to entry for > SciPy > development; for more details see :ref:`quickstart-gitpod`. > > > ********* > Authors > ********* > > * @endolith > * Jelle Aalbers + > * Adam + > * Tania Allard + > * Sven Baars + > * Max Balandat + > * baumgarc + > * Christoph Baumgarten > * Peter Bell > * Lilian Besson > * Robinson Besson + > * Max Bolingbroke > * Blair Bonnett + > * Jord?o Bragantini > * Harm Buisman + > * Evgeni Burovski > * Matthias Bussonnier > * Dominic C > * CJ Carey > * Ram?n Casero + > * Chachay + > * charlotte12l + > * Benjamin Curtice Corbett + > * Falcon Dai + > * Ian Dall + > * Terry Davis > * droussea2001 + > * DWesl + > * dwight200 + > * Thomas J. Fan + > * Joseph Fox-Rabinovitz > * Max Frei + > * Laura Gutierrez Funderburk + > * gbonomib + > * Matthias Geier + > * Pradipta Ghosh + > * Ralf Gommers > * Evan H + > * h-vetinari > * Matt Haberland > * Anselm Hahn + > * Alex Henrie > * Piet Hessenius + > * Trever Hines + > * Elisha Hollander + > * Stephan Hoyer > * Tom Hu + > * Kei Ishikawa + > * Julien Jerphanion > * Robert Kern > * Shashank KS + > * Peter Mahler Larsen > * Eric Larson > * Cheng H. Lee + > * Gregory R. Lee > * Jean-Benoist Leger + > * lgfunderburk + > * liam-o-marsh + > * Xingyu Liu + > * Alex Loftus + > * Christian Lorentzen + > * Cong Ma > * Marc + > * MarkPundurs + > * Markus L?ning + > * Liam Marsh + > * Nicholas McKibben > * melissawm + > * Jamie Morton > * Andrew Nelson > * Nikola Forr? > * Tor Nordam + > * Olivier Gauth? + > * Rohit Pandey + > * Avanindra Kumar Pandeya + > * Tirth Patel > * paugier + > * Alex H. Wagner, PhD + > * Jeff Plourde + > * Ilhan Polat > * pranavrajpal + > * Vladyslav Rachek > * Bharat Raghunathan > * Recursing + > * Tyler Reddy > * Lucas Roberts > * Gregor Robinson + > * Pamphile Roy + > * Atsushi Sakai > * Benjamin Santos > * Martin K. Scherer + > * Thomas Schmelzer + > * Daniel Scott + > * Sebastian Wallk?tter + > * serge-sans-paille + > * Namami Shanker + > * Masashi Shibata + > * Alexandre de Siqueira + > * Albert Steppi + > * Adam J. Stewart + > * Kai Striega > * Diana Sukhoverkhova > * S?ren Fuglede J?rgensen > * Mike Taves > * Dan Temkin + > * Nicolas Tessore + > * tsubota20 + > * Robert Uhl > * christos val + > * Bas van Beek + > * Ashutosh Varma + > * Jose Vazquez + > * Sebastiano Vigna > * Aditya Vijaykumar > * VNMabus > * Arthur Volant + > * Samuel Wallan > * Stefan van der Walt > * Warren Weckesser > * Anreas Weh > * Josh Wilson > * Rory Yorke > * Egor Zemlyanoy > * Marc Zoeller + > * zoj613 + > * ?? + > > A total of 126 people contributed to this release. > People with a "+" by their names contributed a patch for the first time. > This list of names is automatically generated, and may not be fully > complete. > > ************************** > Issues closed for 1.7.0 > ************************** > > * `#636 `__: Statistics > Review: mannwhitneyu (Trac #109) > * `#1346 `__: > signal.medfilt2d should fall back on signal.medfilt for types... > * `#2118 `__: Mann-Whitney > statistic returns incorrect results (Trac #1593) > * `#2158 `__: > special.chndtrix (ncx2.ppf) gives wrong results (Trac #1633) > * `#3284 `__: build_sphinx > weirdness > * `#3352 `__: beta > distribution sf > * `#4067 `__: Mannwhitneyu > with arrays full of nan still reports significance > * `#4080 `__: entropy in Scipy > * `#4641 `__: > mstats.mannwhitneyu and stats.mannwhitneyu return inconsistent... > * `#5122 `__: > scipy.stats.binom.ppf Incorrect for p=0 > * `#5180 `__: Rbf > interpolation - use only K nearest neighbors > * `#5258 `__: > affine_transform complains about output_shape when output array... > * `#5562 `__: Wishart degrees > of freedom should be $v > p-1$ instead of $v... > * `#5933 `__: mstats_basic.py > - mannwhitneyu [scipy/scipy/stats/mstats_basic.py] > * `#6409 `__: > _unequal_var_ttest_denom causes ZeroDivisionError in early samples > * `#6682 `__: negative > binomial survival function is imprecise > * `#6897 `__: > scipy.stats.mannwhitneyu of empty sets gives p=0.0 and does not... > * `#7303 `__: stats.describe > with nan_policy=omit returns matrix-wide minmax... > * `#7406 `__: > scipy.stats.binom.ppf returns nan for q between 0 and 1 if n... > * `#7437 `__: ENH: add skewed > Cauchy distribution to stats > * `#7542 `__: DOC: stats > tutorials: Questions on arcsine and Student t formulae > * `#7593 `__: Meaning of > \`tol\` argument in \`scipy.optimize.minimize\` is... > * `#8565 `__: Error in > SmoothSphereBivariateSpline(): "ValueError: Error code... > * `#8665 `__: > \`scipy.ncx2.sf\` should be monotone decreasing > * `#8836 `__: > scipy.optimize.linprog(method='simplex') needs to return duals > * `#9184 `__: Mann-Whitney > implementation wrong? > * `#9450 `__: allow seeding > of init methods in vq.kmeans2 > * `#9704 `__: > RectSphereBivariateSpline fails for negative longitude > * `#9836 `__: > scipy.stats.rice gives incorrect results when s is very low compared... > * `#9904 `__: > Request/Proposal: Greatly improve scipy.interpolate.Rbf > * `#9981 `__: stats.kruskal : > add a warning for an input with 2 or more columns > * `#10358 `__: DOC: linprog > and linear_sum_assignment tutorials needed > * `#10908 `__: Nakami > fitting doesn't converge (scipy.stats) > * `#10933 `__: Add scaled > inverse chi2 distribution > * `#11014 `__: Barnard's > Test for More Powerful Hypothesis Testing of 2x2 Contingency... > * `#11050 `__: Feature > request: Nelder-Mead with bounds > * `#11086 `__: > scipy.stats.skew doesn't work correctly for float point numbers > * `#11113 `__: inconsistent > result from ttest_ind and mannwhitneyu when used... > * `#11134 `__: Wrong > confidence interval for binomial distribution with p=0 > * `#11325 `__: Add axis > parameter for scipy.spatial.distance.jensenshannon > * `#11474 `__: > scipy.stats.skellam.cdf(0) returns 0 for large mu1 = mu2 > * `#11523 `__: > scipy.stats.zipf doesn't implement zipf distribution > * `#11848 `__: How to get > Lagrange / lambda multipliers out of 'linprog' optimize... > * `#11909 `__: Enable bounds > for lambda in boxcox > * `#12118 `__: Docstring > missing defaults > * `#12132 `__: Slow tests to > be trimmed or moved to test('full') > * `#12230 `__: Dendrogram: > enable leaves labelling with 'labels' when using... > * `#12282 `__: > scipy.stats.chisquare test does not check that observed and expected... > * `#12298 `__: BUG: > fmin_powell missing squeeze in 1.5.0rc > * `#12403 `__: Add > nan_policy to stats.zmap > * `#12518 `__: Null > hypothesis of Kolmogorov Smirnov test is not correctly described > * `#12534 `__: Feature > request: scipy.linalg.norm to deal with 0-size array > * `#12622 `__: > scipy.interpolate.interpn docstring example > * `#12635 `__: > scipy.stats.beta.ppf gives unexpexted results > * `#12669 `__: > Median-averaging of complex CSDs > * `#12731 `__: > stats.ncx2.cdf fails for nc >> x >> 1 > * `#12778 `__: Confusing > documentation of scipy.stats.weightedtau > * `#12794 `__: [Bug] The > result of stats.beta.isf is inconsistent with stats.beta.sf > * `#12837 `__: > stats.mannwhitneyu could support arrays > * `#12868 `__: Vector-valued > interpolation in \`interp2d\` > * `#12922 `__: Minimize with > trust-constr method leads to TypeError if option... > * `#12929 `__: The use of > starred expressions to create data detracts from understanding... > * `#12965 `__: domain of > argument of scipy.interpolate.RectSphereBivariateSpline(u,... > * `#13025 `__: Generalized > Hyperbolic Distribution > * `#13090 `__: Broken link > in doc for signal.max_len_seq > * `#13101 `__: MAINT: > Upgrade python version in docker file > * `#13158 `__: > \`signal.get_window()\` has a missing doc link and cannot get... > * `#13173 `__: Uninformative > error message from bisplev function > * `#13234 `__: BUG: stats: > Wrong shape of burr.moment() and fisk.moment() when... > * `#13242 `__: Does kmeans > "drop" clusters? > * `#13243 `__: tgsen uses an > output argument for computing a default argument > * `#13245 `__: Kurtosis > returning 1 for array of same elements > * `#13257 `__: GitHub > Actions test failures for MacOS > * `#13272 `__: > scipy.stats.yeojohnson_llf doc mistake > * `#13280 `__: Wrong results > with hypergeom cdf > * `#13285 `__: description > correction in scipy.stats.t > * `#13287 `__: Generate > binomial CDF with mu instead of prob > * `#13294 `__: BUG: stats: > wrong bounds returned by 'support' method for distributions... > * `#13299 `__: Typing for > scipy.spatial > * `#13300 `__: Add a single > individual to a latinhypercube initial population... > * `#13311 `__: MAINT: > pavement.py PYVER is outdated > * `#13339 `__: savemat > discards dimension information if any dimension is zero > * `#13341 `__: add > scipy.stats.variation with an ddof parameter > * `#13353 `__: > Documentation: in scipy.stats.johnsonsu, parameter \`a\` can... > * `#13405 `__: TST: add a > few tests for sparse BSR ctor > * `#13410 `__: BUG: skew for > empty array raises > * `#13417 `__: 10,000 times > speedup for generating random numbers from the cosine... > * `#13440 `__: python > runtest.py -t path-to-test.py failed > * `#13454 `__: Scipy cosine > distance can be greater than 2 > * `#13459 `__: Broken link > in cramervonmises documentation > * `#13494 `__: One-word typo > in the documentation of optimize.linprog_simplex > * `#13501 `__: minimize > using Powell methods with Bounds leads to "TypeError:... > * `#13509 `__: > signal.medfilt2d vs ndimage.median_filter > * `#13511 `__: DOC: error in > description of "direc" parameter of "fmin_powell" > * `#13526 `__: TST: stats: > intermittent \`test_ttest_ind_randperm_alternative2... > * `#13536 `__: > \`_within_tolerance\` seems an unnecessary repetition of \`numpy.isclose\` > * `#13540 `__: missing > python 3.8 manylinux wheels on scipy-wheels-nightly > * `#13559 `__: shape error > in linprog with revised simplex > * `#13587 `__: > binned_statistic unreliable with single precision > * `#13589 `__: Better > argument preparation for distributions in stats package. > * `#13602 `__: The > crystallball distribution entropy is sometimes minus infinity > * `#13606 `__: MAINT: mypy: > some typing errors while running mypy + adding mypy... > * `#13608 `__: Why does > stats.binned_statistic_2d convert its values argument... > * `#13609 `__: BUG: SciPy > pip install -e gets unusable version spec > * `#13610 `__: Highs solver > did not provide a solution nor did it report a failure > * `#13614 `__: BUG: > invgauss.cdf should return the correct value when \`mu\`... > * `#13628 `__: 1-letter typo > in the definition of scipy.special.spence function... > * `#13634 `__: mmwrite fails > on dense, skew-symmetric array > * `#13646 `__: Sparse matrix > argmax() integer overflow on Windows 10 > * `#13647 `__: > \`scipy.stats.qmc.LatinHypercube\` cannot sample single sample... > * `#13651 `__: Documentation > wrong in scipy.linalg.eigvalsh > * `#13664 `__: BUG: gamma > distribution's inverse survival function overflows... > * `#13693 `__: BUG: > sokalmichener appears to incorrectly apply weights > * `#13697 `__: BUG: stats: > Spurious warning generated by arcsine.pdf at the... > * `#13704 `__: Make it > possible to pass a rank cut-off value relatively to the... > * `#13707 `__: Kullback > Leibler Divergence broadcasting no longer works > * `#13740 `__: > Scipy.optimize x0 out of bounds when it is within bounds. > * `#13744 `__: > scipy.interpolate.interp1d has inconsistent behavior for non-unique... > * `#13754 `__: > optimize.minimize 'trust' methods and finite difference Hessian... > * `#13762 `__: MAINT, TST: > aarch64 stats test failures showing up in wheels... > * `#13769 `__: probplot > draws fit line even when fit=False > * `#13791 `__: BUG: stats: > wrapcauchy.cdf does not broadcast the shape parameter... > * `#13793 `__: CI: CircleCI > doc build failure > * `#13840 `__: manylinux1 > builds are failing because of C99 usage in \`special/_cosine.c\` > * `#13850 `__: CI: Homebrew > is failing due to bintray > * `#13875 `__: BUG: > chi2_contingency with Yates correction > * `#13878 `__: BUG: > \`signal.get_window\` argument handling issue > * `#13880 `__: Remove all > usages of numpy.compat > * `#13896 `__: Boschloo's > Test for More Powerful Hypothesis Testing of 2x2 Contingency... > * `#13923 `__: Inverse of > Log CDF of Normal Distribution > * `#13933 `__: > \`signal.get_window\` does not support \`general_cosine\` and... > * `#13950 `__: DOC: > scipy.spatial.KDTree.query > * `#13969 `__: N=4 must not > exceed M=3 > * `#13970 `__: Pearson's > original paper on chi-square test could be referenced. > * `#13984 `__: Faster > addition of sparse diagonal matrices > * `#13988 `__: An error > occurred when using scipy.io.wavfile of scipy 1.6 version... > * `#13997 `__: BUG: sparse: > Incorrect result from \`dia_matrix.diagonal()\` > * `#14005 `__: MAINT: > optimize: \`curve_fit\` input error msg can be improved. > * `#14038 `__: MAINT: add > type annotations for _sobol.pyx > * `#14048 `__: DOC: missing > git submodule information > * `#14055 `__: linalg.solve: > Unclear error when using assume_a='her' with real... > * `#14093 `__: DOC: > Inconsistency in the definition of default values in the... > * `#14158 `__: TST, BUG: > test_rbfinterp.py -- test_interpolation_misfit_1d fails... > * `#14170 `__: TST: signal > submodule test_filtfilt_gust failing on 32-bit amd64... > * `#14194 `__: MAINT: > download-wheels.py missing import > * `#14199 `__: Generated > sources for biasedurn extension are broken in 1.7.0rc1 > > > ************************** > Pull requests for 1.7.0 > ************************** > > * `#4824 `__: Permutation Ttest > (new PR) > * `#4933 `__: ENH: Update the > Mann-Whitney-Wilcoxon test > * `#7702 `__: ENH: stats: Add > Skewed Cauchy Distribution > * `#8306 `__: Optional Pythran > support for scipy.signal.max_len_seq_inner > * `#10170 `__: MAINT: stats: > Implement cdf and ppf as ufuncs for the cosine... > * `#10454 `__: ENH: Extend > find_peaks_cwt to take numbers and iterables for... > * `#10844 `__: ENH: add > stats.qmc module with quasi Monte Carlo functionality > * `#11313 `__: ENH: add > Wright's generalized Bessel function > * `#11352 `__: ENH: stats: Add > crosstab function. > * `#11477 `__: FIX: bounded > parameter in cdfchn.f gives bad results > * `#11695 `__: ENH: stats: add > method of moments to \`rv_continuous.fit\` > * `#11911 `__: ENH: Added > bounds to boxcox and boxcox_normmax > * `#12438 `__: BUG: use > ellipkm1 in elliptical filter design to prevent numerical... > * `#12531 `__: ENH: stats: add > Page's L test > * `#12603 `__: ENH: stats: Add > \`binomtest\` to replace \`binom_test\`. > * `#12653 `__: ENH: stats: add > Somers' D test > * `#12676 `__: BUG: update > median averaging in signal.csd > * `#12760 `__: BUG: special: > erfinv(x<<1) loses precision > * `#12801 `__: ENH: Add > single-sided p-values to remaining spearmanr and linregress > * `#12873 `__: ENH: Stats: add > Alexander Govern Test > * `#13008 `__: ENH: Add > 'alternative' to functions using normal CDF for p-value > * `#13040 `__: BUG: Allow > RectSphereBivariateSpline to accept negative longitude > * `#13048 `__: ENH: stats: Add > a function that computes the relative risk. > * `#13067 `__: ENH: Add > weights parameter to stats.gmean > * `#13084 `__: ENH: fast > Hankel transform > * `#13104 `__: MAINT: upgrade > python version (drop python 3.6) for docker dev... > * `#13153 `__: ENH: added > association measurements Pearsons Contingency Coefficient,... > * `#13166 `__: ENH: stats: Add > nan_policy to zmap. > * `#13175 `__: MAINT: tests > for tall cost matrices in \`linear_sum_assignment\` > * `#13177 `__: BUG: raise > NotImplementedError in fourier_ellipsoid when ndim... > * `#13184 `__: BUG: stats: Fix > min and max calculation of mstats.describe with... > * `#13188 `__: DOC: stats: > make null and alternative hypotheses of kstest more... > * `#13193 `__: MAINT: stats: > chisquare check sum of observed/expected frequencies > * `#13197 `__: ENH/MAINT: > HiGHS upstream enhancements and bug fixes > * `#13198 `__: ENH: allow > inference of output_shape from out array in affine_transform > * `#13204 `__: ENH: stats: add > Zipfian (different from Zipf/zeta) distribution > * `#13208 `__: REL: set > version to 1.7.0.dev0 > * `#13216 `__: TST: stats: > break up and mark slow tests > * `#13224 `__: Update docs for > the weighted ? > * `#13230 `__: ENH: linalg: > Add LAPACK wrapper for tgexc. > * `#13232 `__: MAINT: stats: > raise error when input to kruskal has >1 dim > * `#13233 `__: DOC: stats: fix > MGF of arcsine and entropy of t in tutorial > * `#13236 `__: MAINT: > reorganize shared linear assignment tests > * `#13237 `__: BENCH: Refactor > stats.Distribution to easily add new distributions > * `#13238 `__: BUG: stats: fix > wrong shape output of burr and fisk distributions > * `#13240 `__: MAINT: add > tests of trivial cost matrices for linear sum assignment > * `#13252 `__: DOC: optimize: > add \`optimize.linear_sum_assignment\` tutorial. > * `#13254 `__: BUG: Fix > precision issues for constant input in skew and kurtosis > * `#13262 `__: BUG: > scipy.medfilt and .medfilt2d fixes > * `#13263 `__: ENH: add > Cramer-von Mises test for two samples > * `#13264 `__: fix a minor > typo in \`stats.anderson\` doc > * `#13268 `__: ENH: stats: Add > implementation of _entropy for the t distr. > * `#13273 `__: DOC: stats: fix > typo in Yeo-Johnson LL function documentation > * `#13275 `__: MAINT: stats: > Correct a comment in the _fitstart method of gamma. > * `#13283 `__: BUG: stats: fix > the cdf method of rv_discrete class > * `#13286 `__: DOC: stats: > clairify rv_continuous/discrete.stats example > * `#13288 `__: DOC: stats: > discrete distribution shape parameter restrictions > * `#13289 `__: MAINT: fix a > build warning in sigtoolsmodule.c > * `#13290 `__: DOC: Expand the > discussion of the nan_policy API. > * `#13291 `__: MAINT: signal, > stats: Use keepdims where appropriate. > * `#13292 `__: DOC: stats: > note another common parameterization of nbinom > * `#13293 `__: DOC: Change > broken link for default values to archived link > * `#13295 `__: BUG: stats: fix > the support method to return correct bounds > * `#13296 `__: DOC: stats: Fix > latex markup in the kstwo docstring. > * `#13297 `__: TST: mark > kde.logpdf overflow test as xslow > * `#13298 `__: Generalized > Hyperbolic Distribution > * `#13301 `__: DOC: cluster: > Add cluster number note to the docstring of cluster.vq.kmeans > * `#13302 `__: BUG: Fix > ndimage.morphology.distance_transform\_\* argument handling > * `#13303 `__: CI: prevent > Codecov giving false CI failures and wrong PR annotations > * `#13313 `__: ENH: static > typing for qhull > * `#13316 `__: Pythran > implementation of scipy.signal._spectral > * `#13317 `__: DOC: forward > port 1.6.0 relnotes > * `#13319 `__: ENH: stats: add > fast numerical inversion of distribution CDF > * `#13320 `__: ENH: x0 for > differential_evolution > * `#13324 `__: DOC correct > linprog highs versionadded to 1.6 > * `#13326 `__: MAINT: update > numpydoc to v1.1.0 > * `#13327 `__: DOC: > interpolate: improved docstring examples of \`interpolate.interpn()\`... > * `#13328 `__: ENH: Boost > stats distributions > * `#13330 `__: ENH: stats: add > noncentral hypergeometric distributions (Fisher's... > * `#13331 `__: MAINT/ENH: > resolve mypy warnings/errors > * `#13332 `__: DOC: > interpolate: improved docstring of \`interpolate.interp2d\`... > * `#13333 `__: ENH: stats: > Some more _sf and _isf implementations. > * `#13334 `__: MAINT: stats: > Clean up a few defunct comments in _continuous_distns.py > * `#13336 `__: Pythran version > of scipy.optimize._group_columns > * `#13337 `__: DOC|ENH: type > hinting in scipy.integrate.simpson > * `#13346 `__: ENH: stats: add > 'ddof' parameter to the 'variation' function > * `#13355 `__: ENH: stats: > implement _logpdf, _sf and _isf for loggamma. > * `#13360 `__: ENH|DOC: fix > docstring and input validation in interpolate.RectSphereBivariateSpline > * `#13366 `__: BUG: stats: > Don't raise ZeroDivisionError in _unequal_var_ttest_denom > * `#13370 `__: ENH: fix ARGUS > distribution for small parameters in stats > * `#13371 `__: ENH: stats: add > \`bootstrap\` for estimating confidence interval... > * `#13373 `__: BUG: io/matlab: > preserve dimensions of empty >=2D arrays > * `#13374 `__: ENH: stats: add > skewed Cauchy distribution > * `#13379 `__: BUG: sparse: > fix verbosity in sparse lsqr > * `#13383 `__: TST: stats: > mark many dimension permutation t-test slow > * `#13384 `__: MAINT: Make > keywords array static > * `#13388 `__: PERF: Avoid > duplicate mean calculations in skew and kurtosis > * `#13389 `__: DOC: Fix > deprecated directive syntax > * `#13390 `__: DOC: Correct > line length for Parameter Section underline > * `#13393 `__: MAINT: stats: > allow wishart dim - 1 < df < dim > * `#13395 `__: DOC: fix typo > in setup.py warning message > * `#13396 `__: BUG: Fix MLE > for Nakagami \`nakagami_gen.fit\` > * `#13397 `__: MAINT:linalg: > Fix tgsen family wrapper and ordqz > * `#13406 `__: TST: add error > handling tests for sparse BSR ctor > * `#13413 `__: DOC: > ultra-quickstart guide > * `#13418 `__: BUG: Fix moment > returning inconsistent types and shapes > * `#13423 `__: DOC: Update > example for leaf_label_func/dendrogram > * `#13431 `__: ENH: stats: > override _rvs for nhypergeom > * `#13432 `__: Add indicator > in NDInterpolator docstring that N must be > 1 > * `#13434 `__: DOC: stats: > note relationship between scaled-inv-chi2 and invgamma > * `#13436 `__: ENH: > interpolate: add input validation to check input x-y is... > * `#13441 `__: ENH: add > functionality \`barnard_exact\` test to scipy.stats. > * `#13443 `__: MAINT: stats: > Updates for skewcauchy > * `#13444 `__: DOC: clarify > range of \`a\` parameter fpr johnsonsu/johnsonsb > * `#13445 `__: DOC: fix > runtests guidelines. > * `#13446 `__: MAINT: stats: > Add _fitstart method to wrapcauchy. > * `#13447 `__: DEV: Update > development Docker image > * `#13448 `__: ENH: Add > annotations for \`scipy.spatial.distance\` > * `#13451 `__: DOC: minor > formatting. > * `#13458 `__: DOC: indent see > also. > * `#13460 `__: DOC: stats: Fix > link to Cramer-von Mises wikipedia article. > * `#13461 `__: DOC: reorganize > scipy.stats overview docs page > * `#13463 `__: DOC: misc > formatting fixes > * `#13466 `__: DOC: Typo in > see also s/SmoothUni/SmoothBi/g > * `#13467 `__: DOC: optimize: > add description about \`tol\` argument for \`minimize\`. > * `#13469 `__: MAINT: Refactor > optimization methods to use scipy.stats.qmc > * `#13477 `__: CI: pin numpy > to 1.19.5 for the three macOS CI jobs > * `#13478 `__: DOC: fix typos > where double :: for Sphinx directives were missing > * `#13481 `__: CI: pin numpy > to 1.19.5 in the 4 parallel Windows builds on Azure > * `#13482 `__: CI: use numpy > 1.20.0 again in macOS CI > * `#13483 `__: DOC: Multiple > documentation syntax fixes. > * `#13484 `__: Move some > pythran config from CI to setup > * `#13487 `__: DOC: add a > tutorial about scipy.stats.qmc > * `#13492 `__: ENH: GH actions > should not run on forks > * `#13493 `__: DEV: Enable > gitpod for SciPy > * `#13495 `__: DOC One-word > typo in the documentation of optimize.linprog_simplex > * `#13499 `__: DOC: describe > LSAP implementation > * `#13502 `__: BUG: Bounds > created with lists weren't working for Powell > * `#13507 `__: MAINT, TST: > stats: centralize invalid parameters list for all... > * `#13510 `__: DOC: stats: fix > small doc errors in 'multivariate_hypergeom' > * `#13513 `__: DOC: Added math > notation in examples in ltisys.py > * `#13514 `__: ENH: simplify > low_0_bit function for Sobol > * `#13515 `__: ENH: optimize: > add bound constraint support for nelder-mead solver > * `#13516 `__: DOC: reduce > LaTeX usage for johnsonb docstring > * `#13519 `__: BLD: remove > build_sphinx support from setup.py > * `#13527 `__: TST: stats: > xfail ttest_ind_randperm_alternative2 on 32 bit > * `#13530 `__: DOC: correct > comparisons between median filter functions > * `#13532 `__: ENH: release > the GIL inside medfilt2d > * `#13538 `__: DOC: optimize: > fix minor doc error in 'fmin_powell' (#13511) > * `#13546 `__: DOC: fix list > of "mode" options for ndimage > * `#13549 `__: ENH: stats: add > 'alternative' keyword to some normality tests. > * `#13551 `__: MAINT: add git > to docker env > * `#13552 `__: MAINT: stats: > remove float_power shim > * `#13553 `__: DOC: use > support rather than a/b in stats tutorial > * `#13560 `__: MAINT: > optimize: improve linprog error message for sparse input... > * `#13562 `__: MAINT: > optimize: using np.isclose instead of _within_tolerance. > * `#13566 `__: ENH: Speed up > hdquantiles_sd() > * `#13569 `__: BENCH: > optimize: benchmark only HiGHS methods; add bigger linprog... > * `#13574 `__: DOC: In > description of cluster.hierarchy.dendrogram 'level' parameter,... > * `#13576 `__: ENH: improve > discrepancy performance > * `#13579 `__: TST: Add > pybind11 to tox environments > * `#13583 `__: BUG: Fix > Dockerfile apt-get installs > * `#13588 `__: MAINT: forward > port 1.6.1 relnotes. > * `#13593 `__: BUG: stats: > preserve sample dtype for bin edges > * `#13595 `__: ENH: > interpolate: add RBFInterpolator > * `#13596 `__: DOC: Fix > indentation in new_stats_distribution.rst.inc > * `#13601 `__: Add dpss for > get_window function > * `#13604 `__: DOC: Correct > dual annealing visiting param range. > * `#13605 `__: Add Codecov > badge to README > * `#13607 `__: MAINT: stats: > fix crystalball entropy > * `#13611 `__: Better argument > preparation for distributions in stats package. > * `#13612 `__: Add docker run > command for Windows cmd > * `#13613 `__: MAINT, CI: > mypy: fix typing errors + add mypy to CI > * `#13616 `__: FIX: Return > correct output for invgauss.cdf when mu is very small > * `#13617 `__: MAINT: accept > numbers and iterables for width in find_peaks_cwt > * `#13620 `__: CI: disable the > mypy CI job (partial revert of gh-13613) > * `#13621 `__: DOC: signal: > use array_like for input types > * `#13622 `__: MAINT: clean up > some unused files, make \`mypy scipy\` pass > * `#13623 `__: CI: enable Mypy > CI job again > * `#13624 `__: TST: test more > values for \`visiting_param\` input to \`dual_annealing\` > * `#13625 `__: Rename > integrate.simps to integrate.simpsons in documentation... > * `#13631 `__: ENH: add a > \`stats.differential_entropy\` function > * `#13633 `__: BUG: > stats.binned_statistic_2d user function expecting arrays > * `#13641 `__: ENH: Added > degrees parameter to rotvec > * `#13645 `__: MAINT: mypy: > don't install numpy-stubs > * `#13649 `__: BUG: sparse: > csc_matrix.argmax() integer overflow > * `#13650 `__: ENH: stats: add > 'alternative' parameter to ansari > * `#13652 `__: DOC: fix > eigvalsh documentation (#13651) > * `#13654 `__: BUG: Fix > LatinHypercubes > * `#13656 `__: DOC: Fix PCHIP > references > * `#13657 `__: TST: remove > IPython warning in debug session > * `#13658 `__: Remove spurious > quotes in docstring > * `#13661 `__: ENH: stats: > improve efficiency of / fix bug in exact permutation... > * `#13667 `__: MAINT: Make > latest Docker image default > * `#13668 `__: MAINT: add > .theia/ to .gitignore > * `#13669 `__: BLD: change > SCIPY_USE_PYTHRAN default to \`1\` > * `#13676 `__: ENH Small > improvements for LSQR with damp > * `#13678 `__: MAINT: add > Pythran-generated files to .gitignore > * `#13679 `__: MAINT: move the > \`conda develop .\` in the Gitpod config > * `#13680 `__: DOC: Add > cKDTree note comparing it with KDTree > * `#13681 `__: DOC: build doc > updates on Pythran, compiled code, and cleanups > * `#13683 `__: BUG: mmwrite > correctly serializes non skew-symmetric arrays > * `#13684 `__: FIX: fix > numerical overflow in gamma.isf method > * `#13685 `__: BUG: fix cosine > distance range to 0-2 > * `#13694 `__: MAINT: fix > warning emitted when NumPy version is incorrect > * `#13696 `__: ENH: support > trimming in ttest_ind > * `#13698 `__: BUG: stats: Fix > spurious warnings generated by arcsine.pdf > * `#13701 `__: DEV: > scipy.interpolate b-splines (periodic case) > * `#13702 `__: DEP: Clean up > spent deprecations in spatial.distance > * `#13703 `__: MAINT: fix > issues found by static code analysis > * `#13706 `__: ENH: stats: > Implement sf and isf for the laplace distribution. > * `#13711 `__: MAINT: stats: > fix broadcasting for scipy.stats.entropy > * `#13712 `__: BUG: stats: > Override _fitstart for the invweibull distribution. > * `#13713 `__: DOC: update > toolchain.rst to reflect windows universal C runtime > * `#13714 `__: MAINT: stats: > Remove an unused list from test_continuous_basic.py. > * `#13715 `__: MAINT: stats: > No need to suppress frechet deprecation warnings. > * `#13716 `__: MAINT: use > super() as described by PEP 3135 > * `#13718 `__: MAINT: > new-style class, removing inheritance to object > * `#13721 `__: MAINT: add a > type-ignore for mpmath (#13721) > * `#13723 `__: MAINT: mypy: > ignore mpmath imports in mypy.ini > * `#13724 `__: DOC: pydata > sphinx theme > * `#13725 `__: BENCH: add > benchmark for Kendalltau > * `#13727 `__: CI: simplify > Pythran configuration setup for Azure > * `#13731 `__: MAINT: stats: > Some flake8-driven clean up. > * `#13732 `__: ENH: stats: > Studentized Range Distribution > * `#13735 `__: DOC: correct > Voronoi docstring > * `#13738 `__: DOC: add > example to wright_bessel > * `#13739 `__: ENH: stats: > Implement _sf and _isf for the chi distribution. > * `#13741 `__: MAINT: prevent > overwriting of x in minimize > * `#13747 `__: DOC: Add note > for interp1d for non-unique x-values > * `#13749 `__: MAINT: forward > port 1.6.2 relnotes > * `#13759 `__: MAINT: simpson > small performance speedups > * `#13765 `__: FIX: npymath > missing causing npy_log1p to be unknown > * `#13768 `__: BENCH: Add > missing pythran dependency > * `#13770 `__: ENH: > stats.contingency: Add the sparse option to crosstab. > * `#13774 `__: DEP: Deprecate > squeezing input vectors in spatial.distance > * `#13775 `__: Enable trust > region methods to use a finite difference Hessian... > * `#13777 `__: DOC: Fix > Ubuntu/Debian installation instructions > * `#13778 `__: DOC: remove > references to RandomState > * `#13782 `__: MAINT: LBFGSB > err msg on MAXLS changed closes #11718 > * `#13785 `__: BENCH: Add > benchmark for cdist/pdist with weights > * `#13786 `__: MAINT: Prepare > cdist/pdist for C++ rework > * `#13787 `__: MAINT: stats: > move entropy and differential_entropy functions... > * `#13790 `__: DOC: Add some > dependencies for Dockerfile doc of scipy development. > * `#13792 `__: BUG: stats: Fix > broadcasting in wrapcauchy.cdf > * `#13795 `__: MAINT: stats: > add hypotests to __all__ in init.py, not stats.py > * `#13797 `__: MAINT: stats: > probplot: don't plot least-squares fit line unless... > * `#13798 `__: MAINT: fix > incorrect code comment in \`hierarchy.to_tree\` > * `#13802 `__: DEV: add > environment.yml file for development with conda/mamba > * `#13803 `__: DOC: fix doc > build warning about arxiv role already being registered > * `#13804 `__: DOC+MAINT: > optimize: lb and ub in the Bounds constructor are... > * `#13807 `__: MAINT: Dont use > parallel Sphinx > * `#13808 `__: MAINT: > cluster.to_tree: more idiomatic looping over rows of matrix... > * `#13810 `__: MAINT: add a > CODEOWNERS file > * `#13811 `__: MAINT: Add ci > skip to azp > * `#13814 `__: ENH/DOC: pydata > sphinx theme polishing > * `#13817 `__: DOC: Misc > parameter typo and casing in scipy/linalg/_decomp_ldl.py > * `#13818 `__: MAINT: stats: > keep \`entropy\` importable from \`scipy.stats.distributions\` > * `#13820 `__: BUG: update > _kendall_p_exact ValueError to f-string > * `#13831 `__: FIX:DEP: Allow > better tolerance control for pinv and pinvh and... > * `#13832 `__: BUG: stats: Fix > rvs for levy_stable when alpha=1 > * `#13833 `__: MAINT: Add > inline type hintings for stats.qmc > * `#13836 `__: MAINT: Fix a > couple compiler warnings. > * `#13838 `__: TST: relax test > tolerances for BinomTest > * `#13841 `__: BLD: add > \`-std=c99\` flag to scipy.special extensions using... > * `#13845 `__: ENH: stats: add > \`method\` parameter to \`differential_entropy\`... > * `#13847 `__: TST: skip on > optimize failure on macOS, mark one as xfail > * `#13848 `__: DOC: optimize: > move Nelder Mead doc from Unconstrained minimization... > * `#13849 `__: DOC: Roadmap > update > * `#13852 `__: CI: fix > temporary wrong brew version from GitHub > * `#13854 `__: ENH: Update > Scipy Gitpod > * `#13859 `__: TST: fix > ultra-slow ttest permutations test > * `#13860 `__: MAINT: clean up > LSAP error checking > * `#13863 `__: DOC: remove > seed in examples > * `#13865 `__: DOC: optimize: > The bounds param of differential_evolution is... > * `#13866 `__: MAINT: special: > Remove an unused variable from _poly_approx in... > * `#13867 `__: DOC: stats: > Explain meaning of alternatives for fisher_exact. > * `#13868 `__: CI: fix the > failing job on linux. > * `#13870 `__: MAINT: move > LSAP rectangular matrix handling into solver code > * `#13871 `__: DOC: Add Gitpod > documentation > * `#13876 `__: Workflow : Add > nightly release of NumPy in linux workflows > * `#13877 `__: DOC: Conform to > numpydoc + uniformity. > * `#13879 `__: BUG: signal: > fix get_window argument handling and add tests. > * `#13881 `__: CI: remove > .travis.yml, remove codecov from CircleCI > * `#13882 `__: BLD: ensure > incrementing dev version strings > * `#13886 `__: TST: optimize: > skip test_network_flow_limited_capacity w/ UMFPACK... > * `#13888 `__: MAINT: Fix > issues involving elif conditions > * `#13891 `__: Rename > InivariateSpline to UnivariateSpline > * `#13893 `__: ENH: linprog > HiGHS marginals/sensitivy analysis > * `#13894 `__: DOC: Add blank > line before \`Return\` section. > * `#13897 `__: DOC: BLD: fix > doc build version check, and improve build time > * `#13903 `__: MAINT: Gitpod > fixes > * `#13907 `__: ENH: Rewrite > minkowski metric in C++ with pybind11 > * `#13909 `__: Revert > "Workflow : Add nightly release of NumPy in linux workflows" > * `#13910 `__: DOC: update > Readme > * `#13911 `__: MAINT: use dict > built-in rather than OrderedDict > * `#13920 `__: BUG: Reactivate > conda environment in init > * `#13925 `__: BUG: stats: > magnitude of Yates' correction <= abs(observed-expected)... > * `#13926 `__: DOC: correct > return type in disjoint_set.subsets docstring > * `#13927 `__: DOC/MAINT: Add > copyright notice to qmc.primes_from_2_to > * `#13928 `__: BUG: DOC: > signal: fix need argument config and add missing doc... > * `#13929 `__: REL: add PEP > 621 (project metadata in pyproject.toml) support > * `#13931 `__: MAINT: special: > get rid of _logit.c.src > * `#13934 `__: ENH: signal: > make \`get_window\` supports \`general_cosine\`... > * `#13940 `__: MAINT: > QMCEngine d input validation > * `#13941 `__: MAINT: forward > port 1.6.3 relnotes > * `#13944 `__: BUG: spatial: > fix weight handling of \`distance.sokalmichener\`. > * `#13947 `__: MAINT: Remove > duplicate calculations in sokalmichener > * `#13949 `__: DOC: minor > grammar fixes in minimize and KDTree.query > * `#13951 `__: ENH: Add > Boschloo exact test to stats > * `#13956 `__: ENH: spatial: > add \`axis\` and \`keepdims\` optional argument... > * `#13963 `__: MAINT: stats: > Fix unused imports and a few other issues related... > * `#13971 `__: DOC: Add Karl > Pearson's reference to chi-square test > * `#13972 `__: ENH: cluster: > add an optional argument \`seed\` for \`kmeans\`... > * `#13973 `__: BLD: fix build > warnings for causal/anticausal pointers in ndimage > * `#13975 `__: ENH: set empty > array norm to zero. > * `#13977 `__: MAINT: signal: > replace distutils templating with tempita > * `#13978 `__: MAINT: improve > validations and keyword only arguments for some... > * `#13979 `__: ENH: Add > Inverse of Log CDF of Normal Distribution > * `#13983 `__: Fixing > \`ndimage.watershed_ift\` tutorial's documentation > * `#13987 `__: DOC: Adding > examples to docstrings in morphology: white_tophat,... > * `#13989 `__: DOC: > interpolate: improve examples of \`RegularGridInterpolator\`... > * `#13990 `__: MAINT, DOC: > optimize: Make the input validation explanation clear... > * `#13992 `__: Workflow : Add > nightly release of NumPy in linux workflows > * `#13995 `__: Doc: Continuous > integration information > * `#14000 `__: BUG: sparse: > Fix DIA.diagonal bug and add a regression test > * `#14004 `__: ENH: Fast > addition dia matrix > * `#14006 `__: MAINT: > optimize: add validation to check func parameter number... > * `#14008 `__: BUG: Raise > exception for inconsistent WAV header > * `#14009 `__: DEP: Remove > usage of numpy.compat > * `#14010 `__: MAINT: add > support for wheel DL proxy > * `#14012 `__: DOC: Broaden > Exact Test Reference > * `#14015 `__: MAINT: remove > brew update > * `#14017 `__: BENCH: Add more > formats for sparse arithmetic > * `#14018 `__: BENCH: add > benchmark for f_oneway > * `#14020 `__: MAINT: modify > np.int\_ to np.int32 to make it the same for 32/64... > * `#14023 `__: MAINT: Fix > clang build and remove some unicode characters > * `#14025 `__: BUG: sparse: > fix DIA.setdiag issue > * `#14026 `__: TST: optimize: > xfail part of test_powell > * `#14029 `__: CI: github > macos fix > * `#14030 `__: MAINT: use > 'yield from ' (PEP 380) > * `#14031 `__: MAINT: > new-style class, removing inheritance to object > * `#14032 `__: MAINT: CXXFLAGS > for Pythran > * `#14033 `__: ENH: Port > sqeuclidean and braycurtis to _distance_pybind > * `#14034 `__: MAINT: Clean-up > 'next = __next__' > * `#14045 `__: MAINT: bump > PYVER pavement.py > * `#14047 `__: DEV: initialize > boost submodule in Gitpod Dockerfile > * `#14051 `__: BLD: if boost > submodule content is missing, error out early > * `#14052 `__: DOC: missing > submodule init information > * `#14057 `__: DOC: special: > Add Examples to \`psi\` docstring > * `#14058 `__: BUG: fixed a > dtype bug in linalg.solve. > * `#14060 `__: Doc: Fix typo > in documentation of spence function. > * `#14061 `__: MAINT:stats: > Type annotations for _sobol.pyx > * `#14062 `__: DOC: A few > small fixes in quickstart_gitpod.rst > * `#14063 `__: DOC: signal: > add Add Examples to \`cont2discrete\` docstring > * `#14064 `__: DOC: optimize: > Add Examples to fmin_bfgs docstring > * `#14065 `__: Add example for > scipy stats.trim1 under docstring > * `#14066 `__: DOC add example > to scipy.special.hermite > * `#14067 `__: DOC add alpha > docstring description, add example to docstring > * `#14070 `__: DOC add > parameters, return, and example to docstring > * `#14072 `__: MAINT/TST: Fix > tests failing with the nightly build of numpy. > * `#14075 `__: DOC Improve the > code snippet in signal.hilbert docstring. > * `#14076 `__: DOC: Document > Jensen-Shannon distance being accepted by cdist/pdist > * `#14079 `__: BLD: Avoid > importing scipy.stats during cythonize stage > * `#14082 `__: MAINT: Remove > old, commented extract_diagonal > * `#14083 `__: MAINT: sparse: > Remove defunct function extract_diagonal > * `#14085 `__: ENH: Implement > canberra distance in _distance_pybind > * `#14086 `__: MAINT: Clear > scipy namespace of entries better imported from... > * `#14088 `__: Install Pythran > from sources for python 3.10 > * `#14092 `__: BUG: Fixes > issue with clang. > * `#14094 `__: DOC: Correct > the inconsistence definition of Default in class... > * `#14105 `__: TST: stats: > mannwhitneyu: check that mstats and stats mannwhitneyu... > * `#14106 `__: DOC: > stats.mstats: mannwhitneyu: the returned statistic is the... > * `#14107 `__: ENH: stats: > bootstrap: add \`vectorized\` parameter; automatically... > * `#14109 `__: BUG: fix two > issues in the fblas signature files > * `#14110 `__: DOC: mailmap > update > * `#14113 `__: ENH: stats: > bootstrap: add \`paired\` parameter > * `#14116 `__: MAINT: fix > deprecated Python C API usage in odr > * `#14118 `__: DOC: 1.7.0 > release notes > * `#14125 `__: DOC: fix typo > * `#14126 `__: ENH: stats: > bootstrap: add \`batch\` parameter to control batch... > * `#14127 `__: CI: upgrade pip > in benchmarks CI run > * `#14130 `__: BUG: Fix > trust-constr report TypeError if verbose is set to 2... > * `#14133 `__: MAINT: > interpolate: raise NotImplementedError not ValueError > * `#14139 `__: FIX/DOC: lsqr > doctests print failure > * `#14145 `__: MAINT: 1.7.x > version pins ("backport") > * `#14146 `__: MAINT: commit > count if no tag > * `#14164 `__: TST, BUG: fix > rbf matrix value > * `#14166 `__: CI, MAINT: > restrictions on pre-release CI > * `#14171 `__: TST: signal: > Bump tolerances for a test of Gustafsson's... > * `#14175 `__: TST: stats: > Loosen tolerance in some binomtest tests. > * `#14182 `__: MAINT: stats: > Update ppcc_plot and ppcc_max docstring. > * `#14195 `__: MAINT: > download-wheels missing import > * `#14230 `__: REL: stop > shipping generated Cython sources in sdist > > Checksums > ========= > > MD5 > ~~~ > > 276042cf01da2970b83883375b036eef > scipy-1.7.0-cp37-cp37m-macosx_10_9_x86_64.whl > 8149ae5442d3ca11d477893b9797b565 > scipy-1.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 32d249d21ec09fe351b471cd578a54bd > scipy-1.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl > 6f9b11e29d59e276729ec706c38961e2 > scipy-1.7.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl > c4b23f53f47888744713a25000ed73fd scipy-1.7.0-cp37-cp37m-win32.whl > 767b17455eba48cbe3949a4a8609d9e7 scipy-1.7.0-cp37-cp37m-win_amd64.whl > ac0f5c087893240b13a78dbc80e002e1 > scipy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl > e2e369078c6b7ca29c952cb9971bc154 > scipy-1.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 2f4d2c55937133983031428405ef50e5 > scipy-1.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl > 092c9b3117c2acc378be46fac846b088 > scipy-1.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 08a560d8f936ea64d65471382d829b43 scipy-1.7.0-cp38-cp38-win32.whl > 330c71d5ae61a6f1a96573ee5e2dc536 scipy-1.7.0-cp38-cp38-win_amd64.whl > 535e0df93c3005acb69cf32eed57e5d7 > scipy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl > 003d015e6c75d683f8e27e80d731f782 > scipy-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 9306001377da7b018ac0215eed2ba022 > scipy-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl > ed943492a5f97a086c96b6d158028ba4 > scipy-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 89499df789ff766d6140ab50b8a56745 scipy-1.7.0-cp39-cp39-win32.whl > daf4ab11d37576bd792ece587e8f7ae6 scipy-1.7.0-cp39-cp39-win_amd64.whl > 8776cb3e803f07c74ddf1045eb177904 scipy-1.7.0.tar.gz > a0690bb8aa427fc0a3a59946b532763c scipy-1.7.0.tar.xz > f1f1970a34948e59b37e9706a3dfca0e scipy-1.7.0.zip > > SHA256 > ~~~~~~ > > 821e75f5c16cd7b0ab0ffe7eb9917e5af7b48c25306b4777287de8d792a5f7f3 > scipy-1.7.0-cp37-cp37m-macosx_10_9_x86_64.whl > 3e7df79b42c3015058a5554bfeab6fd4c9906c46560c9ddebb5c652840f3e182 > scipy-1.7.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 0572256c10ddd058e3d315c555538671ddb2737f27eb56189bfbc3483391403f > scipy-1.7.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl > b77ee5e3a9507622e7f98b16122242a3903397f98d1fe3bc269d904a9025e2bc > scipy-1.7.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 53116abd5060a5b4a58489cf689bee259b779e6b7ecd4ce366e7147aa7c9626e > scipy-1.7.0-cp37-cp37m-win32.whl > e7b733d4d98e604109715e11f2ab9340eb45d53f803634ed730039070fc3bc11 > scipy-1.7.0-cp37-cp37m-win_amd64.whl > 4ef3d4df8af40cb6f4d4eaf7b02780109ebabeec334cda26a7899ec9d8de9176 > scipy-1.7.0-cp38-cp38-macosx_10_9_x86_64.whl > bd4399d4388ca0239a4825e312b3e61b60f743dd6daf49e5870837716502a92a > scipy-1.7.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 80df8af7039bce92fb4cd1ceb056258631b11b3c627384e2d29bb48d44c0cae7 > scipy-1.7.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl > 6130e22bf6ee506f7cddde7e0515296d97eb6c6c94f7ef5103c2b77aec5833a7 > scipy-1.7.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 97ca4552ace1c313707058e774609af59644321e278c3a539322fab2fb09b943 > scipy-1.7.0-cp38-cp38-win32.whl > c5d012cb82cc1dcfa72609abaabb4a4ed8113e3e8ac43464508a418c146be57d > scipy-1.7.0-cp38-cp38-win_amd64.whl > 5eb8f054eebb351af7490bbb57465ba9662c4e16e1786655c6c7ed530eb9a74e > scipy-1.7.0-cp39-cp39-macosx_10_9_x86_64.whl > 7f4b89c223bd09460b52b669e2e642cab73c28855b540e6ed029692546a86f8d > scipy-1.7.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl > 2e685fdbfa5b989af4338b29c408b9157ea6addec15d661104c437980c292be5 > scipy-1.7.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl > 3595c8b64970c9e5a3f137fa1a9eb64da417e78fb7991d0b098b18a00b776d88 > scipy-1.7.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl > 5a983d3cebc27294897951a494cebd78af2eae37facf75d9e4ad4f1f62229860 > scipy-1.7.0-cp39-cp39-win32.whl > aef6e922aea6f2e6bbb539b413c85210a9ee32757535b84204ebd22723e69704 > scipy-1.7.0-cp39-cp39-win_amd64.whl > 998c5e6ea649489302de2c0bc026ed34284f531df89d2bdc8df3a0d44d165739 > scipy-1.7.0.tar.gz > 0564d1091b8db03418356f0839cc4bf73b9bf7cd1089586eb690208e1f44bb8d > scipy-1.7.0.tar.xz > 3a0ec7390c491140551f6493611a30605144a4d47c0410e81f49921ada026993 > scipy-1.7.0.zip > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > > > _______________________________________________ > SciPy-User mailing list > SciPy-User at python.org > https://mail.python.org/mailman/listinfo/scipy-user > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Mon Jun 21 12:23:19 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Mon, 21 Jun 2021 09:23:19 -0700 Subject: [Numpy-discussion] =?utf-8?q?copy=3D=22never=22_discussion_and_n?= =?utf-8?q?o_deprecation_cycle=3F?= In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> Message-ID: <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> On Sun, Jun 20, 2021, at 20:46, Gagandeep Singh wrote: > I have recently joined the mailing list and have gone through the previous discussions on this thread. I would like to share my analysis (advantages and disadvantages) of three possible alternatives (Enum, String, boolean) to support the proposed feature. Thanks for this thorough analysis, Gagandeep! I'll throw one more heretical idea out there: `np.copy.IF_NEEDED`, `np.copy.ALWAYS`, `np.copy.NEVER`. This has the advantages of the enum, doesn't pollute the global namespace, and has an intuitive name. `np.array(x, copy=np.copy.ALWAYS)` It would be slightly more awkward to type, but is doable. A rough Python version sketch would be: class CopyFlag(enum.Enum): IF_NEEDED = 0 ALWAYS = 1 NEVER = 2 class NpCopy: IF_NEEDED : CopyFlag = CopyFlag.IF_NEEDED ALWAYS : CopyFlag = CopyFlag.ALWAYS NEVER : CopyFlag = CopyFlag.NEVER def __call__(self, x): return ...whatever copy returns... np.copy = NpCopy() St?fan From wieser.eric+numpy at gmail.com Mon Jun 21 12:56:25 2021 From: wieser.eric+numpy at gmail.com (Eric Wieser) Date: Mon, 21 Jun 2021 17:56:25 +0100 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> Message-ID: Stefan, that sketch is more complicated than it needs to be - `np.copy` is a python function, so you can just attach the attributes directly! (although maybe there are implications for static typing) ``` class CopyFlag(enum.Enum): IF_NEEDED = 0 ALWAYS = 1 NEVER = 2 np.copy.IF_NEEDED = CopyFlag.IF_NEEDED np.copy.ALWAYS = CopyFlag.ALWAYS np.copy.NEVER = CopyFlag.NEVER ``` It would also work nicely for the `True/False/other` version that was proposed in the much older PR as `np.never_copy`: ``` class _CopyNever: def __bool__(self): raise ValueError np.copy.NEVER = _CopyNever() ``` All of these versions (and using the enum directly) seem fine to me. If we go down the enum route route, we probably want to add "new-style" versions of `np.CLIP` and friends that are true enums / live within a more obvious namespace. Eric On Mon, 21 Jun 2021 at 17:24, Stefan van der Walt wrote: > On Sun, Jun 20, 2021, at 20:46, Gagandeep Singh wrote: > > I have recently joined the mailing list and have gone through the > previous discussions on this thread. I would like to share my analysis > (advantages and disadvantages) of three possible alternatives (Enum, > String, boolean) to support the proposed feature. > > Thanks for this thorough analysis, Gagandeep! > > I'll throw one more heretical idea out there: > > `np.copy.IF_NEEDED`, `np.copy.ALWAYS`, `np.copy.NEVER`. > > This has the advantages of the enum, doesn't pollute the global namespace, > and has an intuitive name. > > `np.array(x, copy=np.copy.ALWAYS)` > > It would be slightly more awkward to type, but is doable. A rough Python > version sketch would be: > > class CopyFlag(enum.Enum): > IF_NEEDED = 0 > ALWAYS = 1 > NEVER = 2 > > class NpCopy: > IF_NEEDED : CopyFlag = CopyFlag.IF_NEEDED > ALWAYS : CopyFlag = CopyFlag.ALWAYS > NEVER : CopyFlag = CopyFlag.NEVER > > def __call__(self, x): > return ...whatever copy returns... > > np.copy = NpCopy() > > > St?fan > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From albuscode at gmail.com Tue Jun 22 17:40:41 2021 From: albuscode at gmail.com (Inessa Pawson) Date: Wed, 23 Jun 2021 07:40:41 +1000 Subject: [Numpy-discussion] 2020 NumPy survey results Message-ID: Hi, everyone! In 2020, the NumPy survey team in partnership with students and faculty from a Master?s course in Survey Methodology jointly hosted by the University of Michigan and the University of Maryland conducted the first official NumPy community survey. Over 1,200 users from 75 countries participated to help us map out a landscape of the NumPy community and voiced their thoughts about the future of the project. We are finally ready to share with you the findings of this survey. You can read the full report here: https://numpy.org/user-survey-2020. The inaugural NumPy community survey was an effort of an international group of volunteers who showed a remarkable dedication to the project amidst the extraordinary challenges of the year 2020. Each is listed alphabetically by type of contribution. *Survey Design and Analysis* Ross Barnowski Sebastian Berg Xiaoyi Deng Ralf Gommers Stephanie Mendoza Inessa Pawson Deji Suolang Mame Fatou Thiam *Translations* Eric Depagne Xiaoyi Deng Yuki Dunn Kiko Correoso Garcia Jose Guzman Andrei Ivanov Paul Ivanov Siddhartha Kapoor Tetsuo Koyama Guilherme Leobas Dayane Machado Mahfuza Humayra Mohona Aerik Pawson Inessa Pawson Zijie Poh Sumera Priyadarsini Fabrice Silva Shaloo Shalini Kriti Singh Alexandre de Siqueira *Special thanks* Frederick Conrad (Survey Research Center, Institute for Social Research, University of Michigan) Danuta Dzier?anowska Jim Lepkowski (Survey Research Center, Institute for Social Research, University of Michigan) Claire McKay Bowen (Urban Institute) Michael Traugott (Survey Research Center, Institute for Social Research, University of Michigan) Also, a huge thank you to everyone who took part in this survey. We couldn?t do it without your support. Inessa Pawson NumPy Survey Team -------------- next part -------------- An HTML attachment was scrubbed... URL: From bas.vanbeek at hotmail.com Tue Jun 22 18:21:17 2021 From: bas.vanbeek at hotmail.com (bas van beek) Date: Tue, 22 Jun 2021 22:21:17 +0000 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com>, Message-ID: > Stefan, that sketch is more complicated than it needs to be - `np.copy` is a python function, so you can just attach the attributes directly! (although maybe there are implications for static typing) For the type annotations we can simply use something akin to St?fans proposed `NpCopy` class; probably in combination with `Protocol`. It's a bit more work compared to annotating a normal python function, but it's quite easy nevertheless. Regards, Bas ________________________________ From: NumPy-Discussion on behalf of Eric Wieser Sent: 21 June 2021 18:56 To: Discussion of Numerical Python Subject: Re: [Numpy-discussion] copy="never" discussion and no deprecation cycle? Stefan, that sketch is more complicated than it needs to be - `np.copy` is a python function, so you can just attach the attributes directly! (although maybe there are implications for static typing) ``` class CopyFlag(enum.Enum): IF_NEEDED = 0 ALWAYS = 1 NEVER = 2 np.copy.IF_NEEDED = CopyFlag.IF_NEEDED np.copy.ALWAYS = CopyFlag.ALWAYS np.copy.NEVER = CopyFlag.NEVER ``` It would also work nicely for the `True/False/other` version that was proposed in the much older PR as `np.never_copy`: ``` class _CopyNever: def __bool__(self): raise ValueError np.copy.NEVER = _CopyNever() ``` All of these versions (and using the enum directly) seem fine to me. If we go down the enum route route, we probably want to add "new-style" versions of `np.CLIP` and friends that are true enums / live within a more obvious namespace. Eric On Mon, 21 Jun 2021 at 17:24, Stefan van der Walt > wrote: On Sun, Jun 20, 2021, at 20:46, Gagandeep Singh wrote: > I have recently joined the mailing list and have gone through the previous discussions on this thread. I would like to share my analysis (advantages and disadvantages) of three possible alternatives (Enum, String, boolean) to support the proposed feature. Thanks for this thorough analysis, Gagandeep! I'll throw one more heretical idea out there: `np.copy.IF_NEEDED`, `np.copy.ALWAYS`, `np.copy.NEVER`. This has the advantages of the enum, doesn't pollute the global namespace, and has an intuitive name. `np.array(x, copy=np.copy.ALWAYS)` It would be slightly more awkward to type, but is doable. A rough Python version sketch would be: class CopyFlag(enum.Enum): IF_NEEDED = 0 ALWAYS = 1 NEVER = 2 class NpCopy: IF_NEEDED : CopyFlag = CopyFlag.IF_NEEDED ALWAYS : CopyFlag = CopyFlag.ALWAYS NEVER : CopyFlag = CopyFlag.NEVER def __call__(self, x): return ...whatever copy returns... np.copy = NpCopy() St?fan _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion at python.org https://mail.python.org/mailman/listinfo/numpy-discussion -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Tue Jun 22 22:20:12 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Tue, 22 Jun 2021 21:20:12 -0500 Subject: [Numpy-discussion] NumPy Community Meeting Wednesday Message-ID: <52bd9569fc8c7f48c698b9c6f8e6be131c2be0cd.camel@sipsolutions.net> Hi all, There will be a NumPy Community meeting Wednesday June 23rd at 20:00 UTC. Everyone is invited and encouraged to join in and edit the work-in-progress meeting topics and notes at: https://hackmd.io/76o-IxCjQX2mOXO_wwkcpg?both Best wishes Sebastian From ralf.gommers at gmail.com Wed Jun 23 10:11:21 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Wed, 23 Jun 2021 16:11:21 +0200 Subject: [Numpy-discussion] 2020 NumPy survey results In-Reply-To: References: Message-ID: On Tue, Jun 22, 2021 at 11:41 PM Inessa Pawson wrote: > Hi, everyone! > In 2020, the NumPy survey team in partnership with students and faculty > from a Master?s course in Survey Methodology jointly hosted by the > University of Michigan and the University of Maryland conducted the first > official NumPy community survey. Over 1,200 users from 75 countries > participated to help us map out a landscape of the NumPy community and > voiced their thoughts about the future of the project. > > We are finally ready to share with you the findings of this survey. You > can read the full report here: https://numpy.org/user-survey-2020. > Thank you Inessa and everyone who participated! The end result looks amazing and is super valuable. It took a little while to complete, but such is the nature of open source work - it's usually more complicated than expected, and real life commitments come first. The quality of the final pdf report, the infographic, and the detailed per-question analysis far exceeded my expectations. Cheers, Ralf -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Wed Jun 23 12:33:45 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Wed, 23 Jun 2021 10:33:45 -0600 Subject: [Numpy-discussion] 2020 NumPy survey results In-Reply-To: References: Message-ID: On Tue, Jun 22, 2021 at 3:41 PM Inessa Pawson wrote: > Hi, everyone! > In 2020, the NumPy survey team in partnership with students and faculty > from a Master?s course in Survey Methodology jointly hosted by the > University of Michigan and the University of Maryland conducted the first > official NumPy community survey. Over 1,200 users from 75 countries > participated to help us map out a landscape of the NumPy community and > voiced their thoughts about the future of the project. > > We are finally ready to share with you the findings of this survey. You > can read the full report here: https://numpy.org/user-survey-2020. > > The inaugural NumPy community survey was an effort of an international > group of volunteers who showed a remarkable dedication to the project > amidst the extraordinary challenges of the year 2020. Each is listed > alphabetically by type of contribution. > > *Survey Design and Analysis* > Ross Barnowski > Sebastian Berg > Xiaoyi Deng > Ralf Gommers > Stephanie Mendoza > Inessa Pawson > Deji Suolang > Mame Fatou Thiam > > *Translations* > Eric Depagne > Xiaoyi Deng > Yuki Dunn > Kiko Correoso Garcia > Jose Guzman > Andrei Ivanov > Paul Ivanov > Siddhartha Kapoor > Tetsuo Koyama > Guilherme Leobas > Dayane Machado > Mahfuza Humayra Mohona > Aerik Pawson > Inessa Pawson > Zijie Poh > Sumera Priyadarsini > Fabrice Silva > Shaloo Shalini > Kriti Singh > Alexandre de Siqueira > > *Special thanks* > Frederick Conrad (Survey Research Center, Institute for Social Research, > University of Michigan) > Danuta Dzier?anowska > Jim Lepkowski (Survey Research Center, Institute for Social Research, > University of Michigan) > Claire McKay Bowen (Urban Institute) > Michael Traugott (Survey Research Center, Institute for Social Research, > University of Michigan) > > Also, a huge thank you to everyone who took part in this survey. We > couldn?t do it without your support. > > Inessa Pawson > NumPy Survey Team > > Very nice and quite informative. There went my morning . . . Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From melissawm at gmail.com Wed Jun 23 13:22:18 2021 From: melissawm at gmail.com (=?UTF-8?Q?Melissa_Mendon=C3=A7a?=) Date: Wed, 23 Jun 2021 14:22:18 -0300 Subject: [Numpy-discussion] 2020 NumPy survey results In-Reply-To: References: Message-ID: Huge thanks to Inessa and the entire survey team for their work on this! There is a lot of good information to guide possible future actions... :) Best, - Melissa On Wed, Jun 23, 2021 at 1:37 PM Charles R Harris wrote: > > > On Tue, Jun 22, 2021 at 3:41 PM Inessa Pawson wrote: > >> Hi, everyone! >> In 2020, the NumPy survey team in partnership with students and faculty >> from a Master?s course in Survey Methodology jointly hosted by the >> University of Michigan and the University of Maryland conducted the first >> official NumPy community survey. Over 1,200 users from 75 countries >> participated to help us map out a landscape of the NumPy community and >> voiced their thoughts about the future of the project. >> >> We are finally ready to share with you the findings of this survey. You >> can read the full report here: https://numpy.org/user-survey-2020. >> >> The inaugural NumPy community survey was an effort of an international >> group of volunteers who showed a remarkable dedication to the project >> amidst the extraordinary challenges of the year 2020. Each is listed >> alphabetically by type of contribution. >> >> *Survey Design and Analysis* >> Ross Barnowski >> Sebastian Berg >> Xiaoyi Deng >> Ralf Gommers >> Stephanie Mendoza >> Inessa Pawson >> Deji Suolang >> Mame Fatou Thiam >> >> *Translations* >> Eric Depagne >> Xiaoyi Deng >> Yuki Dunn >> Kiko Correoso Garcia >> Jose Guzman >> Andrei Ivanov >> Paul Ivanov >> Siddhartha Kapoor >> Tetsuo Koyama >> Guilherme Leobas >> Dayane Machado >> Mahfuza Humayra Mohona >> Aerik Pawson >> Inessa Pawson >> Zijie Poh >> Sumera Priyadarsini >> Fabrice Silva >> Shaloo Shalini >> Kriti Singh >> Alexandre de Siqueira >> >> *Special thanks* >> Frederick Conrad (Survey Research Center, Institute for Social Research, >> University of Michigan) >> Danuta Dzier?anowska >> Jim Lepkowski (Survey Research Center, Institute for Social Research, >> University of Michigan) >> Claire McKay Bowen (Urban Institute) >> Michael Traugott (Survey Research Center, Institute for Social Research, >> University of Michigan) >> >> Also, a huge thank you to everyone who took part in this survey. We >> couldn?t do it without your support. >> >> Inessa Pawson >> NumPy Survey Team >> >> > Very nice and quite informative. There went my morning . . . > > Chuck > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Wed Jun 23 14:09:14 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Wed, 23 Jun 2021 11:09:14 -0700 Subject: [Numpy-discussion] =?utf-8?q?copy=3D=22never=22_discussion_and_n?= =?utf-8?q?o_deprecation_cycle=3F?= In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> Message-ID: <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> Perhaps it is also worth going back to explore our original motivation for making this change. One reason was that Sebastian didn't like people doing `x.shape = ...`. Users do that, presumably, to trigger an error if a copy needs to be made. However, we can catch that already: x = np.reshape(y, ...) if np.may_share_memory(x, y): ... We can fix Sebastian's issue by introducing a `copy` keyword to `reshape`, which currently has none: x = np.reshape(y, copy='never') For consistency, it would be nice to have `np.array` support copy=never, but if there is no urgency we can take the long route towards an API that uses strings (consistent with the rest of NumPy). The arguments against string names *right now* is that, if users write code with `copy='if-needed'` it will not work correctly with old NumPy code, since old versions will evaluate `if-needed` to True. The assessment was that this happens frequently, but we should consider how frequently, and how big of an issue it is. So, I guess ultimately I am wondering if the change to `np.array` is needed right now, or whether we can get away without it for a while. St?fan On Tue, Jun 22, 2021, at 15:21, bas van beek wrote: > > Stefan, that sketch is more complicated than it needs to be - `np.copy` is a python function, so you can just attach the attributes directly! (although maybe there are implications for static typing) > > For the type annotations we can simply use something akin to St?fans proposed `NpCopy` class; > probably in combination with `Protocol`. > It's a bit more work compared to annotating a normal python function, but it's quite easy nevertheless. > > Regards, Bas > > > *From:* NumPy-Discussion on behalf of Eric Wieser > *Sent:* 21 June 2021 18:56 > *To:* Discussion of Numerical Python > *Subject:* Re: [Numpy-discussion] copy="never" discussion and no deprecation cycle? > > > Stefan, that sketch is more complicated than it needs to be - `np.copy` is a python function, so you can just attach the attributes directly! (although maybe there are implications for static typing) > ``` > class CopyFlag(enum.Enum): > IF_NEEDED = 0 > ALWAYS = 1 > NEVER = 2 > > np.copy.IF_NEEDED = CopyFlag.IF_NEEDED > np.copy.ALWAYS = CopyFlag.ALWAYS > np.copy.NEVER = CopyFlag.NEVER > ``` > It would also work nicely for the `True/False/other` version that was proposed in the much older PR as `np.never_copy`: > ``` > class _CopyNever: > def __bool__(self): raise ValueError > > np.copy.NEVER = _CopyNever() > ``` > > All of these versions (and using the enum directly) seem fine to me. > If we go down the enum route route, we probably want to add "new-style" versions of `np.CLIP` and friends that are true enums / live within a more obvious namespace. > > Eric > > On Mon, 21 Jun 2021 at 17:24, Stefan van der Walt wrote: >> On Sun, Jun 20, 2021, at 20:46, Gagandeep Singh wrote: >> > I have recently joined the mailing list and have gone through the previous discussions on this thread. I would like to share my analysis (advantages and disadvantages) of three possible alternatives (Enum, String, boolean) to support the proposed feature. >> >> Thanks for this thorough analysis, Gagandeep! >> >> I'll throw one more heretical idea out there: >> >> `np.copy.IF_NEEDED`, `np.copy.ALWAYS`, `np.copy.NEVER`. >> >> This has the advantages of the enum, doesn't pollute the global namespace, and has an intuitive name. >> >> `np.array(x, copy=np.copy.ALWAYS)` >> >> It would be slightly more awkward to type, but is doable. A rough Python version sketch would be: >> >> class CopyFlag(enum.Enum): >> IF_NEEDED = 0 >> ALWAYS = 1 >> NEVER = 2 >> >> class NpCopy: >> IF_NEEDED : CopyFlag = CopyFlag.IF_NEEDED >> ALWAYS : CopyFlag = CopyFlag.ALWAYS >> NEVER : CopyFlag = CopyFlag.NEVER >> >> def __call__(self, x): >> return ...whatever copy returns... >> >> np.copy = NpCopy() >> >> >> St?fan >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > From charlesr.harris at gmail.com Wed Jun 23 19:38:34 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Wed, 23 Jun 2021 17:38:34 -0600 Subject: [Numpy-discussion] NumPy 1.21.0 release Message-ID: Hi All, On behalf of the NumPy team I am pleased to announce the release of NumPy 1.21.0. The highlights are - continued SIMD work covering more functions and platforms, - initial work on the new dtype infrastructure and casting, - universal2 wheels for Python 3.8 and Python 3.9 on Mac, - improved documentation, - improved annotations, - new ``PCG64DXSM`` bitgenerator for random numbers. This NumPy release is the result of 581 merged pull requests contributed by 175 people. The Python versions supported for this release are 3.7-3.9, support for Python 3.10 will be added after Python 3.10 is released. Wheels can be downloaded from PyPI ; source archives, release notes, and wheel hashes are available on Github . Linux users will need pip >= 0.19.3 in order to install manylinux2010 and manylinux2014 wheels. *Contributors* A total of 175 people contributed to this release. People with a "+" by their names contributed a patch for the first time. - @8bitmp3 + - @DWesl + - @Endolith - @Illviljan + - @Lbogula + - @Lisa + - @Patrick + - @Scian + - @h-vetinari + - @h6197627 + - @jbCodeHub + - @legoffant + - @sfolje0 + - @tautaus + - @yetanothercheer + - Abhay Raghuvanshi + - Adrian Price-Whelan + - Aerik Pawson + - Agbonze Osazuwa + - Aitik Gupta + - Al-Baraa El-Hag - Alex Henrie - Alexander Hunt + - Aliz? Papp + - Allan Haldane - Amarnath1904 + - Amrit Krishnan + - Andras Deak - AngelGris + - Anne Archibald - Anthony Vo + - Antony Lee - Atharva-Vidwans + - Ayush Verma + - Bas van Beek - Bharat Raghunathan - Bhargav V + - Brian Soto - Carl Michal + - Charles Harris - Charles Stern + - Chiara Marmo + - Chris Barnes + - Chris Vavaliaris - Christina Hedges + - Christoph Gohlke - Christopher Dahlin + - Christos Efstathiou + - Chunlin Fang - Constanza Fierro + - Daniel Evans + - Daniel Montes + - Dario Mory + - David Carlier + - David Stansby - Deepyaman Datta + - Derek Homeier - Dong Keun Oh + - Dylan Cutler + - Eric Larson - Eric Wieser - Eva Jau + - Evgeni Burovski - FX Coudert + - Faris A Chugthai + - Filip Ter + - Filip Trojan + - Fran?ois Le Lay + - Ganesh Kathiresan - Giannis Zapantis + - Giulio Procopio + - Greg Lucas + - Hollow Man + - Holly Corbett + - I-Shen Leong + - Inessa Pawson - Isabela Presedo-Floyd - Ismael Jimenez + - Isuru Fernando - Jakob Jakobson - James Gerity + - Jamie Macey + - Jasmin Classen + - Jody Klymak + - Joseph Fox-Rabinovitz - J?rome Eertmans + - J?r?me Kieffer + - Kamil Choudhury + - Kasia Leszek + - Keller Meier + - Kenichi Maehashi - Kevin Sheppard - Kulin Seth + - Kumud Lakara + - Laura Kopf + - Laura Martens + - Leo Singer + - Leonardus Chen + - Lima Tango + - Lumir Balhar + - Maia Kaplan + - Mainak Debnath + - Marco Aur?lio da Costa + - Marta Lemanczyk + - Marten van Kerkwijk - Mary Conley + - Marysia Winkels + - Mateusz Sok?? + - Matt Haberland - Matt Hall + - Matt Ord + - Matthew Badin + - Matthias Bussonnier - Matthias Geier - Matti Picus - Mat?as R?os + - Maxim Belkin + - Melissa Weber Mendon?a - Meltem Eren Copur + - Michael Dubravski + - Michael Lamparski - Michal W. Tarnowski + - Micha? G?rny + - Mike Boyle + - Mike Toews - Misal Raj + - Mitchell Faas + - Mukulikaa Parhari + - Neil Girdhar + - Nicholas McKibben + - Nico Schl?mer - Nicolas Hug + - Nilo Kruchelski + - Nirjas Jakilim + - Ohad Ravid + - Olivier Grisel - Pamphile ROY + - Panos Mavrogiorgos + - Patrick T. Komiske III + - Pearu Peterson - Peter Hawkins + - Raghuveer Devulapalli - Ralf Gommers - Ra?l Mont?n Pinillos + - Rin Arakaki + - Robert Kern - Rohit Sanjay - Roman Yurchak - Ronan Lamy - Ross Barnowski - Ryan C Cooper - Ryan Polley + - Ryan Soklaski - Sabrina Simao + - Sayed Adel - Sebastian Berg - Shen Zhou + - Stefan van der Walt - Sylwester Arabas + - Takanori Hirano - Tania Allard + - Thomas J. Fan + - Thomas Orgis + - Tim Hoffmann - Tomoki, Karatsu + - Tong Zou + - Touqir Sajed + - Tyler Reddy - Wansoo Kim - Warren Weckesser - Weh Andreas + - Yang Hau - Yashasvi Misra + - Zolboo Erdenebaatar + - Zolisa Bleki Cheers, Charles Harris -------------- next part -------------- An HTML attachment was scrubbed... URL: From jni at fastmail.com Wed Jun 23 21:01:45 2021 From: jni at fastmail.com (Juan Nunez-Iglesias) Date: Thu, 24 Jun 2021 11:01:45 +1000 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> Message-ID: <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> Personally I was a fan of the Enum approach. People dislike it because it is not ?Pythonic?, but imho that is an accident of history because Enums only appeared (iirc) in Python 3.4. In fact, they are the right data structure for this particular problem, so for my money we should *make it* Pythonic by starting to use it everywhere where we have a finite list of choices. Juan. > On 24 Jun 2021, at 4:09 am, Stefan van der Walt wrote: > > Perhaps it is also worth going back to explore our original motivation for making this change. > > One reason was that Sebastian didn't like people doing `x.shape = ...`. Users do that, presumably, to trigger an error if a copy needs to be made. However, we can catch that already: > > x = np.reshape(y, ...) > if np.may_share_memory(x, y): > ... > > We can fix Sebastian's issue by introducing a `copy` keyword to `reshape`, which currently has none: > > x = np.reshape(y, copy='never') > > For consistency, it would be nice to have `np.array` support copy=never, but if there is no urgency we can take the long route towards an API that uses strings (consistent with the rest of NumPy). > > The arguments against string names *right now* is that, if users write code with `copy='if-needed'` it will not work correctly with old NumPy code, since old versions will evaluate `if-needed` to True. The assessment was that this happens frequently, but we should consider how frequently, and how big of an issue it is. > > So, I guess ultimately I am wondering if the change to `np.array` is needed right now, or whether we can get away without it for a while. > > St?fan > > On Tue, Jun 22, 2021, at 15:21, bas van beek wrote: >>> Stefan, that sketch is more complicated than it needs to be - `np.copy` is a python function, so you can just attach the attributes directly! (although maybe there are implications for static typing) >> >> For the type annotations we can simply use something akin to St?fans proposed `NpCopy` class; >> probably in combination with `Protocol`. >> It's a bit more work compared to annotating a normal python function, but it's quite easy nevertheless. >> >> Regards, Bas >> >> >> *From:* NumPy-Discussion on behalf of Eric Wieser >> *Sent:* 21 June 2021 18:56 >> *To:* Discussion of Numerical Python >> *Subject:* Re: [Numpy-discussion] copy="never" discussion and no deprecation cycle? >> >> >> Stefan, that sketch is more complicated than it needs to be - `np.copy` is a python function, so you can just attach the attributes directly! (although maybe there are implications for static typing) >> ``` >> class CopyFlag(enum.Enum): >> IF_NEEDED = 0 >> ALWAYS = 1 >> NEVER = 2 >> >> np.copy.IF_NEEDED = CopyFlag.IF_NEEDED >> np.copy.ALWAYS = CopyFlag.ALWAYS >> np.copy.NEVER = CopyFlag.NEVER >> ``` >> It would also work nicely for the `True/False/other` version that was proposed in the much older PR as `np.never_copy`: >> ``` >> class _CopyNever: >> def __bool__(self): raise ValueError >> >> np.copy.NEVER = _CopyNever() >> ``` >> >> All of these versions (and using the enum directly) seem fine to me. >> If we go down the enum route route, we probably want to add "new-style" versions of `np.CLIP` and friends that are true enums / live within a more obvious namespace. >> >> Eric >> >> On Mon, 21 Jun 2021 at 17:24, Stefan van der Walt wrote: >>> On Sun, Jun 20, 2021, at 20:46, Gagandeep Singh wrote: >>>> I have recently joined the mailing list and have gone through the previous discussions on this thread. I would like to share my analysis (advantages and disadvantages) of three possible alternatives (Enum, String, boolean) to support the proposed feature. >>> >>> Thanks for this thorough analysis, Gagandeep! >>> >>> I'll throw one more heretical idea out there: >>> >>> `np.copy.IF_NEEDED`, `np.copy.ALWAYS`, `np.copy.NEVER`. >>> >>> This has the advantages of the enum, doesn't pollute the global namespace, and has an intuitive name. >>> >>> `np.array(x, copy=np.copy.ALWAYS)` >>> >>> It would be slightly more awkward to type, but is doable. A rough Python version sketch would be: >>> >>> class CopyFlag(enum.Enum): >>> IF_NEEDED = 0 >>> ALWAYS = 1 >>> NEVER = 2 >>> >>> class NpCopy: >>> IF_NEEDED : CopyFlag = CopyFlag.IF_NEEDED >>> ALWAYS : CopyFlag = CopyFlag.ALWAYS >>> NEVER : CopyFlag = CopyFlag.NEVER >>> >>> def __call__(self, x): >>> return ...whatever copy returns... >>> >>> np.copy = NpCopy() >>> >>> >>> St?fan >>> _______________________________________________ >>> NumPy-Discussion mailing list >>> NumPy-Discussion at python.org >>> https://mail.python.org/mailman/listinfo/numpy-discussion >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion From tyler.je.reddy at gmail.com Wed Jun 23 21:45:40 2021 From: tyler.je.reddy at gmail.com (Tyler Reddy) Date: Wed, 23 Jun 2021 19:45:40 -0600 Subject: [Numpy-discussion] NumPy 1.21.0 release In-Reply-To: References: Message-ID: Thanks Chuck! -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Wed Jun 23 22:25:23 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Wed, 23 Jun 2021 19:25:23 -0700 Subject: [Numpy-discussion] =?utf-8?q?copy=3D=22never=22_discussion_and_n?= =?utf-8?q?o_deprecation_cycle=3F?= In-Reply-To: <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> Message-ID: <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> On Wed, Jun 23, 2021, at 18:01, Juan Nunez-Iglesias wrote: > Personally I was a fan of the Enum approach. People dislike it because > it is not ?Pythonic?, but imho that is an accident of history because > Enums only appeared (iirc) in Python 3.4. In fact, they are the right > data structure for this particular problem, so for my money we should > *make it* Pythonic by starting to use it everywhere where we have a > finite list of choices. The enum definitely feels like the right abstraction. But the resulting API is clunky because of naming and top-level scarcity. Hence the suggestion to tag it onto np.copy, but there is an argument to be made for consistency by placing all enums under np.flags or similar. Still, np.flags.copy.IF_NEEDED gets long. St?fan From ben.v.root at gmail.com Wed Jun 23 22:26:16 2021 From: ben.v.root at gmail.com (Benjamin Root) Date: Wed, 23 Jun 2021 22:26:16 -0400 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> Message-ID: > One reason was that Sebastian didn't like people doing `x.shape = ...`. > Users do that, presumably, to trigger an error if a copy needs to be made. Users do that because it is 1) easier than every other option, and 2) I am pretty sure we were encouraged to do it this way for the past 10 years. The whole "it won't copy" business (to me at least) was an added bonus. Most of the time, I didn't want to copy anyway, so, sure! `x.shape = ...` has been around for a long time, and you are going to have a hard time convincing people to drop using such an easy-to-use property setter in favor of an approach that adds more typing and takes a bit more to read. There's also lots and lots of online tutorials, books, and stackoverflow snippets that have this usage pattern. I think the horse has long since left the barn, the chickens came to roost, and the cows came home... > We can fix Sebastian's issue by introducing a `copy` keyword to `reshape`, > which currently has none: > > This isn't a terrible idea to pursue, regardless of what I said above! Explicit is better than implicit, and giving programmers the opportunity to be explicit about what sort of copy semantics they intend in more places would improve the library going forward. I also like to highlight what Chuck said a few posts ago about the fact that `copy=False` does not really mean what people might think it means, and taking steps to address that might also be good for the library. Ben Root -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben.v.root at gmail.com Wed Jun 23 22:34:46 2021 From: ben.v.root at gmail.com (Benjamin Root) Date: Wed, 23 Jun 2021 22:34:46 -0400 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> Message-ID: Why not both? The definition of the enum might live in a proper namespace location, but I see no reason why `np.copy.IF_NEEDED = np.flags.CopyFlgs.IF_NEEDED` can't be done (I mean, adding the enum members as attributes to the `np.copy()` function). Seems perfectly reasonable to me, and reads pretty nicely, too. It isn't like we are dropping support for the booleans, so those are still around for easy typing. Ben Root On Wed, Jun 23, 2021 at 10:26 PM Stefan van der Walt wrote: > On Wed, Jun 23, 2021, at 18:01, Juan Nunez-Iglesias wrote: > > Personally I was a fan of the Enum approach. People dislike it because > > it is not ?Pythonic?, but imho that is an accident of history because > > Enums only appeared (iirc) in Python 3.4. In fact, they are the right > > data structure for this particular problem, so for my money we should > > *make it* Pythonic by starting to use it everywhere where we have a > > finite list of choices. > > The enum definitely feels like the right abstraction. But the resulting > API is clunky because of naming and top-level scarcity. > > Hence the suggestion to tag it onto np.copy, but there is an argument to > be made for consistency by placing all enums under np.flags or similar. > > Still, np.flags.copy.IF_NEEDED gets long. > > St?fan > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From gsingh at quansight.com Thu Jun 24 00:12:09 2021 From: gsingh at quansight.com (Gagandeep Singh) Date: Thu, 24 Jun 2021 09:42:09 +0530 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> Message-ID: To me, adding enums as attributes of the `np.copy` function seems like a pretty good idea. This trick might resolve the only relatively important issue with Enums. Then, the benefits of Enum might outweigh the disadvantage of uncommon of usage of Enums in NumPy APIs. As an end user, I would like Enums rather than strings as the former would provide fixed number of choices (hence, easy debugging) as compared to the latter (in which case, infinite choices for passing strings and the code may work silently, imagine, passing, `if_neded` instead of `if_needed` and it working perfectly fine (silently). This thing has happened to me while using another library. On Thu, Jun 24, 2021 at 8:05 AM Benjamin Root wrote: > Why not both? The definition of the enum might live in a proper namespace > location, but I see no reason why `np.copy.IF_NEEDED = > np.flags.CopyFlgs.IF_NEEDED` can't be done (I mean, adding the enum members > as attributes to the `np.copy()` function). Seems perfectly reasonable to > me, and reads pretty nicely, too. It isn't like we are dropping support for > the booleans, so those are still around for easy typing. > > Ben Root > > On Wed, Jun 23, 2021 at 10:26 PM Stefan van der Walt > wrote: > >> On Wed, Jun 23, 2021, at 18:01, Juan Nunez-Iglesias wrote: >> > Personally I was a fan of the Enum approach. People dislike it because >> > it is not ?Pythonic?, but imho that is an accident of history because >> > Enums only appeared (iirc) in Python 3.4. In fact, they are the right >> > data structure for this particular problem, so for my money we should >> > *make it* Pythonic by starting to use it everywhere where we have a >> > finite list of choices. >> >> The enum definitely feels like the right abstraction. But the resulting >> API is clunky because of naming and top-level scarcity. >> >> Hence the suggestion to tag it onto np.copy, but there is an argument to >> be made for consistency by placing all enums under np.flags or similar. >> >> Still, np.flags.copy.IF_NEEDED gets long. >> >> St?fan >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Thu Jun 24 04:03:29 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Thu, 24 Jun 2021 10:03:29 +0200 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> Message-ID: On Thu, Jun 24, 2021 at 6:12 AM Gagandeep Singh wrote: > To me, adding enums as attributes of the `np.copy` function seems like a > pretty good idea. This trick might resolve the only relatively important > issue with Enums. Then, the benefits of Enum might outweigh the > disadvantage of uncommon of usage of Enums in NumPy APIs. As an end user, I > would like Enums rather than strings as the former would provide fixed > number of choices (hence, easy debugging) as compared to the latter (in > which case, infinite choices for passing strings and the code may work > silently, imagine, passing, `if_neded` instead of `if_needed` and it > working perfectly fine (silently). This thing has happened to me while > using another library. > Any well-designed function accepting strings should do input validation though, to raise an error in case of mis-spelling. > On Thu, Jun 24, 2021 at 8:05 AM Benjamin Root > wrote: > >> Why not both? The definition of the enum might live in a proper namespace >> location, but I see no reason why `np.copy.IF_NEEDED = >> np.flags.CopyFlgs.IF_NEEDED` can't be done (I mean, adding the enum members >> as attributes to the `np.copy()` function). Seems perfectly reasonable to >> me, and reads pretty nicely, too. It isn't like we are dropping support for >> the booleans, so those are still around for easy typing. >> >> Ben Root >> >> On Wed, Jun 23, 2021 at 10:26 PM Stefan van der Walt < >> stefanv at berkeley.edu> wrote: >> >>> On Wed, Jun 23, 2021, at 18:01, Juan Nunez-Iglesias wrote: >>> > Personally I was a fan of the Enum approach. People dislike it because >>> > it is not ?Pythonic?, but imho that is an accident of history because >>> > Enums only appeared (iirc) in Python 3.4. In fact, they are the right >>> > data structure for this particular problem, so for my money we should >>> > *make it* Pythonic by starting to use it everywhere where we have a >>> > finite list of choices. >>> >>> The enum definitely feels like the right abstraction. But the resulting >>> API is clunky because of naming and top-level scarcity. >>> >> I agree with this. Enums are nice _in theory_, but once you start using them you quickly figure out they're clunky, plus the all-caps looks bad (I'd consider ignoring that style recommendation). For API design they don't make all that much sense compared to "here's a list of strings we accept, and everything else raises an informative error". The only reasons I can think of to use them are: 1. Cases like never-copy, when there's a reason to have an object we can add a method too (`__bool__` here) 2. There's a long list of options and we want to give users a way to explore or iterate over those, so a public object is useful. so cases where we'd otherwise use a class (instance) instead of documenting the string options. I can't think of many examples like this, padding modes for `scipy.ndimage.convolve` is the only one that comes to mind. In general I don't expect we'd need (m)any more. Hence I'd suggest adding a new namespace like `np.flags` is not a good idea. Right now all we need is a single object, if we end up going the enum route. For this one, I'd say it kinda looks like we do need one, so then let's just add one and be done with it, rather than inventing odd patterns like tacking enum members onto an existing function. Cheers, Ralf > >>> Hence the suggestion to tag it onto np.copy, but there is an argument to >>> be made for consistency by placing all enums under np.flags or similar. >>> >>> Still, np.flags.copy.IF_NEEDED gets long. >>> >>> St?fan >>> _______________________________________________ >>> NumPy-Discussion mailing list >>> NumPy-Discussion at python.org >>> https://mail.python.org/mailman/listinfo/numpy-discussion >>> >> _______________________________________________ >> NumPy-Discussion mailing list >> NumPy-Discussion at python.org >> https://mail.python.org/mailman/listinfo/numpy-discussion >> > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Thu Jun 24 15:22:21 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Thu, 24 Jun 2021 12:22:21 -0700 Subject: [Numpy-discussion] =?utf-8?q?copy=3D=22never=22_discussion_and_n?= =?utf-8?q?o_deprecation_cycle=3F?= In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> Message-ID: On Thu, Jun 24, 2021, at 01:03, Ralf Gommers wrote: > For this one, I'd say it kinda looks like we do need one, so then let's just add one and be done with it, rather than inventing odd patterns like tacking enum members onto an existing function. There are two arguments on the table that resonate with me: 1. Chuck argues that the current `copy=False` behavior (which, in fact, means copy-if-needed) is nonsensical and should be fixed. 2. Ralf argues that strings are ultimately the interface we'd like to see. To achieve (1), we would need a deprecation cycle. During that deprecation cycle, we would need to provide a way to continue providing 'copy-if-needed' behavior. This can be achieved either with an enum or by accepting strings. Stephan argues that accepting strings will be harmful to new code running on old versions of NumPy. I would still like to get a sense of how often this happens, or if that is a hit we are willing to take. If we decide that the concern is a significant one, then we would have to go the enum route, at least for a while. However, I see no compelling reason to have that enum live in the top-level namespace though: it is for relatively advanced use, and it will be temporary. If we take the enum route, how do we get to (2)? We add a type check for a few releases and raise an error on string arguments (or, alternatively, handle 'always'/'never'/'if_needed' without advertising that functionality). Then, once we switch to string arguments, users will get an error (for old NumPy) or it will work as expected (for new NumPy). I didn't think so originally, but I suppose we are in NEP territory now. St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From shoyer at gmail.com Thu Jun 24 21:12:40 2021 From: shoyer at gmail.com (Stephan Hoyer) Date: Thu, 24 Jun 2021 18:12:40 -0700 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <224c4894-4ed2-a6ae-bd7a-2de8ce3b7d02@gmail.com> <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> Message-ID: On Thu, Jun 24, 2021 at 1:03 AM Ralf Gommers wrote: > I agree with this. Enums are nice _in theory_, but once you start using > them you quickly figure out they're clunky, plus the all-caps looks bad > (I'd consider ignoring that style recommendation). For API design they > don't make all that much sense compared to "here's a list of strings we > accept, and everything else raises an informative error". The only reasons > I can think of to use them are: > > 1. Cases like never-copy, when there's a reason to have an object we can > add a method too (`__bool__` here) > 2. There's a long list of options and we want to give users a way to > explore or iterate over those, so a public object is useful. so cases where > we'd otherwise use a class (instance) instead of documenting the string > options. I can't think of many examples like this, padding modes for > `scipy.ndimage.convolve` is the only one that comes to mind. > I think Enums are a very clean abstraction for capturing a discrete set of options in a type-safe way, both at runtime and with static checks. You also don't have to keep lists of strings in sync, which makes them a little easier to document. That said, I agree that in most cases the overall benefits are rather marginal. I don't think it's worth a mass migration of existing NumPy functions, which uses strings for categorical options. In this particular case, I think there is a clear advantage to using an enum, to avoid inadvertent bugs with old versions of NumPy. > In general I don't expect we'd need (m)any more. Hence I'd suggest adding > a new namespace like `np.flags` is not a good idea. Right now all we need > is a single object, if we end up going the enum route. > > For this one, I'd say it kinda looks like we do need one, so then let's > just add one and be done with it, rather than inventing odd patterns like > tacking enum members onto an existing function. > I agree with both of these. If we're only going to add a couple of enums, it's not worth worrying about a couple of extra objects polluting NumPy's namespace. I would just add np.CopyMode, rather than inventing a new design pattern. At some point in the future, we might either: (1) switch the interface to use strings, in which case we would stop recommending/documenting CopyMode (like plenty of other top level objects in the NumPy namespace) (2) add many more enums, in which case we can consider assigning enums as function attributes or putting them in a namespace. But so far the only other enum I've heard suggested is np.ClipMode. Adding two enums to the NumPy namespace would hardly make a difference at this point, given how many objects are already there. -------------- next part -------------- An HTML attachment was scrubbed... URL: From a.h.jaffe at gmail.com Fri Jun 25 05:30:00 2021 From: a.h.jaffe at gmail.com (Andrew Jaffe) Date: Fri, 25 Jun 2021 10:30:00 +0100 Subject: [Numpy-discussion] copy="never" discussion and no deprecation cycle? In-Reply-To: References: <18d0ca87-7bf8-4629-9781-364a75b92a94@www.fastmail.com> <9e960b67-2556-4485-824f-13c4e83868be@www.fastmail.com> <8E0F2CD0-CBBC-4252-8B6D-9D69E7E8DCAB@fastmail.com> <8c0dd25f-8df6-4d59-ae47-0961cf6b95db@www.fastmail.com> Message-ID: Dear all, On 25/06/2021 02:12, Stephan Hoyer wrote: ... > I think Enums are a very clean abstraction for capturing a discrete set > of options in a type-safe way, both at runtime and with static checks. > You also don't have to keep lists of strings in sync, which makes them a > little easier to?document. > > That said, I agree that in most cases the overall benefits are rather > marginal. I don't think it's worth a mass migration of existing NumPy > functions, which uses strings for categorical options. > > In this particular case, I think there is a clear advantage to using an > enum, to avoid inadvertent?bugs?with old versions of NumPy. ... > At some point in the future, we might either: > (1) switch the interface to use strings, in which case we would stop > recommending/documenting CopyMode (like plenty of other top level > objects in the NumPy namespace) > (2) add many more enums, in which case we can consider assigning enums > as function attributes or putting them in a namespace. But so far the > only other enum I've heard suggested is np.ClipMode. Adding two enums to > the NumPy namespace would hardly make a difference at this point, given > how many objects are already there. I'm just an interested observer, but it seems that going the enum route is a clear "practicality beats purity" decision for this case. I really don't see the need to eventually move [back] to strings. Also, perhaps I missed a discussion of it in the thread, but aren't enums also better for typechecking? I actually prefer enums overall for a number of reasons, but I agree that they are not worth a "mass migration". From sebastian at sipsolutions.net Mon Jun 28 13:49:41 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Mon, 28 Jun 2021 12:49:41 -0500 Subject: [Numpy-discussion] Moving triage meeting two hours earlier Message-ID: <25858a3400f6265290cf2e1f0377982c12772102.camel@sipsolutions.net> Hi all, I would like to move the triage meeting to two hours earlier. That would make it 9am Pacific time and 4pm UTC (6pm central European summer time). That is to allow eastern time zones to join more easily. If nobody of the core team has any objections, I will adjust the time for this Wednesday and announce with the new time tomorrow. Cheers, Sebastian From cimrman3 at ntc.zcu.cz Tue Jun 29 14:03:43 2021 From: cimrman3 at ntc.zcu.cz (Robert Cimrman) Date: Tue, 29 Jun 2021 20:03:43 +0200 Subject: [Numpy-discussion] ANN: SfePy 2021.2 Message-ID: I am pleased to announce the release of SfePy 2021.2. Description ----------- SfePy (simple finite elements in Python) is a software for solving systems of coupled partial differential equations by finite element methods. It is distributed under the new BSD license. Home page: https://sfepy.org Mailing list: https://mail.python.org/mm3/mailman3/lists/sfepy.python.org/ Git (source) repository, issue tracker: https://github.com/sfepy/sfepy Highlights of this release -------------------------- - new sensitivity analysis terms - positive FE basis based on Bernstein polynomials - smaller memory footprint of terms with constant material parameters For full release notes see [1]. Cheers, Robert Cimrman [1] http://docs.sfepy.org/doc/release_notes.html#id1 --- Contributors to this release in alphabetical order: Robert Cimrman Vladimir Lukes From sebastian at sipsolutions.net Tue Jun 29 16:47:32 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Tue, 29 Jun 2021 15:47:32 -0500 Subject: [Numpy-discussion] NumPy Development Meeting Wednesday - Triage Focus (now earlier!) Message-ID: <06269bd046641582f3c9f0dc12b3d83d31822cd1.camel@sipsolutions.net> Hi all, Our bi-weekly triage-focused NumPy development meeting is Wednesday, June 30th at 9 am Pacific Time (18:00 UTC). Everyone is invited to join in and edit the work-in-progress meeting topics and notes: https://hackmd.io/68i_JvOYQfy9ERiHgXMPvg I encourage everyone to notify us of issues or PRs that you feel should be prioritized, discussed, or reviewed. Best regards Sebastian From ilhanpolat at gmail.com Tue Jun 29 18:21:55 2021 From: ilhanpolat at gmail.com (Ilhan Polat) Date: Wed, 30 Jun 2021 00:21:55 +0200 Subject: [Numpy-discussion] is_triangular, is_diagonal, is_symmetric et al. in NumPy or SciPy linalg Message-ID: Dear all, I'm writing some helper Cythpm functions for scipy.linalg which is kinda performant and usable. And there is still quite some wiggle room for more. In many linalg routines there is a lot of performance benefit if the structure can be discovered in a cheap and reliable way at the outset. For example if symmetric then eig can delegate to eigh or if triangular then triangular solvers can be used in linalg.solve and lstsq so forth Here is the Cythonized version for Jupyter notebook to paste to discover the lower/upper bandwidth of square array A that competes well with A != 0 just to use some low level function (note the latter returns an array hence more cost is involved) There is a higher level supervisor function that checks C-contiguousness otherwise specializes to different versions of it Initial cell %load_ext Cython %load_ext line_profiler import cython import line_profiler Then another cell %%cython # cython: language_level=3 # cython: linetrace=True # cython: binding = True # distutils: define_macros=CYTHON_TRACE=1 # distutils: define_macros=CYTHON_TRACE_NOGIL=1 cimport cython cimport numpy as cnp import numpy as np import line_profiler ctypedef fused np_numeric_t: cnp.int8_t cnp.int16_t cnp.int32_t cnp.int64_t cnp.uint8_t cnp.uint16_t cnp.uint32_t cnp.uint64_t cnp.float32_t cnp.float64_t cnp.complex64_t cnp.complex128_t cnp.int_t cnp.long_t cnp.longlong_t cnp.uint_t cnp.ulong_t cnp.ulonglong_t cnp.intp_t cnp.uintp_t cnp.float_t cnp.double_t cnp.longdouble_t @cython.linetrace(True) @cython.initializedcheck(False) @cython.boundscheck(False) @cython.wraparound(False) cpdef inline (int, int) band_check_internal(np_numeric_t[:, ::1]A): cdef Py_ssize_t n = A.shape[0], lower_band = 0, upper_band = 0, r, c cdef np_numeric_t zero = 0 for r in xrange(n): # Only bother if outside the existing band: for c in xrange(r-lower_band): if A[r, c] != zero: lower_band = r - c break for c in xrange(n - 1, r + upper_band, -1): if A[r, c] != zero: upper_band = c - r break return lower_band, upper_band Final cell for use-case --------------- # Make arbitrary lower-banded array n = 50 # array size k = 3 # k'th subdiagonal R = np.zeros([n, n], dtype=np.float32) R[[x for x in range(n)], [x for x in range(n)]] = 1 R[[x for x in range(n-1)], [x for x in range(1,n)]] = 1 R[[x for x in range(1,n)], [x for x in range(n-1)]] = 1 R[[x for x in range(k,n)], [x for x in range(n-k)]] = 2 Some very haphazardly put together metrics %timeit band_check_internal(R) 2.59 ?s ? 84.7 ns per loop (mean ? std. dev. of 7 runs, 100000 loops each) %timeit np.linalg.solve(R, zzz) 824 ?s ? 6.24 ?s per loop (mean ? std. dev. of 7 runs, 1000 loops each) %timeit R != 0. 1.65 ?s ? 43.1 ns per loop (mean ? std. dev. of 7 runs, 1000000 loops each) So the worst case cost is negligible in general (note that the given code is slower as it uses the fused type however if I go with tempita standalone version is faster) Two questions: 1) This is missing np.half/float16 functionality since any arithmetic with float16 is might not be reliable including nonzero check. IS it safe to view it as np.uint16 and use that specialization? I'm not sure about the sign bit hence the question. I can leave this out since almost all linalg suite rejects this datatype due to well-known lack of supprt. 2) Should this be in NumPy or SciPy linalg? It is quite relevant to be on SciPy but then again this stuff is purely about array structures. But if the opinion is for NumPy then I would need a volunteer because NumPy codebase flies way above my head. All feedback welcome Best ilhan -------------- next part -------------- An HTML attachment was scrubbed... URL: From evgeny.burovskiy at gmail.com Wed Jun 30 12:12:30 2021 From: evgeny.burovskiy at gmail.com (Evgeni Burovski) Date: Wed, 30 Jun 2021 19:12:30 +0300 Subject: [Numpy-discussion] is_triangular, is_diagonal, is_symmetric et al. in NumPy or SciPy linalg In-Reply-To: References: Message-ID: Hi Ilhan, Overall I think something like this would be great. However, I wonder if you considered having a specialized container with a structure tag instead of trying to discover the structure. If it's a container, it can neatly wrap various lapack storage schemes and dispatch to an appropriate lapack functionality. Possibly even sparse storage schemes. And it seems a bit more robust than trying to discover the structure (e.g. what about off-band elements of \sim 1e-16 etc). The next question is of course if this should live in scipy/numpy .linalg or as a separate repo, at least for some time (maybe in the scipy organization?). So that it can iterate faster, among other things. (I'd be interested in contributing FWIW) Cheers, Evgeni On Wed, Jun 30, 2021 at 1:22 AM Ilhan Polat wrote: > > Dear all, > > I'm writing some helper Cythpm functions for scipy.linalg which is kinda performant and usable. And there is still quite some wiggle room for more. > > In many linalg routines there is a lot of performance benefit if the structure can be discovered in a cheap and reliable way at the outset. For example if symmetric then eig can delegate to eigh or if triangular then triangular solvers can be used in linalg.solve and lstsq so forth > > Here is the Cythonized version for Jupyter notebook to paste to discover the lower/upper bandwidth of square array A that competes well with A != 0 just to use some low level function (note the latter returns an array hence more cost is involved) There is a higher level supervisor function that checks C-contiguousness otherwise specializes to different versions of it > > Initial cell > > %load_ext Cython > %load_ext line_profiler > import cython > import line_profiler > > Then another cell > > %%cython > # cython: language_level=3 > # cython: linetrace=True > # cython: binding = True > # distutils: define_macros=CYTHON_TRACE=1 > # distutils: define_macros=CYTHON_TRACE_NOGIL=1 > > cimport cython > cimport numpy as cnp > import numpy as np > import line_profiler > ctypedef fused np_numeric_t: > cnp.int8_t > cnp.int16_t > cnp.int32_t > cnp.int64_t > cnp.uint8_t > cnp.uint16_t > cnp.uint32_t > cnp.uint64_t > cnp.float32_t > cnp.float64_t > cnp.complex64_t > cnp.complex128_t > cnp.int_t > cnp.long_t > cnp.longlong_t > cnp.uint_t > cnp.ulong_t > cnp.ulonglong_t > cnp.intp_t > cnp.uintp_t > cnp.float_t > cnp.double_t > cnp.longdouble_t > > > @cython.linetrace(True) > @cython.initializedcheck(False) > @cython.boundscheck(False) > @cython.wraparound(False) > cpdef inline (int, int) band_check_internal(np_numeric_t[:, ::1]A): > cdef Py_ssize_t n = A.shape[0], lower_band = 0, upper_band = 0, r, c > cdef np_numeric_t zero = 0 > > for r in xrange(n): > # Only bother if outside the existing band: > for c in xrange(r-lower_band): > if A[r, c] != zero: > lower_band = r - c > break > > for c in xrange(n - 1, r + upper_band, -1): > if A[r, c] != zero: > upper_band = c - r > break > > return lower_band, upper_band > > Final cell for use-case --------------- > > # Make arbitrary lower-banded array > n = 50 # array size > k = 3 # k'th subdiagonal > R = np.zeros([n, n], dtype=np.float32) > R[[x for x in range(n)], [x for x in range(n)]] = 1 > R[[x for x in range(n-1)], [x for x in range(1,n)]] = 1 > R[[x for x in range(1,n)], [x for x in range(n-1)]] = 1 > R[[x for x in range(k,n)], [x for x in range(n-k)]] = 2 > > Some very haphazardly put together metrics > > %timeit band_check_internal(R) > 2.59 ?s ? 84.7 ns per loop (mean ? std. dev. of 7 runs, 100000 loops each) > > %timeit np.linalg.solve(R, zzz) > 824 ?s ? 6.24 ?s per loop (mean ? std. dev. of 7 runs, 1000 loops each) > > %timeit R != 0. > 1.65 ?s ? 43.1 ns per loop (mean ? std. dev. of 7 runs, 1000000 loops each) > > So the worst case cost is negligible in general (note that the given code is slower as it uses the fused type however if I go with tempita standalone version is faster) > > Two questions: > > 1) This is missing np.half/float16 functionality since any arithmetic with float16 is might not be reliable including nonzero check. IS it safe to view it as np.uint16 and use that specialization? I'm not sure about the sign bit hence the question. I can leave this out since almost all linalg suite rejects this datatype due to well-known lack of supprt. > > 2) Should this be in NumPy or SciPy linalg? It is quite relevant to be on SciPy but then again this stuff is purely about array structures. But if the opinion is for NumPy then I would need a volunteer because NumPy codebase flies way above my head. > > > All feedback welcome > > Best > ilhan > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion From mocquin at me.com Wed Jun 30 15:32:49 2021 From: mocquin at me.com (Yoann Mocquin) Date: Wed, 30 Jun 2021 21:32:49 +0200 Subject: [Numpy-discussion] Interface for wrapping random distribution functions (__array_function__, __ufunc__, ?) Message-ID: Hello there, here is a feature request for the possibility to wrap numpy random distributions to be wrapped by a mechanism like __array_function__ or __array_ufunc__. You can find the GH issue at : https://github.com/numpy/numpy/issues/19382 . This post follows [this one](https://github.com/numpy/numpy/issues/18902 ). I figured I should open another issue for `np.random.normal`, but this applies for all distributions I guess. ## Feature Basicaly, I would like that `numpy.random.*` distributions could trigger an interface when passed instances from custom classes, "? la" `__array_ufunc__` or `__array_function__`. Here is an example concept : ```python arr = np.arange(10) # Reference result print(np.mean(arr)) print(np.random.normal(arr)) custom_obj = MyArrayLike(arr) print(np.mean(custom_obj)) # OK : np.mean will trigger __array_function__ interface print(np.random.normal(custom_obj)) # KO : np.random.normal will "only" try to cast the object to float ``` And here is a MWE : ```python import numpy as np np.random.seed(1234) HANDLED_FUNCTIONS = {} class NumericalLabeled(): def __init__(self, value, label=""): self.value = value self.label = label def __repr__(self): return "NumericalLabelled<"+str(self.value) + "," + self.label+">" def __array_function__(self, func, types, args, kwargs): if func not in HANDLED_FUNCTIONS: return NotImplemented return HANDLED_FUNCTIONS[func](*args, **kwargs) def make_numericallabelled(x, label=""): """ Helper function to cast anything into a NumericalLabelled object. """ if isinstance(x, NumericalLabeled): return x else: return NumericalLabeled(x, label=label) # Numpy functions # Override functions - used with __array_function__ def implements(np_function): def decorator(func): HANDLED_FUNCTIONS[np_function] = func return func return decorator @implements(np.random.normal) def np_random_normal(loc=0.0, scale=1.0, **kwargs): # cast both loc and scale into Numericallabelled loc = make_numericallabelled(loc) scale = make_numericallabelled(scale) # check their label is "compatible" if not loc.label == scale.label: raise ValueError return NumericalLabeled(np.random.rand(loc=loc.value, scale=scale.value, **kwargs), loc.label+scale.label) @implements(np.mean) def np_mean(a, *args, **kwargs): return NumericalLabeled(np.mean(a.value, *args, **kwargs), a.label) def main(): # reference result for standard array arr = np.arange(10) print(np.mean(arr)) print(np.random.normal(arr)) # array-like object num_labeled = NumericalLabeled(arr, "toto") print(np.mean(num_labeled)) try: print(np.random.normal(num_labeled)) except Exception as e: print(e) main() ``` which results in ``` 4.5 [ 0.47143516 -0.19097569 3.43270697 2.6873481 3.27941127 5.88716294 6.85958841 6.3634765 8.01569637 6.75731505] NumericalLabelled<4.5,toto> float() argument must be a string or a number, not 'NumericalLabeled' ``` Since the distribution functions accept array as input, I would expect them to be wrappable like many other array functions. ### Versions ``` Python : 3.8.5 (default, Sep 4 2020, 02:22:02) [Clang 10.0.0 ] Numpy : 1.21.0 ``` Cheers -------------- next part -------------- An HTML attachment was scrubbed... URL: From robert.kern at gmail.com Wed Jun 30 15:48:20 2021 From: robert.kern at gmail.com (Robert Kern) Date: Wed, 30 Jun 2021 15:48:20 -0400 Subject: [Numpy-discussion] Interface for wrapping random distribution functions (__array_function__, __ufunc__, ?) In-Reply-To: References: Message-ID: On Wed, Jun 30, 2021 at 3:34 PM Yoann Mocquin wrote: > > > Hello there, > > here is a feature request for the possibility to wrap numpy random > distributions to be wrapped by a mechanism like __array_function__ or > __array_ufunc__. You can find the GH issue at : > https://github.com/numpy/numpy/issues/19382. > > > > This post follows [this one](https://github.com/numpy/numpy/issues/18902). > I figured I should open another issue for `np.random.normal`, but this > applies for all distributions I guess. > > ## Feature > > Basicaly, I would like that `numpy.random.*` distributions could trigger > an interface when passed instances from custom classes, "? la" > `__array_ufunc__` or `__array_function__`. Here is an example concept : > The main problem is that these are not functions but methods on a hidden global `RandomState` instance. I haven't kept up fully with all of the efforts in the `__array_*__` proposals, but I do see that methods are explicitly excluded from the `__array_function__` mechanism: https://numpy.org/neps/nep-0018-array-function-protocol.html#non-goals The `RandomState` functionality (and thus all of these aliases in `numpy.random`) are now frozen in functionality (per NEP 19), so we will not be adding this functionality to them. If the `__array_function__` developments eventually work out a good way to wrap methods, then we can think about using that on `Generator`, but I suspect that will not be straightforward. -- Robert Kern -------------- next part -------------- An HTML attachment was scrubbed... URL: From kevin.k.sheppard at gmail.com Wed Jun 30 16:06:51 2021 From: kevin.k.sheppard at gmail.com (Kevin Sheppard) Date: Wed, 30 Jun 2021 21:06:51 +0100 Subject: [Numpy-discussion] Interface for wrapping random distribution functions (__array_function__, __ufunc__, ?) In-Reply-To: References: Message-ID: There is an issue that suggests reimplementing many of the Generator methods as ufuncs so they they would inherit all of the free features of ufuncs. It seems like a doable but large project for some useful but nonessential features. Kevin On Wed, Jun 30, 2021, 20:49 Robert Kern wrote: > On Wed, Jun 30, 2021 at 3:34 PM Yoann Mocquin wrote: > >> >> >> Hello there, >> >> here is a feature request for the possibility to wrap numpy random >> distributions to be wrapped by a mechanism like __array_function__ or >> __array_ufunc__. You can find the GH issue at : >> https://github.com/numpy/numpy/issues/19382. >> >> >> >> This post follows [this one](https://github.com/numpy/numpy/issues/18902). >> I figured I should open another issue for `np.random.normal`, but this >> applies for all distributions I guess. >> >> ## Feature >> >> Basicaly, I would like that `numpy.random.*` distributions could trigger >> an interface when passed instances from custom classes, "? la" >> `__array_ufunc__` or `__array_function__`. Here is an example concept : >> > > The main problem is that these are not functions but methods on a hidden > global `RandomState` instance. I haven't kept up fully with all of the > efforts in the `__array_*__` proposals, but I do see that methods are > explicitly excluded from the `__array_function__` mechanism: > > https://numpy.org/neps/nep-0018-array-function-protocol.html#non-goals > > The `RandomState` functionality (and thus all of these aliases in > `numpy.random`) are now frozen in functionality (per NEP 19), so we will > not be adding this functionality to them. If the `__array_function__` > developments eventually work out a good way to wrap methods, then we can > think about using that on `Generator`, but I suspect that will not be > straightforward. > > -- > Robert Kern > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion at python.org > https://mail.python.org/mailman/listinfo/numpy-discussion > -------------- next part -------------- An HTML attachment was scrubbed... URL: From sebastian at sipsolutions.net Wed Jun 30 21:23:48 2021 From: sebastian at sipsolutions.net (Sebastian Berg) Date: Wed, 30 Jun 2021 20:23:48 -0500 Subject: [Numpy-discussion] `keepdims=True` for argmin/argmx and C-API `PyArray_ArgMaxWithKeepdims` Message-ID: <1df08e1ed077b7ee380fd6b3374bff5c2fdadd8e.camel@sipsolutions.net> Hi all, The PR https://github.com/numpy/numpy/pull/19211 proposes to extend argmin and argmax with a `keepdims=False` keyword-only argument. This is a standard argument in NumPy, so it is a small API addition. The PR also proposes to add: * `PyArray_ArgMinWithKeepdims` * `PyArray_ArgMaxWithKeepdims` in the C-API. We have barely extended the C-API in a very long time, so if anyone has concerns, we could pull that out again [1]. Otherwise, this should go in soon, and we will have `keepdims` for both of those functions in the next release :). Cheers, Sebastian [1] I do not see this is much of a maintenance concern, since the original function is just a one-line wrapper of the new one. The API is fairly large and it probably is not used much. So it doesn't feel important to add to me. Overally, I just don't have a preference.