From njgodber at gmail.com Tue Jun 1 00:39:51 2021 From: njgodber at gmail.com (Neil Godber) Date: Tue, 1 Jun 2021 14:39:51 +1000 Subject: [SciPy-Dev] Enhancement Request: SuperLU_dist/SuperLU_mt replace current scipy.sparse.superLU In-Reply-To: References: Message-ID: Hi Dev-List, Regarding Replace superLU sequential with superLU dist ? Issue #14096 ? scipy/scipy (github.com) , would it be preferable to retain the sequential version a,d simply adding the mt version as an option or would should simply swap out sequential for mt? Cheers, Neil On Sun, 30 May 2021 at 09:40, Neil Godber wrote: > Hi Ralf, > > Saw your comment on the issue. Is there anything else I can do to help? > Unfortunately my C/C++ skills are lacking so I'm not sure how much help I > on the actual integration itself. > > Cheers, > Neil > > On Sat, 29 May 2021 at 17:00, Neil Godber wrote: > >> Hi Ralf + ScipyDev, >> >> Dr Li has helpfully uploaded the SuperLU_mt code base to github >> https://github.com/xiaoyeli/superlu_mt . Dr Li indicated that most >> development effort is focused on _dt, but that sequential and mt remain >> supported and bug reports will be attended to. >> >> Cheers, >> Neil >> >> On Mon, 24 May 2021 at 11:09, Neil Godber wrote: >> >>> Hi Ralf, >>> >>> Thanks for your email and happy to assist in whatever way I can. I've >>> reached out to Dr Xiaoyei Li of Lawrence Berkley who appears to be the >>> principal maintainer of the code base with a request to host the _mt code >>> on github. Given the other two versions are already hosted I can't see that >>> being an issue. I've also queried whether developments are done in sync and >>> if so, if there is a pending patching for mt in the similar fashion to >>> sequential. >>> >>> I will revert with further information as I receive it. >>> >>> Cheers, >>> Neil >>> >>> On Mon, 24 May 2021 at 04:33, Ralf Gommers >>> wrote: >>> >>>> >>>> >>>> On Fri, May 21, 2021 at 2:11 AM Neil Godber wrote: >>>> >>>>> Hi dev-list, >>>>> >>>>> Further last, realised that I failed to link to the issue itself >>>>> despite linking to virtually everything else: >>>>> >>>>> Replace superLU sequential with superLU dist ? Issue #14096 ? >>>>> scipy/scipy (github.com) >>>>> >>>>> Cheers, >>>>> Neil >>>>> >>>>> On Fri, 21 May 2021 at 10:04, Neil Godber wrote: >>>>> >>>>>> Hi dev-list, >>>>>> >>>>> >>>> Thanks for the proposal Neil. >>>> >>>> >>>>>> I've logged an enhancement request on github to bring the >>>>>> parallel versions of SuperLU into scipy. As requested I'm circulating the >>>>>> enhancement here to solicit comment/feedback/engagement. >>>>>> >>>>>> Content of request is as follows (with light editing and links): >>>>>> >>>>>> "Is your feature request related to a problem? Please describe. >>>>>> >>>>>> The direct solution of sparse matrices is a common problem that >>>>>> arises across many domains. Current scipy.sparse.linalg provides spsolve >>>>>> and splu to solve such classes of problems. Neither solution appears to >>>>>> utilise more than one or two threads leaving a lot of the available compute >>>>>> on modern machines unused. Other solutions (MUMPS, Pardiso) exploit >>>>>> multicore processors but are either minimally supported and/or locked >>>>>> behind proprietary libraries. >>>>>> >>>>>> Describe the solution you'd like >>>>>> Fortunately SuperLU has two multithreaded implementations superLU_mt >>>>>> and superLU_dt, both actively maintained (SuperLU: Home Page >>>>>> (nersc.gov) ). >>>>>> Ideally SciPy would replace the current sequential implementation with one >>>>>> of the parallel implementations to yield large performance improvements. >>>>>> >>>>> The relevant one seems to be superLU_mt. The `_dt` flavor is for >>>> distributed computing, which is out of scope for SciPy. superLU_mt says it >>>> has both pthreads and OpenMP interfaces - we'd prefer pthreads (and >>>> actually forbid OpenMP within SciPy). >>>> >>>> The last release of superLU_mt is v3.1, from March 2016. Our current >>>> copy of SuperLU is 5.2.1, from May 2016 - but then there's a bunch of >>>> patches applied to it, and then >>>> https://github.com/scipy/scipy/pull/12243 did a sync with SuperLU >>>> master in May 2020. So it would be necessary to figure out if we can get >>>> superLU_mt from upstream master as well, and that we don't lose bug fixes >>>> we applied since 2016. Could you look into that Neil? And do you know if >>>> the parallel and sequential versions are developed in sync or not? >>>> >>>> Cheers, >>>> Ralf >>>> >>>> >>>> Describe alternatives you've considered >>>>>> pyMKL (Pardiso dwfmarchant/pyMKL: Python wrappers to Intel MKL >>>>>> routines (github.com) ) - MKL >>>>>> with issues associated with that for non Intel processors, unmaintained >>>>>> relatively to scipy, PyTrilinos (implements all three superLU types but >>>>>> only available on osx and linux PyTrilinos | Trilinos >>>>>> ), petsc (petsc4py PETSc >>>>>> / petsc ? GitLab ) (implements all >>>>>> three superLU types but only available on osx and linux). All are >>>>>> relatively inaccessible compared to ubiquity and accessibility of scipy. >>>>>> >>>>>> Additional context (e.g. screenshots) >>>>>> Anecdotally large number of projects use various non scipy sparse >>>>>> solvers to achieve high level of performance. This comes with considerable >>>>>> time and maintenance investment. It would be fantastic for scipy to provide >>>>>> a 'performance competitive' sparse direct solver out of the hood as it does >>>>>> for dense matrices." >>>>>> >>>>>> >>>>>> Cheers, >>>>>> >>>>>> Neil >>>>>> >>>>> _______________________________________________ >>>>> SciPy-Dev mailing list >>>>> SciPy-Dev at python.org >>>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>>> >>>> _______________________________________________ >>>> SciPy-Dev mailing list >>>> SciPy-Dev at python.org >>>> https://mail.python.org/mailman/listinfo/scipy-dev >>>> >>> -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Thu Jun 3 13:53:28 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Thu, 03 Jun 2021 10:53:28 -0700 Subject: [SciPy-Dev] Minimal sparse array interface Message-ID: Hi everyone, Several times now, I've needed exactly what is available in scipy.sparse but with an array interface, instead of a matrix interface. Having such an interface would also simplify matters for libraries such as NetworkX and scikit-learn. I am aware of pydata.sparse, but that seems like quite a bit more than is needed here (higher dimensions, optimizations via numba; I'm not clear on the linear algebra status). Would it make sense to add a minimal interface on top of the SciPy sparse matrices that exposes a NumPy array interface? Eventually that could become the default (although it probably implies a larger refactor of the underlying classes). Best regards, St?fan From evgeny.burovskiy at gmail.com Thu Jun 3 15:34:52 2021 From: evgeny.burovskiy at gmail.com (Evgeni Burovski) Date: Thu, 3 Jun 2021 22:34:52 +0300 Subject: [SciPy-Dev] Minimal sparse array interface In-Reply-To: References: Message-ID: Hi Stefan, You're thinking something like a lightweight `csr_array` which is almost identical to the existing csr_matrix, but has a np.array-like multiplication? I think it'd be a nice thing to have! Several things to consider upfront: 1. What's the minimal subset of formats? Would CSR be enough, or some others are needed from the start? 2. Should this live in scipy.sparse or keep it in a separate repo in the scipy org for a while? 3.What about d != 2 ? E.g., does array[0, :] behave as a 1D numpy array. What about array[:, :, None]. Does it broadcast? (This can develop into quite a rabbit hole unless defined very clearly from the start I suspect.) 4. The interaction with scipy.sparse.linalg. Cheers, Evgeni On Thu, Jun 3, 2021 at 8:54 PM Stefan van der Walt wrote: > > Hi everyone, > > Several times now, I've needed exactly what is available in scipy.sparse but with an array interface, instead of a matrix interface. Having such an interface would also simplify matters for libraries such as NetworkX and scikit-learn. > > I am aware of pydata.sparse, but that seems like quite a bit more than is needed here (higher dimensions, optimizations via numba; I'm not clear on the linear algebra status). > > Would it make sense to add a minimal interface on top of the SciPy sparse matrices that exposes a NumPy array interface? Eventually that could become the default (although it probably implies a larger refactor of the underlying classes). > > Best regards, > St?fan > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev From stefanv at berkeley.edu Thu Jun 3 16:02:37 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Thu, 03 Jun 2021 13:02:37 -0700 Subject: [SciPy-Dev] Minimal sparse array interface In-Reply-To: References: Message-ID: Hi Evgeni, On Thu, Jun 3, 2021, at 12:34, Evgeni Burovski wrote: > You're thinking something like a lightweight `csr_array` which is > almost identical to the existing csr_matrix, but has a np.array-like > multiplication? Exactly, and that also conforms with indexing expectations. > 1. What's the minimal subset of formats? Would CSR be enough, or some > others are needed from the start? I suspect we will have to cover most of them in order for this to be useful. I just looked at NetworkX, for example, and they use CSR, LIL, and COO at least. > 2. Should this live in scipy.sparse or keep it in a separate repo in > the scipy org for a while? Most of it we can probably build separately, but it may require a few tweaks to the existing classes. Those changes could simply be PRs (once there is rough consensus that we want to go this route). > 3.What about d != 2 ? E.g., does array[0, :] behave as a 1D numpy > array. What about array[:, :, None]. Does it broadcast? (This can > develop into quite a rabbit hole unless defined very clearly from the > start I suspect.) Indexing is probably the trickiest part to get right. A first thought would be to limit any interactions that produce >2D, and to introduce 1d and 0d. I'd have to double check, but it may be possible to do shape calculations, follow that by relying on existing operations to produce a result, and then adjust that result to conform to the expected shape. > 4. The interaction with scipy.sparse.linalg. We'd need some way to let `scipy.sparse.linalg` know what's going on. One way would be to have `linalg` call `as_sparse_matrix` or `as_sparse_array` explicitly, depending on its needs. St?fan From perimosocordiae at gmail.com Fri Jun 4 00:39:26 2021 From: perimosocordiae at gmail.com (CJ Carey) Date: Fri, 4 Jun 2021 00:39:26 -0400 Subject: [SciPy-Dev] Minimal sparse array interface In-Reply-To: References: Message-ID: I wrote a lightweight sparse ndarray library a few years ago: https://github.com/perimosocordiae/sparray It uses Cython for some hot loops, otherwise it's fairly simple. It uses a flattened COO-like format that's pretty efficient for common ndarray use cases. I was planning to add other backends, but then I finished my degree and got a Real Job. Around the same time, Evgeni was experimenting with https://github.com/ev-br/sparr, which uses a generalized DOK format for sparse ndarrays. Both of these haven't seen development or use in a while, but if you're looking to put a sparse ndarray together they might be useful starting points. On Thu, Jun 3, 2021 at 4:03 PM Stefan van der Walt wrote: > Hi Evgeni, > > On Thu, Jun 3, 2021, at 12:34, Evgeni Burovski wrote: > > You're thinking something like a lightweight `csr_array` which is > > almost identical to the existing csr_matrix, but has a np.array-like > > multiplication? > > Exactly, and that also conforms with indexing expectations. > > > 1. What's the minimal subset of formats? Would CSR be enough, or some > > others are needed from the start? > > I suspect we will have to cover most of them in order for this to be > useful. I just looked at NetworkX, for example, and they use CSR, LIL, and > COO at least. > > > 2. Should this live in scipy.sparse or keep it in a separate repo in > > the scipy org for a while? > > Most of it we can probably build separately, but it may require a few > tweaks to the existing classes. Those changes could simply be PRs (once > there is rough consensus that we want to go this route). > > > 3.What about d != 2 ? E.g., does array[0, :] behave as a 1D numpy > > array. What about array[:, :, None]. Does it broadcast? (This can > > develop into quite a rabbit hole unless defined very clearly from the > > start I suspect.) > > Indexing is probably the trickiest part to get right. A first thought > would be to limit any interactions that produce >2D, and to introduce 1d > and 0d. I'd have to double check, but it may be possible to do shape > calculations, follow that by relying on existing operations to produce a > result, and then adjust that result to conform to the expected shape. > > > 4. The interaction with scipy.sparse.linalg. > > We'd need some way to let `scipy.sparse.linalg` know what's going on. One > way would be to have `linalg` call `as_sparse_matrix` or `as_sparse_array` > explicitly, depending on its needs. > > St?fan > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Fri Jun 4 15:50:30 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Fri, 04 Jun 2021 12:50:30 -0700 Subject: [SciPy-Dev] Minimal sparse array interface In-Reply-To: References: Message-ID: <3ec986a3-6db2-4ed0-bd0b-8231b375f396@www.fastmail.com> HI CJ, On Thu, Jun 3, 2021, at 21:39, CJ Carey wrote: > I wrote a lightweight sparse ndarray library a few years ago: https://github.com/perimosocordiae/sparray > > It uses Cython for some hot loops, otherwise it's fairly simple. It uses a flattened COO-like format that's pretty efficient for common ndarray use cases. I was planning to add other backends, but then I finished my degree and got a Real Job. I presume sparray does not work with the linear algebra facilities in SciPy? > Both of these haven't seen development or use in a while, but if you're looking to put a sparse ndarray together they might be useful starting points. I'll definitely look at the indexing logic in particular, thanks! St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From perimosocordiae at gmail.com Fri Jun 4 16:53:21 2021 From: perimosocordiae at gmail.com (CJ Carey) Date: Fri, 4 Jun 2021 16:53:21 -0400 Subject: [SciPy-Dev] Minimal sparse array interface In-Reply-To: <3ec986a3-6db2-4ed0-bd0b-8231b375f396@www.fastmail.com> References: <3ec986a3-6db2-4ed0-bd0b-8231b375f396@www.fastmail.com> Message-ID: On Fri, Jun 4, 2021 at 3:51 PM Stefan van der Walt wrote: > HI CJ, > > On Thu, Jun 3, 2021, at 21:39, CJ Carey wrote: > > I wrote a lightweight sparse ndarray library a few years ago: > https://github.com/perimosocordiae/sparray > > It uses Cython for some hot loops, otherwise it's fairly simple. It uses a > flattened COO-like format that's pretty efficient for common ndarray use > cases. I was planning to add other backends, but then I finished my degree > and got a Real Job. > > > I presume sparray does not work with the linear algebra facilities in > SciPy? > > I haven't tested for scipy.linalg compatibility specifically. I expect we might need something similar to the existing is_pydata_spmatrix() check: https://github.com/scipy/scipy/blob/f89d39901af543a1a656585f8b8f3ec059788e1e/scipy/sparse/sputils.py#L344 That said, I just picked an example at random to test: https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.expm_multiply.html And here's the result: In [1]: from scipy.sparse import csc_matrix In [2]: from scipy.sparse.linalg import expm, expm_multiply In [3]: A = csc_matrix([[1, 0], [0, 1]]) In [4]: B = np.array([np.exp(-1.), np.exp(-2.)]) In [5]: expm_multiply(A, B, start=1, stop=2, num=3, endpoint=True) Out[5]: array([[1. , 0.36788], [1.64872, 0.60653], [2.71828, 1. ]]) In [6]: import sparray In [7]: A2 = sparray.FlatSparray.from_spmatrix(A) In [8]: expm_multiply(A2, B, start=1, stop=2, num=3, endpoint=True) Out[8]: array([[1. , 0.36788], [1.64872, 0.60653], [2.71828, 1. ]]) -------------- next part -------------- An HTML attachment was scrubbed... URL: From stefanv at berkeley.edu Fri Jun 4 17:04:03 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Fri, 04 Jun 2021 14:04:03 -0700 Subject: [SciPy-Dev] Minimal sparse array interface In-Reply-To: References: <3ec986a3-6db2-4ed0-bd0b-8231b375f396@www.fastmail.com> Message-ID: <581031bc-d470-46ad-a3f9-3ac34d28796c@www.fastmail.com> On Fri, Jun 4, 2021, at 13:53, CJ Carey wrote: > That said, I just picked an example at random to test: https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.linalg.expm_multiply.html This may be the way to guarantee that we do it right: parameterize the test suite, and test it with both types of objects. St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: 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: [SciPy-Dev] 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 evgeny.burovskiy at gmail.com Mon Jun 7 05:50:14 2021 From: evgeny.burovskiy at gmail.com (Evgeni Burovski) Date: Mon, 7 Jun 2021 12:50:14 +0300 Subject: [SciPy-Dev] ANN: SciPy 1.7.0rc1 -- please test In-Reply-To: References: Message-ID: Thank you Tyler for managing it! ??, 6 ???. 2021 ?., 21:31 Tyler Reddy : > 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 < > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tirthasheshpatel at gmail.com Tue Jun 8 12:52:58 2021 From: tirthasheshpatel at gmail.com (Tirth Patel) Date: Tue, 8 Jun 2021 22:22:58 +0530 Subject: [SciPy-Dev] GSoC: Integrating library UNU.RAN in SciPy Message-ID: Hi all, I have been working on integrating UNU.RAN in scipy.stats for a few weeks on my fork (https://github.com/tirthasheshpatel/scipy/pull/6) with my mentors, Christoph and Nicholas. The design is still fairly basic but is almost ready for initial reviews. Also, it builds on Windows, macOS, and Linux. Tests pass with an exception of unrelated failures on Linux. I am planning to propose a PR on SciPy this week but before I do that, I thought it would be a good idea to summarize the progress here. The methods I propose to add and details regarding the parameters they take can be found in this excel sheet: https://docs.google.com/spreadsheets/d/1r36HypXwpit7sHt9YAe3K7yPL7HNNuQjTkbVYQIJ4xI/edit?usp=sharing. Feel free to comment on the sheet if you have any suggestions. The API looks something like this: import numpy as np from scipy.stats import TransformedDensityRejection pdf = lambda x: 1 - x*x dpdf = lambda x: -2*x urng = np.random.default_rng(123) rng = TransformedDensityRejection(pdf, dpdf, domain=(-1,1), seed=urng) # sample a 100,000 samples from the distribution rvs = rng.rvs(100_000) # evaluate the upper bound of the PPF at some points in the domain u = np.linspace(0, 1, num=1000) ppf_hat = rng.ppf_hat(u) Internal API ------------ For Python callbacks, I have used the `ccallback` API and used setjmp/longjmp for error handling. Using `ctypes` gives similar performance but I wasn't able to figure out a way to handle errors occurring in UNU.RAN and in the callbacks. Here is the C code I wrote to acquire and release the callbacks: https://github.com/tirthasheshpatel/scipy/blob/unuran_c_thunk/scipy/stats/unuran/unuran_callback.h For more details on the internal design of the API, I have attempted to create a few flowcharts on draw.io but they are very much a WIP: https://drive.google.com/file/d/1TH70SSvvc5eF6-YmDO8kFNvLqKaGROW-/view?usp=sharing Other Notes ----------- I think NumPy 1.19 introduced a stable interface for its Generator API. Before that the RandomState API was stable. But RandomState doesn't have a Cython Interface and its Python interface is very slow to be practically useful. For instance, it takes around 7ms to sample 100,000 samples from the normal distribution using the TDR method on NumPy >= 1.19 while it takes around 911ms on NumPy == 1.18 which is around 130 times slower! Is there a plan to drop 1.16 soon and can we use the unstable Generator API from 1.17 onwards or would it too unsafe? Maybe this discussion isn't suited here but I just thought to put it out as a note. Anyways, please feel free to comment on the design, naming convention, etc and suggest changes/ideas that would be good to incorporate before proposing a PR on SciPy. Thanks for reading this! -- Kind Regards, Tirth Patel -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Tue Jun 8 13:43:41 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Tue, 8 Jun 2021 19:43:41 +0200 Subject: [SciPy-Dev] GSoC: Integrating library UNU.RAN in SciPy In-Reply-To: References: Message-ID: On Tue, Jun 8, 2021 at 6:53 PM Tirth Patel wrote: > Hi all, > > I have been working on integrating UNU.RAN in scipy.stats for a few weeks > on my fork (https://github.com/tirthasheshpatel/scipy/pull/6) with my > mentors, Christoph and Nicholas. The design is still fairly basic but is > almost ready for initial reviews. Also, it builds on Windows, macOS, and > Linux. Tests pass with an exception of unrelated failures on Linux. I am > planning to propose a PR on SciPy this week but before I do that, I thought > it would be a good idea to summarize the progress here. > Thanks for the nice overview Tirth! > The methods I propose to add and details regarding the parameters they > take can be found in this excel sheet: > https://docs.google.com/spreadsheets/d/1r36HypXwpit7sHt9YAe3K7yPL7HNNuQjTkbVYQIJ4xI/edit?usp=sharing. > Feel free to comment on the sheet if you have any suggestions. > > The API looks something like this: > > import numpy as np > from scipy.stats import TransformedDensityRejection > > pdf = lambda x: 1 - x*x > dpdf = lambda x: -2*x > > urng = np.random.default_rng(123) > rng = TransformedDensityRejection(pdf, dpdf, domain=(-1,1), seed=urng) > > # sample a 100,000 samples from the distribution > rvs = rng.rvs(100_000) > > # evaluate the upper bound of the PPF at some points in the domain > u = np.linspace(0, 1, num=1000) > ppf_hat = rng.ppf_hat(u) > > Internal API > ------------ > > For Python callbacks, I have used the `ccallback` API and used > setjmp/longjmp for error handling. Using `ctypes` gives similar performance > but I wasn't able to figure out a way to handle errors occurring in UNU.RAN > and in the callbacks. Here is the C code I wrote to acquire and release the > callbacks: > https://github.com/tirthasheshpatel/scipy/blob/unuran_c_thunk/scipy/stats/unuran/unuran_callback.h > > For more details on the internal design of the API, I have attempted to > create a few flowcharts on draw.io but they are very much a WIP: > https://drive.google.com/file/d/1TH70SSvvc5eF6-YmDO8kFNvLqKaGROW-/view?usp=sharing > > Other Notes > ----------- > > I think NumPy 1.19 introduced a stable interface for its Generator API. > Before that the RandomState API was stable. But RandomState doesn't have a > Cython Interface and its Python interface is very slow to be practically > useful. For instance, it takes around 7ms to sample 100,000 samples from > the normal distribution using the TDR method on NumPy >= 1.19 while it > takes around 911ms on NumPy == 1.18 which is around 130 times slower! Is > there a plan to drop 1.16 soon and can we use the unstable Generator API > from 1.17 onwards or would it too unsafe? Maybe this discussion isn't > suited here but I just thought to put it out as a note. > We can drop NumPy 1.16 right now. I'm not sure if the 1.17 C API for numpy.random is usable - it was either missing some features or not present at all. What the recently added biasedurn does is a conditional compile - only use that C API for NumPy >= 1.19. If the performance on <1.19 isn't completely unusable, that may be a good option? Cheers, Ralf > > Anyways, please feel free to comment on the design, naming convention, etc > and suggest changes/ideas that would be good to incorporate before > proposing a PR on SciPy. Thanks for reading this! > > > -- > Kind Regards, > Tirth Patel > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: 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: [SciPy-Dev] 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 roy.pamphile at gmail.com Tue Jun 8 14:32:23 2021 From: roy.pamphile at gmail.com (Pamphile Roy) Date: Tue, 8 Jun 2021 20:32:23 +0200 Subject: [SciPy-Dev] GSoC: Integrating library UNU.RAN in SciPy In-Reply-To: References: Message-ID: <457A847D-8E50-4058-B84A-8CF2475C49C4@gmail.com> Thanks Tirth for the heads up! > On 08.06.2021, at 19:43, Ralf Gommers wrote: > > We can drop NumPy 1.16 right now. Glad to read! I will be happy to work on this as soon as I am back! There is quite some cleaning we can do thanks to that just on the generator side. Cheers, Pamphile -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Wed Jun 9 05:39:46 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Wed, 9 Jun 2021 11:39:46 +0200 Subject: [SciPy-Dev] Enhancement Request: SuperLU_dist/SuperLU_mt replace current scipy.sparse.superLU In-Reply-To: References: Message-ID: On Tue, Jun 1, 2021 at 6:40 AM Neil Godber wrote: > Hi Dev-List, > > Regarding Replace superLU sequential with superLU dist ? Issue #14096 ? > scipy/scipy (github.com) , > would it be preferable to retain the sequential version a,d simply adding > the mt version as an option or would should simply swap out sequential for > mt? > Typically we'd want to use the `workers=None` API pattern (see, e.g. `scipy.fft.fft`) to avoid auto-parallelization by default. Reason: that messes with multiprocessing. I'd hope that we would be able to replace the sequential superLU code with the MT version, rather than carry duplicate code around. This assumes that asking for 1 thread from the MT version gives identical results and performance as the sequential version. That would need checking. > On Sun, 30 May 2021 at 09:40, Neil Godber wrote: > >> Hi Ralf, >> >> Saw your comment on the issue. Is there anything else I can do to help? >> Unfortunately my C/C++ skills are lacking so I'm not sure how much help I >> on the actual integration itself. >> > Not sure - someone needs to volunteer to dig into the C code, without that not much is going to happen. After initial conversion is done, extra testing and writing more tests will be useful contributions. Cheers, Ralf -------------- next part -------------- An HTML attachment was scrubbed... URL: From tirthasheshpatel at gmail.com Wed Jun 9 06:15:19 2021 From: tirthasheshpatel at gmail.com (Tirth Patel) Date: Wed, 9 Jun 2021 15:45:19 +0530 Subject: [SciPy-Dev] GSoC: Integrating library UNU.RAN in SciPy In-Reply-To: References: Message-ID: Hi Ralf, On Tue, Jun 8, 2021 at 11:14 PM Ralf Gommers wrote: > > > On Tue, Jun 8, 2021 at 6:53 PM Tirth Patel > wrote: > >> Hi all, >> >> I have been working on integrating UNU.RAN in scipy.stats for a few weeks >> on my fork (https://github.com/tirthasheshpatel/scipy/pull/6) with my >> mentors, Christoph and Nicholas. The design is still fairly basic but is >> almost ready for initial reviews. Also, it builds on Windows, macOS, and >> Linux. Tests pass with an exception of unrelated failures on Linux. I am >> planning to propose a PR on SciPy this week but before I do that, I thought >> it would be a good idea to summarize the progress here. >> > > Thanks for the nice overview Tirth! > > >> The methods I propose to add and details regarding the parameters they >> take can be found in this excel sheet: >> https://docs.google.com/spreadsheets/d/1r36HypXwpit7sHt9YAe3K7yPL7HNNuQjTkbVYQIJ4xI/edit?usp=sharing. >> Feel free to comment on the sheet if you have any suggestions. >> >> The API looks something like this: >> >> import numpy as np >> from scipy.stats import TransformedDensityRejection >> >> pdf = lambda x: 1 - x*x >> dpdf = lambda x: -2*x >> >> urng = np.random.default_rng(123) >> rng = TransformedDensityRejection(pdf, dpdf, domain=(-1,1), seed=urng) >> >> # sample a 100,000 samples from the distribution >> rvs = rng.rvs(100_000) >> >> # evaluate the upper bound of the PPF at some points in the domain >> u = np.linspace(0, 1, num=1000) >> ppf_hat = rng.ppf_hat(u) >> >> Internal API >> ------------ >> >> For Python callbacks, I have used the `ccallback` API and used >> setjmp/longjmp for error handling. Using `ctypes` gives similar performance >> but I wasn't able to figure out a way to handle errors occurring in UNU.RAN >> and in the callbacks. Here is the C code I wrote to acquire and release the >> callbacks: >> https://github.com/tirthasheshpatel/scipy/blob/unuran_c_thunk/scipy/stats/unuran/unuran_callback.h >> >> For more details on the internal design of the API, I have attempted to >> create a few flowcharts on draw.io but they are very much a WIP: >> https://drive.google.com/file/d/1TH70SSvvc5eF6-YmDO8kFNvLqKaGROW-/view?usp=sharing >> >> Other Notes >> ----------- >> >> I think NumPy 1.19 introduced a stable interface for its Generator API. >> Before that the RandomState API was stable. But RandomState doesn't have a >> Cython Interface and its Python interface is very slow to be practically >> useful. For instance, it takes around 7ms to sample 100,000 samples from >> the normal distribution using the TDR method on NumPy >= 1.19 while it >> takes around 911ms on NumPy == 1.18 which is around 130 times slower! Is >> there a plan to drop 1.16 soon and can we use the unstable Generator API >> from 1.17 onwards or would it too unsafe? Maybe this discussion isn't >> suited here but I just thought to put it out as a note. >> > > We can drop NumPy 1.16 right now. I'm not sure if the 1.17 C API for > numpy.random is usable - it was either missing some features or not present > at all. > Nice to hear that we don't need to support 1.16 now! With that, I think there is a possibility of using the Cython API of NumPy BitGenerator to speed things up. I checked out a few releases on NumPy and found out BitGenerator was added in 1.17 with a Cython API. All we need is the `next_double` and `state` member of the `bitgen_t` object which are present from 1.17 onwards. The only difference is that 1.17 contains the `bitgen_t` in `numpy.random.common` module while it was shifted to `numpy.random` from 1.18 onwards. I don't know if there are any known bugs in 1.17 and 1.18 before becoming stable in 1.19. If not, we might be able to use the unstable NumPy Generator in 1.17 and 1.18 for our purpose. What do you think? What the recently added biasedurn does is a conditional compile - only use > that C API for NumPy >= 1.19. If the performance on <1.19 isn't completely > unusable, that may be a good option? > Yes, that's what I do right now. But I am just worried if the performance on <1.19 is too slow to practically rely on. Anyways, thanks for looking into this! Cheers, > Ralf > > >> >> Anyways, please feel free to comment on the design, naming convention, >> etc and suggest changes/ideas that would be good to incorporate before >> proposing a PR on SciPy. Thanks for reading this! >> >> >> -- >> Kind Regards, >> Tirth Patel >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From charlesr.harris at gmail.com Wed Jun 9 15:36:02 2021 From: charlesr.harris at gmail.com (Charles R Harris) Date: Wed, 9 Jun 2021 13:36:02 -0600 Subject: [SciPy-Dev] ANN: SciPy 1.7.0rc1 -- please test In-Reply-To: References: Message-ID: On Mon, Jun 7, 2021 at 3:51 AM Evgeni Burovski wrote: > Thank you Tyler for managing it! > > ??, 6 ???. 2021 ?., 21:31 Tyler Reddy : > >> Hi all, >> >> Thanks Tyler. Chuck -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Sat Jun 12 07:14:37 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Sat, 12 Jun 2021 13:14:37 +0200 Subject: [SciPy-Dev] GSoC: Integrating library UNU.RAN in SciPy In-Reply-To: References: Message-ID: On Wed, Jun 9, 2021 at 12:16 PM Tirth Patel wrote: > Hi Ralf, > > On Tue, Jun 8, 2021 at 11:14 PM Ralf Gommers > wrote: > >> >> >> On Tue, Jun 8, 2021 at 6:53 PM Tirth Patel >> wrote: >> >>> >>> Other Notes >>> ----------- >>> >>> I think NumPy 1.19 introduced a stable interface for its Generator API. >>> Before that the RandomState API was stable. But RandomState doesn't have a >>> Cython Interface and its Python interface is very slow to be practically >>> useful. For instance, it takes around 7ms to sample 100,000 samples from >>> the normal distribution using the TDR method on NumPy >= 1.19 while it >>> takes around 911ms on NumPy == 1.18 which is around 130 times slower! Is >>> there a plan to drop 1.16 soon and can we use the unstable Generator API >>> from 1.17 onwards or would it too unsafe? Maybe this discussion isn't >>> suited here but I just thought to put it out as a note. >>> >> >> We can drop NumPy 1.16 right now. I'm not sure if the 1.17 C API for >> numpy.random is usable - it was either missing some features or not present >> at all. >> > > Nice to hear that we don't need to support 1.16 now! With that, I think > there is a possibility of using the Cython API of NumPy BitGenerator to > speed things up. I checked out a few releases on NumPy and found out > BitGenerator was added in 1.17 with a Cython API. All we need is the > `next_double` and `state` member of the `bitgen_t` object which are present > from 1.17 onwards. The only difference is that 1.17 contains the `bitgen_t` > in `numpy.random.common` module while it was shifted to `numpy.random` from > 1.18 onwards. I don't know if there are any known bugs in 1.17 and 1.18 > before becoming stable in 1.19. If not, we might be able to use the > unstable NumPy Generator in 1.17 and 1.18 for our purpose. What do you > think? > I think this is fine - if it helps that much, let's just try it. If it passes all tests with the latest bugfix releases of 1.17.x and 1.18.x then it should be okay. Cheers, Ralf > What the recently added biasedurn does is a conditional compile - only use >> that C API for NumPy >= 1.19. If the performance on <1.19 isn't completely >> unusable, that may be a good option? >> > > Yes, that's what I do right now. But I am just worried if the performance > on <1.19 is too slow to practically rely on. Anyways, thanks for looking > into this! > -------------- next part -------------- An HTML attachment was scrubbed... URL: From roy.pamphile at gmail.com Mon Jun 14 11:16:03 2021 From: roy.pamphile at gmail.com (Pamphile Roy) Date: Mon, 14 Jun 2021 17:16:03 +0200 Subject: [SciPy-Dev] SciPy Community Meetups Message-ID: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> Hi everyone, The next SciPy community meetup (EU/AFR/USA) will be on June 25 (Friday) at 16a.m. CEST. Everyone is invited to join in and edit the work-in-progress meeting topics and notes https://hackmd.io/@tupui/scipy-meetup-3/edit You can find the previous notes https://hackmd.io/@tupui/scipy-meetup-2 Cheers, Pamphile -------------- next part -------------- An HTML attachment was scrubbed... URL: From claes at emt.uni-paderborn.de Mon Jun 14 12:14:52 2021 From: claes at emt.uni-paderborn.de (Leander Claes) Date: Mon, 14 Jun 2021 16:14:52 +0000 Subject: [SciPy-Dev] Adding Wigner-Ville distribution and related methods to scipy.signal Message-ID: Dear SciPy developers, I recently submitted a pull request to add the Wigner-Ville distribution (wvd) to scipy.signal (https://github.com/scipy/scipy/pull/14141). To oversimplify the description of the wvd: It is a method for time-frequency analysis similar to the short-time Fourier-transform or the wavelet transform with some really interesting properties that makes it useful in many applications (e.g. detecting gravitational waves). We often use it in our group and we teach it to students in our lecture on signal processing with python. It was kindly suggested that I send a mail to this list first to check if there was need for such a function. So here I am: Do you think that Wigner-Ville distribution (and maybe later some the derived methods) should be added scipy? Thank you for the consideration. Best regards, Leander (lndr) -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 6305 bytes Desc: not available URL: From stefanv at berkeley.edu Mon Jun 14 12:57:25 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Mon, 14 Jun 2021 09:57:25 -0700 Subject: [SciPy-Dev] SciPy Community Meetups In-Reply-To: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> References: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> Message-ID: <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> Hi Pamphile, On Mon, Jun 14, 2021, at 08:16, Pamphile Roy wrote: > The next SciPy community meetup (EU/AFR/USA) will be on June 25 (Friday) at 16a.m. CEST. Just to be clear: is this meant to say 16:00 (4pm) CEST? St?fan -------------- next part -------------- An HTML attachment was scrubbed... URL: From roy.pamphile at gmail.com Mon Jun 14 13:14:29 2021 From: roy.pamphile at gmail.com (Pamphile Roy) Date: Mon, 14 Jun 2021 19:14:29 +0200 Subject: [SciPy-Dev] SciPy Community Meetups In-Reply-To: <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> References: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> Message-ID: > On 14.06.2021, at 18:57, Stefan van der Walt wrote: > > On Mon, Jun 14, 2021, at 08:16, Pamphile Roy wrote: >> The next SciPy community meetup (EU/AFR/USA) will be on June 25 (Friday) at 16a.m. CEST. > > Just to be clear: is this meant to say 16:00 (4pm) CEST? Indeed it?s a typo, thank you St?fan! Meeting is at 16:00 (4pm) CEST. Cheers, Pamphile -------------- 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: [SciPy-Dev] 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 zhaog6 at lsec.cc.ac.cn Tue Jun 15 22:07:41 2021 From: zhaog6 at lsec.cc.ac.cn (=?UTF-8?B?6LW15Yia?=) Date: Wed, 16 Jun 2021 10:07:41 +0800 (GMT+08:00) Subject: [SciPy-Dev] A proposal on adding new TFQMR algorithm Message-ID: <15fe757d.6478f.17a129300a4.Coremail.zhaog6@lsec.cc.ac.cn> Dear all, I have submitted an python implementation of the sparse linear iterative algorithm "Transpose-Free QMR" (https://github.com/scipy/scipy/pull/14160). This algorithm (cited by 904) is very effective to solve non-Hermitian linear systems because it has a smoother convergence curve than the other algorithms like CGS, Bi-CGSTAB, and it has been widely used in those prominent scientific computing packages such as PETSc etc. The purpose of adding the algorithm is to enrich SciPy's sparse linear library, so that users can have more/better choices when using Krylov subspace methods in SciPy to solve linear systems. I also hope that experts in this field can review the implementation of the algorithm (References are listed in "tfqmr.py"). Hope you like it. Thanks, Gang From samwallan at icloud.com Wed Jun 16 20:53:23 2021 From: samwallan at icloud.com (Sam Wallan) Date: Wed, 16 Jun 2021 17:53:23 -0700 Subject: [SciPy-Dev] PR: addition of Tukey's HSD test Message-ID: <0EF80EC4-AE3F-4EFC-AFC1-3BFBF0EF0B03@icloud.com> Hello All, The PR gh-13002 implements Tukey?s Honestly Significant Difference Test, a multiple sample test used to find pairs of means that are significantly different from each other. We?d appreciate your thoughts! The test reports the pairwise differences, p-values, and confidence intervals in separate attribute arrays of shape (n, n). This allows the client to access their desired results programmatically, which is not nearly as easy in other programs. There are a few areas with which extra input would be helpful. Specifically: - output interface - __str__ / __repr__ methods - confidence interval method More details are in the PR. Many thanks, Sam -------------- next part -------------- An HTML attachment was scrubbed... URL: From Albert_Steppi at hms.harvard.edu Sat Jun 19 23:06:36 2021 From: Albert_Steppi at hms.harvard.edu (Steppi, Albert) Date: Sun, 20 Jun 2021 03:06:36 +0000 Subject: [SciPy-Dev] Proposal to translate hyp2f1 for complex numbers into Cython Message-ID: Hi everyone, I've submitted the PR gh-14256, which is a beginning towards moving the implementation of Gauss's hypergeometric function hyp2f1 for complex numbers from Fortran into Cython. Josh Wilson mentioned at https://github.com/scipy/scipy/pull/8151#issuecomment-845227864 that this would be appreciated, and I'd like to work on this little by little in my spare time. The current Fortran implementation has several outstanding issues gh-4894, gh-7340, gh-8054, and gh-8083. Pull requests gh-8110 and gh-8151 were submitted by GitHub user FormerPhysicist to fix some of the outstanding issues but these have languished for almost four years now due to a lack of reviewers conversant in both numerical computation of special functions and Fortran 77. This PR has a fix for gh-7430. I intend to address other defects in the implementation of hyp2f1 in future PRs. Please see my opening comment in gh-14256 for more information on the contents of this PR and plans for the future. Feel free to join the discussion of this update in gh-14256! Thanks, Albert Albert Steppi III, PhD Scientific Software Developer Laboratory of Systems Pharmacology Harvard Medical School -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Sun Jun 20 08:27:43 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Sun, 20 Jun 2021 14:27:43 +0200 Subject: [SciPy-Dev] A proposal on adding new TFQMR algorithm In-Reply-To: <15fe757d.6478f.17a129300a4.Coremail.zhaog6@lsec.cc.ac.cn> References: <15fe757d.6478f.17a129300a4.Coremail.zhaog6@lsec.cc.ac.cn> Message-ID: Hi Gang, On Wed, Jun 16, 2021 at 4:14 AM ?? wrote: > Dear all, > > I have submitted an python implementation of the sparse linear iterative > algorithm "Transpose-Free QMR" (https://github.com/scipy/scipy/pull/14160). > This algorithm (cited by 904) is very effective to solve non-Hermitian > linear systems because it has a smoother convergence curve than the other > algorithms like CGS, Bi-CGSTAB, and it has been widely used in those > prominent scientific computing packages such as PETSc etc. > > The purpose of adding the algorithm is to enrich SciPy's sparse linear > library, so that users can have more/better choices when using Krylov > subspace methods in SciPy to solve linear systems. I also hope that experts > in this field can review the implementation of the algorithm (References > are listed in "tfqmr.py"). Hope you like it. > This sounds like a great addition to SciPy. It looks like Stefan has already done a detailed review, which is very helpful. So it looks like we are close to merging your PR. Cheers, Ralf -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Sun Jun 20 08:36:21 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Sun, 20 Jun 2021 14:36:21 +0200 Subject: [SciPy-Dev] Proposal to translate hyp2f1 for complex numbers into Cython In-Reply-To: References: Message-ID: On Sun, Jun 20, 2021 at 5:06 AM Steppi, Albert < Albert_Steppi at hms.harvard.edu> wrote: > Hi everyone, > > I've submitted the PR gh-14256, which is a beginning towards moving the > implementation of Gauss's hypergeometric function hyp2f1 for complex > numbers > from Fortran into Cython. Josh Wilson mentioned at > > https://github.com/scipy/scipy/pull/8151#issuecomment-845227864 > > that this would be appreciated, and I'd like to work on this little by > little in > my spare time. The current Fortran implementation has several outstanding > issues gh-4894, gh-7340, gh-8054, and gh-8083. Pull requests gh-8110 and > gh-8151 were submitted by GitHub user FormerPhysicist to fix some of the > outstanding issues but these have languished for almost four years now due > to a > lack of reviewers conversant in both numerical computation of special > functions > and Fortran 77. This PR has a fix for gh-7430. I intend to address other > defects in the implementation of hyp2f1 in future PRs. Please see my > opening > comment in gh-14256 for more information on the contents of this PR and > plans > for the future. > This sounds great. hyp2f1 has given us headaches for a long time. Thanks for working on this Albert! Cheers, Ralf > Feel free to join the discussion of this update in gh-14256! > > > Thanks, > Albert > > Albert Steppi III, PhD > Scientific Software Developer > Laboratory of Systems Pharmacology > Harvard Medical School > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: 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: [SciPy-Dev] 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: [SciPy-Dev] [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 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: [SciPy-Dev] [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 roy.pamphile at gmail.com Mon Jun 21 04:00:40 2021 From: roy.pamphile at gmail.com (Pamphile Roy) Date: Mon, 21 Jun 2021 11:00:40 +0300 Subject: [SciPy-Dev] ANN: SciPy 1.7.0 In-Reply-To: References: Message-ID: Thanks Tyler and great work everyone! Cheers, Pamphile > On 20 Jun 2021, at 22:47, 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 > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Mon Jun 21 09:48:22 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Mon, 21 Jun 2021 15:48:22 +0200 Subject: [SciPy-Dev] doc links broken (Was: ANN: SciPy 1.7.0) In-Reply-To: References: <0CE4BE69-971D-401E-AF82-B34F6BF3E6A5@fastmail.com> Message-ID: On Mon, Jun 21, 2021 at 9:20 AM Ralf Gommers wrote: > > > 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. > Argh, it's not an uploader bug, the structure actually changed: https://docs.scipy.org/doc/scipy-1.6.3/reference/ https://docs.scipy.org/doc/scipy-1.6.3/reference/tutorial/index.html https://docs.scipy.org/doc/scipy-1.6.3/reference/cluster.html https://docs.scipy.org/doc/scipy-1.7.0/reference/ https://docs.scipy.org/doc/scipy-1.7.0/reference/tutorial/index.html#user-guide https://docs.scipy.org/doc/scipy-1.7.0/reference/reference/cluster.html (note the double reference) Fuzzy on why we didn't notice this earlier. We also can't drop the "reference" prefer - that will fix the API doc links, but break the tutorial ones. Tracking issue at https://github.com/scipy/scipy/issues/14267 Ralf -------------- next part -------------- An HTML attachment was scrubbed... URL: From namami2011 at gmail.com Tue Jun 22 05:15:34 2021 From: namami2011 at gmail.com (Namami Shanker) Date: Tue, 22 Jun 2021 14:45:34 +0530 Subject: [SciPy-Dev] Query about scipy.signal development Message-ID: <231BC7A9-2408-4CD5-887C-E6156C368A0F@getmailspring.com> Hello all, I recently came across Object-oriented design of digital filtering in scipy.signal (https://link.getmailspring.com/link/231BC7A9-2408-4CD5-887C-E6156C368A0F at getmailspring.com/0?redirect=https%3A%2F%2Fgithub.com%2Fscipy%2Fscipy%2Fwiki%2FGSoC-2021-project-ideas%23object-oriented-design-of-digital-filtering-in-scipysignal&recipient=c2NpcHktZGV2QHB5dGhvbi5vcmc%3D) article on Scipy wiki. This was proposed as one of the project ideas during GSOC21 for Scipy. However, I searched through the mailing list, and it seems that no one was selected for this project. I am an Electrical Engineering undergraduate and have knowledge in signal processing. I am interested in working on this project. I have also contributed to Scipy before and I am familiar with the development environment and workflow. I have a few questions. I?ll be thankful if any maintainer can address them. Is any scipy developer currently working on this project? Does Scipy take part in any other Open Source programs for working with students other than GSoC? Thank you, Namami Shanker Github (https://link.getmailspring.com/link/231BC7A9-2408-4CD5-887C-E6156C368A0F at getmailspring.com/1?redirect=https%3A%2F%2Fgithub.com%2FNamamiShanker&recipient=c2NpcHktZGV2QHB5dGhvbi5vcmc%3D) | LinkedIn (https://link.getmailspring.com/link/231BC7A9-2408-4CD5-887C-E6156C368A0F at getmailspring.com/2?redirect=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fnamamishanker%2F&recipient=c2NpcHktZGV2QHB5dGhvbi5vcmc%3D) -------------- next part -------------- An HTML attachment was scrubbed... URL: From alex at superconductive.com Tue Jun 22 18:24:44 2021 From: alex at superconductive.com (Alex Sherstinsky) Date: Tue, 22 Jun 2021 15:24:44 -0700 Subject: [SciPy-Dev] Request for Information: How to Contribute? Message-ID: Dear SciPy-Dev: I am a new subscriber to this mailing list (I just joined) -- thank you for accepting me! I joined this mailing list, because I was interested in making a small contribution to the project. Specifically, I implemented a bootstrap based estimator with an algorithmically computed optimal number of samples. The benefit is that the developer does not have to guess the number of samples (the algorithm computes it automatically). Since I could not find an existing widely available implementation, I wanted to inquire if I could please submit my implementation. Could you please let me know what the process is for contributing? Thank you very much, and Regards. Sincerely, --Alex Sherstinsky (https://www.linkedin.com/in/alexsherstinsky/) -------------- next part -------------- An HTML attachment was scrubbed... URL: From mhaberla at calpoly.edu Tue Jun 22 22:44:06 2021 From: mhaberla at calpoly.edu (Matt Haberland) Date: Tue, 22 Jun 2021 19:44:06 -0700 Subject: [SciPy-Dev] Request for Information: How to Contribute? In-Reply-To: References: Message-ID: I wrote the `bootstrap` function recently, so I'd be interested in reviewing your PR. I'd suggest opening an issue about this. New Issue ? scipy/scipy (github.com) Please mention me (@mdhaber) and I'll take a look. For more information about opening an issue and eventually a PR, please see: Ways to Contribute ? SciPy v1.7.0 Manual Developer Documentation ? SciPy v1.7.0 Manual Thanks for your help! This would be a cool feature to add. Matt On Tue, Jun 22, 2021 at 3:25 PM Alex Sherstinsky wrote: > Dear SciPy-Dev: > > I am a new subscriber to this mailing list (I just joined) -- thank you > for accepting me! > > I joined this mailing list, because I was interested in making a small > contribution to the project. > > Specifically, I implemented a bootstrap based estimator with an > algorithmically computed optimal number of samples. The benefit is that > the developer does not have to guess the number of samples (the algorithm > computes it automatically). Since I could not find an existing widely > available implementation, I wanted to inquire if I could please submit my > implementation. > > Could you please let me know what the process is for contributing? > > Thank you very much, and Regards. > > Sincerely, > --Alex Sherstinsky (https://www.linkedin.com/in/alexsherstinsky/) > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -- Matt Haberland Assistant Professor BioResource and Agricultural Engineering 08A-3K, Cal Poly -------------- next part -------------- An HTML attachment was scrubbed... URL: From j.naumann at fu-berlin.de Wed Jun 23 11:42:20 2021 From: j.naumann at fu-berlin.de (Jan Naumann) Date: Wed, 23 Jun 2021 17:42:20 +0200 Subject: [SciPy-Dev] PR: Implement higher-order SVD in scipy.linalg Message-ID: <426222c0-72f0-031e-63e4-cdc61c1e330c@fu-berlin.de> Dear all, I just opened a pull request to add the higher-order SVD (HOSVD) in scipy.linalg: https://github.com/scipy/scipy/pull/14284 The HOSVD is a technique used for example in the field of tensor networks for higher dimensional structures. It generalizes the idea of the SVD to higher dimensions. The implementation is based on Ref. [1]. Best, Jan Naumann [1] https://doi.org/10.1137/S0895479896305696 From stefanv at berkeley.edu Wed Jun 23 14:32:47 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Wed, 23 Jun 2021 11:32:47 -0700 Subject: [SciPy-Dev] PR: Implement higher-order SVD in scipy.linalg In-Reply-To: <426222c0-72f0-031e-63e4-cdc61c1e330c@fu-berlin.de> References: <426222c0-72f0-031e-63e4-cdc61c1e330c@fu-berlin.de> Message-ID: <71c4eceb-74f2-44f1-8432-d19b0e227a1f@www.fastmail.com> Hi Jan, On Wed, Jun 23, 2021, at 08:42, Jan Naumann wrote: > I just opened a pull request to add the higher-order SVD (HOSVD) in > scipy.linalg: https://github.com/scipy/scipy/pull/14284 > > The HOSVD is a technique used for example in the field of tensor > networks for higher dimensional structures. It generalizes the idea of > the SVD to higher dimensions. The implementation is based on Ref. [1]. Thank you for this contribution. The paper is well cited, so this is a good candidate for inclusion. I had a brief look at the PR: the implementation is fairly straightforward and needs mostly stylistic alterations. I'm glad to see you've already received some feedback from Pamphile. Best regards, St?fan 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: [SciPy-Dev] 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 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: [SciPy-Dev] [Numpy-discussion] NumPy 1.21.0 release In-Reply-To: References: Message-ID: Thanks Chuck! -------------- next part -------------- An HTML attachment was scrubbed... URL: From Albert_Steppi at hms.harvard.edu Thu Jun 24 10:26:23 2021 From: Albert_Steppi at hms.harvard.edu (Steppi, Albert) Date: Thu, 24 Jun 2021 14:26:23 +0000 Subject: [SciPy-Dev] Proposal to translate hyp2f1 for complex numbers into Cython In-Reply-To: References: , Message-ID: Hi, Following up on this. It was determined that gh-14256 contains too much content for a single PR. I've closed that PR and am now breaking it up into several smaller PRs. I've submitted gh-14287 which contains only the tests from gh-14256 and the script in scipy.special._precompute that I'm using to generate test cases with mpmath. I've made what I think are improvements to the tests since closing the previous PR. The line count in this PR is also large, but many of the lines are taken up by test cases. I've made the tests self-validating, so that the reviewers will not need to validate that each of the many test-cases test what is claimed. This new PR does not contain specialized numerical mathematics and would be accessible to a wider class of reviewers than the previous PR. Feel free to join the discussion in gh-14256. Thanks, Albert ________________________________ From: SciPy-Dev on behalf of Ralf Gommers Sent: Sunday, June 20, 2021 8:36 AM To: SciPy Developers List Subject: Re: [SciPy-Dev] Proposal to translate hyp2f1 for complex numbers into Cython On Sun, Jun 20, 2021 at 5:06 AM Steppi, Albert > wrote: Hi everyone, I've submitted the PR gh-14256, which is a beginning towards moving the implementation of Gauss's hypergeometric function hyp2f1 for complex numbers from Fortran into Cython. Josh Wilson mentioned at https://github.com/scipy/scipy/pull/8151#issuecomment-845227864 that this would be appreciated, and I'd like to work on this little by little in my spare time. The current Fortran implementation has several outstanding issues gh-4894, gh-7340, gh-8054, and gh-8083. Pull requests gh-8110 and gh-8151 were submitted by GitHub user FormerPhysicist to fix some of the outstanding issues but these have languished for almost four years now due to a lack of reviewers conversant in both numerical computation of special functions and Fortran 77. This PR has a fix for gh-7430. I intend to address other defects in the implementation of hyp2f1 in future PRs. Please see my opening comment in gh-14256 for more information on the contents of this PR and plans for the future. This sounds great. hyp2f1 has given us headaches for a long time. Thanks for working on this Albert! Cheers, Ralf Feel free to join the discussion of this update in gh-14256! Thanks, Albert Albert Steppi III, PhD Scientific Software Developer Laboratory of Systems Pharmacology Harvard Medical School _______________________________________________ SciPy-Dev mailing list SciPy-Dev at python.org https://mail.python.org/mailman/listinfo/scipy-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From roy.pamphile at gmail.com Thu Jun 24 13:30:43 2021 From: roy.pamphile at gmail.com (Pamphile Roy) Date: Thu, 24 Jun 2021 19:30:43 +0200 Subject: [SciPy-Dev] Query about scipy.signal development In-Reply-To: <231BC7A9-2408-4CD5-887C-E6156C368A0F@getmailspring.com> References: <231BC7A9-2408-4CD5-887C-E6156C368A0F@getmailspring.com> Message-ID: <68602ED3-E037-4DD0-AD47-033C6E850CFF@gmail.com> Hi Namami, Thank you for reaching out! > I recently came across Object-oriented design of digital filtering in scipy.signal article on Scipy wiki. This was proposed as one of the project ideas during GSOC21 for Scipy. However, I searched through the mailing list, and it seems that no one was selected for this project. Correct, no one was selected for this project. > I am an Electrical Engineering undergraduate and have knowledge in signal processing. I am interested in working on this project. I have also contributed to Scipy before and I am familiar with the development environment and workflow. Great! > > I have a few questions. I?ll be thankful if any maintainer can address them. > > Is any scipy developer currently working on this project? Not that I am aware of, but you can double-check the issue tracker and open pull requests. > Does Scipy take part in any other Open Source programs for working with students other than GSoC? From time to time, SciPy takes part in things like Mentored sprints at PyCon or SciPyConf for instance. Other than that, we have maintainers applying for grants with students or other members (of course things like these need to be discussed with maintainers). But there is no need for a special framework to work on things. Anybody is encouraged to contribute on the issue tracker or submit a pull request. You could also try to contact the potential mentor listed on the project idea. Cheers, Pamphile -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Fri Jun 25 09:48:05 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Fri, 25 Jun 2021 15:48:05 +0200 Subject: [SciPy-Dev] SciPy Community Meetups In-Reply-To: References: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> Message-ID: On Mon, Jun 14, 2021 at 7:14 PM Pamphile Roy wrote: > On 14.06.2021, at 18:57, Stefan van der Walt wrote: > > On Mon, Jun 14, 2021, at 08:16, Pamphile Roy wrote: > > The next SciPy community meetup (EU/AFR/USA) will be on June 25 (Friday) > at 16a.m. CEST. > > > Just to be clear: is this meant to say 16:00 (4pm) CEST? > > > Indeed it?s a typo, thank you St?fan! > > Meeting is at 16:00 (4pm) CEST. > Just seeing we missed a reminder on this: it's in 15 minutes! See https://hackmd.io/WPrn-5F3TlqeZkh2y4i7rA?both for agenda and Zoom details. Cheers, Ralf -------------- next part -------------- An HTML attachment was scrubbed... URL: From evgeny.burovskiy at gmail.com Sun Jun 27 14:46:32 2021 From: evgeny.burovskiy at gmail.com (Evgeni Burovski) Date: Sun, 27 Jun 2021 21:46:32 +0300 Subject: [SciPy-Dev] SciPy Community Meetups In-Reply-To: References: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> Message-ID: Hi, Are the meetup minutes archived somewhere? I just tried to refer to the minutes of yesterday's meeting, and only found a hackmd link from the email. Cheers, Evgeni On Fri, Jun 25, 2021 at 4:48 PM Ralf Gommers wrote: > > > > On Mon, Jun 14, 2021 at 7:14 PM Pamphile Roy wrote: >> >> On 14.06.2021, at 18:57, Stefan van der Walt wrote: >> >> On Mon, Jun 14, 2021, at 08:16, Pamphile Roy wrote: >> >> The next SciPy community meetup (EU/AFR/USA) will be on June 25 (Friday) at 16a.m. CEST. >> >> >> Just to be clear: is this meant to say 16:00 (4pm) CEST? >> >> >> Indeed it?s a typo, thank you St?fan! >> >> Meeting is at 16:00 (4pm) CEST. > > > Just seeing we missed a reminder on this: it's in 15 minutes! See https://hackmd.io/WPrn-5F3TlqeZkh2y4i7rA?both for agenda and Zoom details. > > Cheers, > Ralf > > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev From ralf.gommers at gmail.com Sun Jun 27 17:38:45 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Sun, 27 Jun 2021 23:38:45 +0200 Subject: [SciPy-Dev] SciPy Community Meetups In-Reply-To: References: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> Message-ID: On Sun, Jun 27, 2021 at 8:46 PM Evgeni Burovski wrote: > Hi, > > Are the meetup minutes archived somewhere? > I just tried to refer to the minutes of yesterday's meeting, and only > found a hackmd link from the email. > No, but this is a good idea. What NumPy does is have a separate repo ( https://github.com/numpy/archive) for meeting minutes, presentations, graphics, etc. - shall we just steal that idea? Cheers, Ralf > Cheers, > > Evgeni > > On Fri, Jun 25, 2021 at 4:48 PM Ralf Gommers > wrote: > > > > > > > > On Mon, Jun 14, 2021 at 7:14 PM Pamphile Roy > wrote: > >> > >> On 14.06.2021, at 18:57, Stefan van der Walt > wrote: > >> > >> On Mon, Jun 14, 2021, at 08:16, Pamphile Roy wrote: > >> > >> The next SciPy community meetup (EU/AFR/USA) will be on June 25 > (Friday) at 16a.m. CEST. > >> > >> > >> Just to be clear: is this meant to say 16:00 (4pm) CEST? > >> > >> > >> Indeed it?s a typo, thank you St?fan! > >> > >> Meeting is at 16:00 (4pm) CEST. > > > > > > Just seeing we missed a reminder on this: it's in 15 minutes! See > https://hackmd.io/WPrn-5F3TlqeZkh2y4i7rA?both for agenda and Zoom details. > > > > Cheers, > > Ralf > > > > _______________________________________________ > > SciPy-Dev mailing list > > SciPy-Dev at python.org > > https://mail.python.org/mailman/listinfo/scipy-dev > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From evgeny.burovskiy at gmail.com Mon Jun 28 03:36:09 2021 From: evgeny.burovskiy at gmail.com (Evgeni Burovski) Date: Mon, 28 Jun 2021 10:36:09 +0300 Subject: [SciPy-Dev] SciPy Community Meetups In-Reply-To: References: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> Message-ID: > > >> Are the meetup minutes archived somewhere? >> I just tried to refer to the minutes of yesterday's meeting, and only >> found a hackmd link from the email. >> > > No, but this is a good idea. What NumPy does is have a separate repo ( > https://github.com/numpy/archive) for meeting minutes, presentations, > graphics, etc. - shall we just steal that idea? > That'd be useful, I'd say. -------------- next part -------------- An HTML attachment was scrubbed... URL: From roy.pamphile at gmail.com Mon Jun 28 03:45:09 2021 From: roy.pamphile at gmail.com (Pamphile Roy) Date: Mon, 28 Jun 2021 09:45:09 +0200 Subject: [SciPy-Dev] SciPy Community Meetups In-Reply-To: References: <40ECDC8E-727A-42CE-8BA1-BAB7BFDF895F@gmail.com> <07a0dd38-e694-4390-a462-9e5241444e2b@www.fastmail.com> Message-ID: <4C9E7DF3-37A4-4C72-BD2B-772088037707@gmail.com> > On 27.06.2021, at 23:38, Ralf Gommers wrote: > > > > On Sun, Jun 27, 2021 at 8:46 PM Evgeni Burovski > wrote: > Hi, > > Are the meetup minutes archived somewhere? > I just tried to refer to the minutes of yesterday's meeting, and only > found a hackmd link from the email. > > No, but this is a good idea. What NumPy does is have a separate repo (https://github.com/numpy/archive ) for meeting minutes, presentations, graphics, etc. - shall we just steal that idea? +1 for me too. I hope that we have more things like this in the future and having a common space as an archive seems good. Cheers, Pamphile > > Cheers, > Ralf > > > > > Cheers, > > Evgeni > > On Fri, Jun 25, 2021 at 4:48 PM Ralf Gommers > wrote: > > > > > > > > On Mon, Jun 14, 2021 at 7:14 PM Pamphile Roy > wrote: > >> > >> On 14.06.2021, at 18:57, Stefan van der Walt > wrote: > >> > >> On Mon, Jun 14, 2021, at 08:16, Pamphile Roy wrote: > >> > >> The next SciPy community meetup (EU/AFR/USA) will be on June 25 (Friday) at 16a.m. CEST. > >> > >> > >> Just to be clear: is this meant to say 16:00 (4pm) CEST? > >> > >> > >> Indeed it?s a typo, thank you St?fan! > >> > >> Meeting is at 16:00 (4pm) CEST. > > > > > > Just seeing we missed a reminder on this: it's in 15 minutes! See https://hackmd.io/WPrn-5F3TlqeZkh2y4i7rA?both for agenda and Zoom details. > > > > Cheers, > > Ralf > > > > _______________________________________________ > > SciPy-Dev mailing list > > SciPy-Dev at python.org > > https://mail.python.org/mailman/listinfo/scipy-dev > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev -------------- next part -------------- An HTML attachment was scrubbed... URL: From roy.pamphile at gmail.com Mon Jun 28 11:13:30 2021 From: roy.pamphile at gmail.com (Pamphile Roy) Date: Mon, 28 Jun 2021 17:13:30 +0200 Subject: [SciPy-Dev] Static Typing Message-ID: Hi everyone, In a recent PR (https://github.com/scipy/scipy/pull/14284 ), we had a discussion about static typing. My understanding from previous PRs, the inclusion of MyPy in the CI and discussions during our last community meetups, was that we wanted to gradually start adding type annotations in our code base. Thanks to the great help of Bas van Beek and others, we have a few common bricks we can use to ease the process. What is your opinion about adding annotations? I expressed my position in the issue. TL;DR I am in favour of adding type annotations. This greatly helps anyone using an IDE and downstream libraries like SciKit-Learn are basically waiting for us. Lastly, I am putting here again the link to the last Python Community survey https://www.jetbrains.com/lp/python-developers-survey-2020/ , static typing is the most wanted feature. Cheers, Pamphile -------------- next part -------------- An HTML attachment was scrubbed... URL: From tyler.je.reddy at gmail.com Mon Jun 28 17:48:58 2021 From: tyler.je.reddy at gmail.com (Tyler Reddy) Date: Mon, 28 Jun 2021 15:48:58 -0600 Subject: [SciPy-Dev] Static Typing In-Reply-To: References: Message-ID: I'm probably -0.5; I've been merging PRs from Bas and others that add the typing on the assumption that folks want it, and because it has found a few bugs. But I am definitely not a fan of how it makes the code look when I'm working in i.e., vim, to say the least. And some of the Cython stub files are an absolute mess to read. A clean separation between dynamic Python glue code and statically typed C/C++ would be preferable in my opinion but then you can argue that the glue basically is the code these days. Another view I've seen expressed is that adding type hints merely provides an "illusion of productivity;" while that's a bit harsh, I do see where it is coming from compared to other priorities. There's a bit of an assumption that we'd be left behind if we don't add the type hints, and maybe someday auto-transpiling or whatever will start to happen more seriously and then the code is just slower. And/or we slowly get dropped/forked whatever by all the frameworks that need us to provide type hints to check for bugs in massive machine learning workflows and so on. So, I'd love to be grumpy and not put them in, but I'm afraid it may be a path to getting left behind. On Mon, 28 Jun 2021 at 09:13, Pamphile Roy wrote: > Hi everyone, > > In a recent PR (https://github.com/scipy/scipy/pull/14284), we had a > discussion about static typing. > My understanding from previous PRs, the inclusion of MyPy in the CI and > discussions during our last community meetups, was that we wanted > to gradually start adding type annotations in our code base. Thanks to the > great help of Bas van Beek and others, we have a few common bricks we can > use to ease the process. > > What is your opinion about adding annotations? > > I expressed my position in the issue. TL;DR I am in favour of adding type > annotations. This greatly helps anyone using an IDE and downstream > libraries like SciKit-Learn are basically waiting for us. > Lastly, I am putting here again the link to the last Python Community > survey https://www.jetbrains.com/lp/python-developers-survey-2020/, > static typing is the most wanted feature. > > Cheers, > Pamphile > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ralf.gommers at gmail.com Tue Jun 29 17:02:41 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Tue, 29 Jun 2021 23:02:41 +0200 Subject: [SciPy-Dev] Static Typing In-Reply-To: References: Message-ID: On Mon, Jun 28, 2021 at 11:49 PM Tyler Reddy wrote: > I'm probably -0.5; I've been merging PRs from Bas and others that add the > typing on the assumption that folks want it, and because it has found a few > bugs. > > But I am definitely not a fan of how it makes the code look when I'm > working in i.e., vim, to say the least. And some of the Cython stub files > are an absolute mess to read. > A clean separation between dynamic Python glue code and statically typed > C/C++ would be preferable in my opinion but then you can argue that the glue > basically is the code these days. Another view I've seen expressed is that > adding type hints merely provides an "illusion of productivity;" while > that's a bit > harsh, I do see where it is coming from compared to other priorities. > > There's a bit of an assumption that we'd be left behind if we don't add > the type hints, and maybe someday auto-transpiling or whatever will start > to happen > more seriously and then the code is just slower. And/or we slowly get > dropped/forked whatever by all the frameworks that need us to provide type > hints > to check for bugs in massive machine learning workflows and so on. So, I'd > love to be grumpy and not put them in, but I'm afraid it may be a path > to getting left behind. > > > > On Mon, 28 Jun 2021 at 09:13, Pamphile Roy wrote: > >> Hi everyone, >> >> In a recent PR (https://github.com/scipy/scipy/pull/14284), we had a >> discussion about static typing. >> My understanding from previous PRs, the inclusion of MyPy in the CI and >> discussions during our last community meetups, was that we wanted >> to gradually start adding type annotations in our code base. Thanks to >> the great help of Bas van Beek and others, we have a few common bricks we >> can use to ease the process. >> >> What is your opinion about adding annotations? >> > I think the jury is still out. On the one hand there's a lot of users that are enthusiastic about having type annotations. And they do have benefits for IDE users, for people who want to use annotations in their own code which uses SciPy, etc. For SciPy development itself, my experience is that when one writes *new code*, type annotations can be nice - they kind of force you to write code that's sane from a typing perspective, which also means it avoids design mistakes like subclasses that break substitutability or special-casing scalar returns. On the other hand, for *existing code*, they don't help much and are a pain to add. And a lot of what we do is work with existing code. Another issue is that Mypy and other typing-related tools are still beta-quality, so they come with both bugs and with gaps in functionality. So I think adding annotations now is in the "let's see how well this works" phase. I think we should try it in particular with new code, where it has the most benefits, and accept PRs that add annotations to code we already have. We haven't done that enough to figure out the cost/benefit ratio for ourselves, and comparing that to the benefits for users is even more difficult. Cheers, Ralf >> I expressed my position in the issue. TL;DR I am in favour of adding type >> annotations. This greatly helps anyone using an IDE and downstream >> libraries like SciKit-Learn are basically waiting for us. >> Lastly, I am putting here again the link to the last Python Community >> survey https://www.jetbrains.com/lp/python-developers-survey-2020/, >> static typing is the most wanted feature. >> >> Cheers, >> Pamphile >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From evgeny.burovskiy at gmail.com Wed Jun 30 12:03:21 2021 From: evgeny.burovskiy at gmail.com (Evgeni Burovski) Date: Wed, 30 Jun 2021 19:03:21 +0300 Subject: [SciPy-Dev] Static Typing In-Reply-To: References: Message-ID: On Wed, Jun 30, 2021 at 12:03 AM Ralf Gommers wrote: > > > > On Mon, Jun 28, 2021 at 11:49 PM Tyler Reddy wrote: >> >> I'm probably -0.5; I've been merging PRs from Bas and others that add the typing on the assumption that folks want it, and because it has found a few bugs. >> >> But I am definitely not a fan of how it makes the code look when I'm working in i.e., vim, to say the least. And some of the Cython stub files are an absolute mess to read. >> A clean separation between dynamic Python glue code and statically typed C/C++ would be preferable in my opinion but then you can argue that the glue >> basically is the code these days. Another view I've seen expressed is that adding type hints merely provides an "illusion of productivity;" while that's a bit >> harsh, I do see where it is coming from compared to other priorities. >> >> There's a bit of an assumption that we'd be left behind if we don't add the type hints, and maybe someday auto-transpiling or whatever will start to happen >> more seriously and then the code is just slower. And/or we slowly get dropped/forked whatever by all the frameworks that need us to provide type hints >> to check for bugs in massive machine learning workflows and so on. So, I'd love to be grumpy and not put them in, but I'm afraid it may be a path >> to getting left behind. >> >> >> >> On Mon, 28 Jun 2021 at 09:13, Pamphile Roy wrote: >>> >>> Hi everyone, >>> >>> In a recent PR (https://github.com/scipy/scipy/pull/14284), we had a discussion about static typing. >>> My understanding from previous PRs, the inclusion of MyPy in the CI and discussions during our last community meetups, was that we wanted >>> to gradually start adding type annotations in our code base. Thanks to the great help of Bas van Beek and others, we have a few common bricks we can use to ease the process. >>> >>> What is your opinion about adding annotations? > > > I think the jury is still out. On the one hand there's a lot of users that are enthusiastic about having type annotations. And they do have benefits for IDE users, for people who want to use annotations in their own code which uses SciPy, etc. > > For SciPy development itself, my experience is that when one writes *new code*, type annotations can be nice - they kind of force you to write code that's sane from a typing perspective, which also means it avoids design mistakes like subclasses that break substitutability or special-casing scalar returns. On the other hand, for *existing code*, they don't help much and are a pain to add. And a lot of what we do is work with existing code. > > Another issue is that Mypy and other typing-related tools are still beta-quality, so they come with both bugs and with gaps in functionality. > > So I think adding annotations now is in the "let's see how well this works" phase. I think we should try it in particular with new code, where it has the most benefits, and accept PRs that add annotations to code we already have. We haven't done that enough to figure out the cost/benefit ratio for ourselves, and comparing that to the benefits for users is even more difficult. ISTM it's important that annotations are optional in the sense that we do not explicitly require that new code is typed. If someone is willing to add them, great (and if someone is willing to review a typing PR, even better :-)). But this should be possible to do in a follow-up PR, not as a requirement for an enhancement PR. If/when we really do get into the brave new fully typed world, we can reconsider :-). Cheers, Evgeni From stefanv at berkeley.edu Wed Jun 30 14:06:54 2021 From: stefanv at berkeley.edu (Stefan van der Walt) Date: Wed, 30 Jun 2021 11:06:54 -0700 Subject: [SciPy-Dev] Static Typing In-Reply-To: References: Message-ID: <6fdc3926-8be7-4ff7-bf63-e614e3d16a65@www.fastmail.com> On Wed, Jun 30, 2021, at 09:03, Evgeni Burovski wrote: > ISTM it's important that annotations are optional in the sense that we > do not explicitly require that new code is typed. If someone is > willing to add them, great (and if someone is willing to review a > typing PR, even better :-)). But this should be possible to do in a > follow-up PR, not as a requirement for an enhancement PR. I agree, especially given that the typing notation is still changing. For example, they're currently working out a shorthand for typing function definitions (and I'm sure other simplifications are in the pipeline too). I'd still like to find proof that typing has significant impact. There have been some studies in JavaScript land that give rough metrics like "1/6 bugs could have been identified with typing" [0]. But then you see the Flask team annotating their entire project and finding almost none; probably because in Python we tend to test differently. We also tend to have more functional interfaces that return straightforward built-in objects. For now, I feel typing still mostly benefits IDE users. Perhaps in the future we'll see the accelerated frameworks Tyler referred to using it as well. St?fan [0] https://earlbarr.com/publications/typestudy.pdf From ralf.gommers at gmail.com Wed Jun 30 14:14:55 2021 From: ralf.gommers at gmail.com (Ralf Gommers) Date: Wed, 30 Jun 2021 20:14:55 +0200 Subject: [SciPy-Dev] Static Typing In-Reply-To: <6fdc3926-8be7-4ff7-bf63-e614e3d16a65@www.fastmail.com> References: <6fdc3926-8be7-4ff7-bf63-e614e3d16a65@www.fastmail.com> Message-ID: On Wed, Jun 30, 2021 at 8:07 PM Stefan van der Walt wrote: > On Wed, Jun 30, 2021, at 09:03, Evgeni Burovski wrote: > > ISTM it's important that annotations are optional in the sense that we > > do not explicitly require that new code is typed. If someone is > > willing to add them, great (and if someone is willing to review a > > typing PR, even better :-)). But this should be possible to do in a > > follow-up PR, not as a requirement for an enhancement PR. > > I agree, especially given that the typing notation is still changing. For > example, they're currently working out a shorthand for typing function > definitions (and I'm sure other simplifications are in the pipeline too). > That is the current state, and I agree it should stay like that. > I'd still like to find proof that typing has significant impact. Consider this: having type annotations + mypy would have prevented writing np.matrix, and we would have sane ndarray subclassing. I think that's the main impact. Finding bugs it doesn't help much with (and the ones it does catch are usually easy ones). Cheers, Ralf > There have been some studies in JavaScript land that give rough metrics > like "1/6 bugs could have been identified with typing" [0]. But then you > see the Flask team annotating their entire project and finding almost none; > probably because in Python we tend to test differently. We also tend to > have more functional interfaces that return straightforward built-in > objects. > > For now, I feel typing still mostly benefits IDE users. Perhaps in the > future we'll see the accelerated frameworks Tyler referred to using it as > well. > > St?fan > > [0] https://earlbarr.com/publications/typestudy.pdf > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From josef.pktd at gmail.com Wed Jun 30 14:27:41 2021 From: josef.pktd at gmail.com (josef.pktd at gmail.com) Date: Wed, 30 Jun 2021 14:27:41 -0400 Subject: [SciPy-Dev] Static Typing In-Reply-To: References: <6fdc3926-8be7-4ff7-bf63-e614e3d16a65@www.fastmail.com> Message-ID: On Wed, Jun 30, 2021 at 2:15 PM Ralf Gommers wrote: > > > On Wed, Jun 30, 2021 at 8:07 PM Stefan van der Walt > wrote: > >> On Wed, Jun 30, 2021, at 09:03, Evgeni Burovski wrote: >> > ISTM it's important that annotations are optional in the sense that we >> > do not explicitly require that new code is typed. If someone is >> > willing to add them, great (and if someone is willing to review a >> > typing PR, even better :-)). But this should be possible to do in a >> > follow-up PR, not as a requirement for an enhancement PR. >> >> I agree, especially given that the typing notation is still changing. >> For example, they're currently working out a shorthand for typing function >> definitions (and I'm sure other simplifications are in the pipeline too). >> > > That is the current state, and I agree it should stay like that. > > >> I'd still like to find proof that typing has significant impact. > > > Consider this: having type annotations + mypy would have prevented writing > np.matrix, and we would have sane ndarray subclassing. I think that's the > main impact. Finding bugs it doesn't help much with (and the ones it does > catch are usually easy ones). > I don't think it would have prevented np.matrix. The demand for that was too high. (For statsmodels) I worry more that it limits flexibility or gets too complicated. e.g. "instance with interface like scipy.distributions but only cdf and ppf need to be available" Josef > > Cheers, > Ralf > > > >> There have been some studies in JavaScript land that give rough metrics >> like "1/6 bugs could have been identified with typing" [0]. But then you >> see the Flask team annotating their entire project and finding almost none; >> probably because in Python we tend to test differently. We also tend to >> have more functional interfaces that return straightforward built-in >> objects. >> >> For now, I feel typing still mostly benefits IDE users. Perhaps in the >> future we'll see the accelerated frameworks Tyler referred to using it as >> well. >> >> St?fan >> >> [0] https://earlbarr.com/publications/typestudy.pdf >> _______________________________________________ >> SciPy-Dev mailing list >> SciPy-Dev at python.org >> https://mail.python.org/mailman/listinfo/scipy-dev >> > _______________________________________________ > SciPy-Dev mailing list > SciPy-Dev at python.org > https://mail.python.org/mailman/listinfo/scipy-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rth.yurchak at gmail.com Wed Jun 30 15:59:56 2021 From: rth.yurchak at gmail.com (Roman Yurchak) Date: Wed, 30 Jun 2021 21:59:56 +0200 Subject: [SciPy-Dev] Static Typing In-Reply-To: <6fdc3926-8be7-4ff7-bf63-e614e3d16a65@www.fastmail.com> References: <6fdc3926-8be7-4ff7-bf63-e614e3d16a65@www.fastmail.com> Message-ID: <27f6f61f-eba2-42c2-3df3-8fc481e6e57f@gmail.com> On 30/06/2021 20:06, Stefan van der Walt wrote: > There have been some studies in JavaScript land that give rough metrics like "1/6 bugs could have been identified with typing" [0]. But then you see the Flask team annotating their entire project and finding almost none; probably because in Python we tend to test differently. It likely also depends on the number and type of bugs that are there in the first place. If one takes an arbitrary notebook or weakly tested code it would probably find more. Though indeed it would be good to have some quantifiable measurement of how useful typing is to downstream users. Roman From serge.guelton at telecom-bretagne.eu Wed Jun 30 16:30:17 2021 From: serge.guelton at telecom-bretagne.eu (Serge Guelton) Date: Wed, 30 Jun 2021 22:30:17 +0200 Subject: [SciPy-Dev] Static Typing In-Reply-To: References: <6fdc3926-8be7-4ff7-bf63-e614e3d16a65@www.fastmail.com> Message-ID: <20210630203017.GA15579@sguelton.remote.csb> On Wed, Jun 30, 2021 at 08:14:55PM +0200, Ralf Gommers wrote: > > > On Wed, Jun 30, 2021 at 8:07 PM Stefan van der Walt <[1]stefanv at berkeley.edu> > wrote: > > On Wed, Jun 30, 2021, at 09:03, Evgeni Burovski wrote: > > ISTM it's important that annotations are optional in the sense that we > > do not explicitly require that new code is typed. If someone is > > willing to add them, great (and if someone is willing to review a > > typing PR, even better :-)). But this should be possible to do in a > > follow-up PR, not as a requirement for an enhancement PR. > > I agree, especially given that the typing notation is still changing.? For > example, they're currently working out a shorthand for typing function > definitions (and I'm sure other simplifications are in the pipeline too). I think it's worth noting that some numpy interface are inherently incompatible with fine-grain static typing. On simple example would be def foo(x : ndarray[int, :, :], strict: bool): return np.mean(x, keepdims=strict) What should be the return type of `foo`? We can't tell precisely, because it depends on the runtime value of strict. We're left with something alonside "this returns an array of the same dimension or a scalar of the same dtype" I don't know how much this dynamicity leaks to scipy interface, but it does look like a difficult problem to solve.