summaryrefslogtreecommitdiff
path: root/numpy/lib
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | DEP: Deprecated ndindex.ndincrEric Wieser2020-09-031-0/+9
| | |/ / | |/| | | | | | | | | | The "do not use" comment has been here since bb0e4f356cce2f199d9c08ffe572fbabadc846d1.
* | | | MAINT, DOC: move informational files from numpy.doc.*.py to their *.rst ↵Matti Picus2020-09-021-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | counterparts (#17222) * DOC: redistribute docstring-only content from numpy/doc * DOC: post-transition clean-up * DOC, MAINT: reskip doctests, fix a few easy ones
* | | ENH: Make the window functions exactly symmetricEric Wieser2020-08-312-12/+12
|/ / | | | | | | | | | | This relies on the fact that `cos` is exactly symmetric around zero, but not around the floating-point approximation of `pi`. Closes gh-17169.
* | ENH: implement NEP-35's `like=` argument (gh-16935)Peter Andreas Entschev2020-08-282-6/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This PR adds the implementation of NEP-35's like= argument, allowing dispatch of array creation functions with __array_function__ based on a reference array. * ENH: Add like= kwarg via __array_function__ dispatcher to asarray * ENH: Add new function for __array_function__ dispatching from C This new function allows dispatching from C directly, while also implementing the new `like=` argument, requiring only minimal changes to existing array creation functions that need to add support for that argument. * ENH: Add like= support to numpy.array The implementation uses array_implement_c_array_function, thus introducing minimal complexity to the original _array_fromobject code. * BUG: Fix like= dispatcher for np.full * ENH: Remove np.asarray like= dispatcher via Python np.asarray can rely on np.array's C dispatcher instead. * TST: Add some tests for like= argument Tests comprise some of the functions that have been implemented already: * np.array (C dispatcher) * np.asarray (indirect C dispatcher via np.array) * np.full (Python dispatcher) * np.ones (Python dispatcher) * ENH: Remove like= argument during array_implement_array_function * ENH: Add like= kwarg to ones and full * BUG: prevent duplicate removal of `like=` argument * ENH: Make `like=` a keyword-only argument * ENH: Use PyUnicode_InternFromString in arrayfunction_override Replace PyUnicode_FromString by PyUnicode_InternFromString to cache "like" string. * ENH: Check for arrayfunction_override import errors Check and handle errors on importing NumPy's Python functions * BUG: Fix array_implement_c_array_function error handling * ENH: Handle exceptions with C implementation of `like=` * ENH: Add `like=` dispatch for all asarray functions Using Python dispatcher for all of them. Using the C dispatcher directly on the `np.array` call can result in incorrect behavior. Incorrect behavior may happen if the downstream library's implementation is different or if not all keyword arguments are supported. * ENH: Simplify handling of exceptions with `like=` * TST: Add test for exception handling with `like=` * ENH: Add support for `like=` to `np.empty` and `np.zeros` * TST: Add `like=` tests for `np.empty` and `np.zeros` * ENH: Add `like=` to remaining multiarraymodule.c functions Functions are: * np.arange * np.frombuffer * np.fromfile * np.fromiter * np.fromstring * TST: Add tests for multiarraymodule.c functions with like= Functions are: * np.arange * np.frombuffer * np.fromfile * np.fromiter * np.fromstring * ENH: Add `like=` support to more creation functions Support for the following functions is added: * np.eye * np.fromfunction * np.genfromtxt * np.identity * np.loadtxt * np.tri * TST: Add `like=` tests for multiple functions Tests for the following functions are added: * np.eye * np.fromfunction * np.genfromtxt * np.identity * np.loadtxt * np.tri * TST: Reduce code duplication in `like=` tests * DOC: Document `like=` in functions that support it Add documentations for the following functions: * np.array * np.arange * np.asarray * np.asanyarray * np.ascontiguousarray * np.asfortranarray * np.require * np.empty * np.full * np.ones * np.zeros * np.identity * np.eye * np.tri * np.frombuffer * np.fromfile * np.fromiter * np.fromstring * np.loadtxt * np.genfromtxt * ENH: Add `like=` to numpy/__init__.pyi stubs * BUG: Remove duplicate `like=` dispatching in as*array Functions `np.asanyarray`, `np.contiguousarray` and `np.fortranarray` were dispatching both via their definitions and `np.array` calls, the latter should be avoided. * BUG: Fix missing check in array_implement_array_function * BUG: Add missing keyword-only markers in stubs * BUG: Fix duplicate keyword-only marker in array stub * BUG: Fix syntax error in numpy/__init__.pyi * BUG: Fix more syntax errors in numpy/__init__.pyi * ENH: Intern arrayfunction_override strings in multiarraymodule * STY: Add missing brackets to arrayfunction_override.c * MAINT: Remove arrayfunction_override dict check for kwarg * TST: Assert that 'like' is not in TestArrayLike kwargs * MAINT: Rename array_implement_c_array_function(_creation) This is done to be more explicit as to its usage being intended for array creation functions only. * MAINT: Use NotImplemented to indicate fallback to default * TST: Test that results with `like=np.array` are correct * TST: Avoid duplicating MyArray code in TestArrayLike * TST: Don't delete temp file, it may cause issues with Windows * TST: Don't rely on eval in TestArrayLike * TST: Use lambda with StringIO in TestArrayLike * ENH: Avoid unnecessary Py_XDECREF in arrayfunction_override * TST: Make TestArrayLike more readable * ENH: Cleaner error handling in arrayfunction_override * ENH: Simplify array_implement_c_array_function_creation * STY: Add missing spaces to multiarraymodule.c * STY: C99 declaration style in arrayfunction_override.c * ENH: Simplify arrayfunction_override.c further Remove cleanup label from array_implementation_c_array_function, simplifying the code. Fix unitialized variable warning in array_implementation_array_function_internal. * DOC: Use string replacement for `like=` documentation Avoid repeating the full text for the `like=` argument by storing it as a variable and using `replace` on each docstring. * DOC: Update `like=` docstring * TST: Test like= with array not implementing __array_function__ * TST: Add missing asanyarray to TestArrayLike * ENH: Use helper function for like= dispatching Avoid dispatching like= from Python implementation functions to improve their performance. This is achieved by only calling a dispatcher function when like is passed by the users. * ENH: Rename array_function_dispatch kwarg to public_api * BUG: Add accidentally removed decorator for np.eye back * DOC: Add set_array_function_like_doc function The function keeps Python files cleaner and resolve errors when __doc__ is not defined due to PYTHONOPTIMIZE or -OO . * DOC: Add mention to like= kwarg being experimental * TST: Test like= with not implemented downstream function * DOC: Fix like= docstring reference to NEP 35. * ENH: Prevent silent errors if public_api is not callable * ENH: Make set_array_function_like_doc a decorator * ENH: Simplify `_*_with_like` functions * BUG: Fix multiple `like=` dispatching in `require` * MAINT: Remove now unused public_api from array_function_dispatch Co-authored-by: Sebastian Berg <sebastian@sipsolutions.net>
* | BUG: revert trim_zeros changes from gh-16911mattip2020-08-272-56/+4
| |
* | Merge pull request #17143 from WarrenWeckesser/finfuncs-warnCharles Harris2020-08-231-6/+7
|\ \ | | | | | | MAINT: Change handling of the expired financial functions.
| * | MAINT: lib: Change handling of the expired financial functions.Warren Weckesser2020-08-221-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a previous commit, the expired financial functions were removed from NumPy, and code was added to __init__.py using the module __getattr__ to raise a customized AttributeError on any attempt to reference the expired names in the numpy namespace. That change broke released versions astropy, which has code that imports the financial functions. astropy never calls the functions, so they never saw the deprecation warnings that have been in place since numpy 1.18. This means that attempting to use a released version of astropy with numpy 1.20 will cause astropy to crash with the custom AttributeError. In this commit, instead of raising an exception when one of the expired names is referenced, a warning is generated. If the function is *called*, an exception is raised.
* | | MAINT: Chain some exceptions in arraysetops. (#17132)Raghav Khanna2020-08-231-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | * MAINT: chain type error line 303 arraysetops.py * MAINT: chain axis error line 281 arraysetops.py * Revert "MAINT: chain axis error line 281 arraysetops.py" This reverts commit f6e1f544bebb7e5346cb83bdac9756be6ee9f4f6. * MAINT: chain axis error line 281 arraysetops.py to be from None
* | DOC: Fix spacing in vectorize docKevin Sheppard2020-08-201-2/+2
|/ | | | Fix spacing that produced incorrect rendering
* Merge pull request #17058 from BvB93/trim_zeros2Matti Picus2020-08-192-9/+31
|\ | | | | MAINT: Revert boolean casting back to elementwise comparisons in `trim_zeros`
| * TST: Added / updated object array-related testsBas van Beek2020-08-131-1/+18
| |
| * MAINT: Issue the DeprecationWarning after creating the to-be returned arrayBas van Beek2020-08-131-4/+5
| |
| * MAINT: Catching warnings is expensive; remove itBas van Beek2020-08-111-5/+6
| |
| * ENH: Use elementwise comparisons with 0 rather than boolean castingBas van Beek2020-08-112-4/+7
| |
* | BUG: fix typo in polydiv that prevented promotion to poly1d (#17053)jakobjakobson132020-08-172-1/+10
| | | | | | Fix bug caused by typo and added tests
* | DEP: lib: Remove the deprecated financial functions. (#17067)Warren Weckesser2020-08-124-1349/+12
| | | | | | | | | | | | | | | | | | As explained in NEP 32, the financial functions are to be removed from version 1.20. They are now replaced with module level `__getattr__` to give a useful error message for those surprised by the `AttributeError`. This only works for Python 3.7+, but it is expected that by the 1.20 release Python 3.6 will not be supported.
* | API, BUG: Raise error on complex input to i0 (#17062)peterbell102020-08-122-15/+17
|/ | | | * BUG, API: Raise error on complex input to np.i0
* DOC: Use a less ambiguous example for array_split (#17039)raisinghanii2020-08-101-4/+4
| | | Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
* DOC: Fix non-matching pronoun in format.py documentation. (gh-17022)Phoenix Meadowlark2020-08-061-1/+1
| | | Follow up to [this commit](https://github.com/numpy/numpy/commit/36f71788620bb17d123669cf03f086fb2b87b3a8), which missed the second pronoun in this sentence.
* DOC: Improve intersect1d docstring (#16420)Dima Kogan2020-08-051-1/+3
| | | | | | The docstring now says what to expect if you call intersect1d(assume_unique=True) but pass in non-unique data. Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
* ENH: Speed up trim_zeros (#16911)Bas van Beek2020-08-042-20/+93
| | | | | | | | | | | | | * Added a benchmark for `trim_zeros()` * Improve the performance of `np.trim_zeros()` * Increase the variety of the tests Fall back to the old `np.trim_zeros()` implementation if an exception is encountered. Emit a `DeprecationWarning` in such case. * DEP,REL: Added a deprecation release note
* DOC: update val to be scalar or array like optional closes #16901 (#16907)Paul2020-07-311-3/+5
| | | | | * DOC: update val to be scalar or array like optional closes #16901 Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
* Merge pull request #16974 from mattip/pypy-win32Charles Harris2020-07-292-17/+33
|\ | | | | TST: Add pypy win32 CI testing.
| * TST: fix tests for windows + PyPymattip2020-07-302-17/+33
| |
* | DOC: Fixed typo in lib/recfunctions.py (#16973)Jesse Li2020-07-291-2/+2
| |
* | update numpy/lib/arraypad.py with appropriate chain exception (#16953)Noman Arshad2020-07-281-1/+1
|/ | | | | * update numpy/lib/arraypad.py with appropriate chain exception Co-authored-by: Noman Arshad <noman.arshad@northbaysolutions.com>
* Merge pull request #16815 from cjblocker/mgrid-floatMatti Picus2020-07-252-7/+34
|\ | | | | BUG: fix mgrid output for lower precision float inputs
| * MAINT: reference issue in comments for added index_tricks testsCameron Blocker2020-07-131-0/+2
| |
| * TST: update mgrid test from code reviewCameron Blocker2020-07-131-4/+6
| | | | | | Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
| * TST: fixed dtype check error from code reviewCameron Blocker2020-07-121-2/+2
| |
| * BUG: fix mgrid output for lower precision float inputsCameron Blocker2020-07-122-7/+30
| | | | | | | | | | | | Floats besides float64 were being coerced to integers and complex step sizes for the index trick classes would fail for complex64 input. Fixes #16466
* | Revert "Merge pull request #16248 from alexrockhill/edge"mattip2020-07-232-30/+3
| |
* | change != to ==Alex2020-07-221-1/+1
| |
* | fixed simplifyAlex2020-07-221-5/+10
| |
* | simplifiedAlex2020-07-222-14/+14
| |
* | forgot to include monotonicityAlex2020-07-221-2/+2
| |
* | changed from large number error to different solutionAlex2020-07-222-9/+11
| |
* | edge first tryAlex2020-07-222-2/+22
| | | | | | | | | | | | ENH: added edge keyword argument to digitize added test
* | MAINT: Avoid exception in NpzFile destructor if constructor raises ↵John Zwinck2020-07-211-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BadZipFile (#15604) Previously if you gave an invalid zip file to NpzFile, zipfile_factory would raise BadZipFile and NpzFile.__exit__ would be called, which accessed members which had not yet been set, leading to a confusing second exception like this: zipfile.BadZipFile: File is not a zip file Exception ignored in: <function NpzFile.__del__ at 0x9b8ef0> Traceback (most recent call last): File "numpy/lib/npyio.py", line 230, in __del__ self.close() File "numpy/lib/npyio.py", line 221, in close if self.zip is not None: AttributeError: 'NpzFile' object has no attribute 'zip' This change makes __exit__ safe even when __init__ did not complete.
* | TST, BUG: Re-raise MemoryError exception in test_large_zip's process (gh-16890)Antonio Larrosa2020-07-181-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | Since #15893, test_large_zip's actual test is run in a child process, so when this test raises a MemoryError exception, the exception is lost and the @requires_memory decorator can't catch it to return an xfail. This commit uses a boolean variable in shared memory to flag if the exception was raised, and in that case, re-raise it in the parent process. Fixes #16889
* | MAINT: Remove Duplicated Code (function extract rmap) (#16847)Wansoo Kim2020-07-171-16/+13
| | | | | | | | | | * MAINT: Remove Duplicated Code (function extract rmap) Co-authored-by: Ross Barnowski <rossbar@berkeley.edu>
* | BUG,DOC: Fix bad MPL kwarg.Ross Barnowski2020-07-161-1/+1
| | | | | | | | | | Invalide kwarg to imshow causes failures in the plot directive for docs builds using MPL > v3.3
* | Update to polynomial.pydavidedalbosco2020-07-151-5/+6
| | | | | | | | | | Edited the documentation of polyfit. The scaling factor of the covariance matrix in the description was erroneous, the correct form is chi2/dof. The code already used this correct scaling, just the description needed to be updated.
* | DOC: Add explanation of 'K' and 'A' layout options to 'asarray*' functions ↵Neal C2020-07-141-4/+7
| | | | | | | | | | | | | | (#16811) * DOC: update parameter choices for asarray, asarray_contiguous, asarray_chkfinite converters Co-authored-by: sun <sun@vosdbt.org>
* | DOC: fix inconsistent parameter name in np.ndindex docstringRohit Sanjay2020-07-131-1/+1
|/
* DOC: add example to corrcoef function (#16805)Laurie Stephey2020-07-111-0/+63
|
* DOC: adding docs on passing dimensions as tuple to ndindex (#16806)Neal C2020-07-111-2/+14
| | | | | | * adding documentation on passing dimensions to ndindex as a tuple Co-authored-by: sun <sun@vosdbt.org>
* Merge pull request #16174 from rossbar/doc/libpoly_docstring_noteMatti Picus2020-07-111-0/+66
|\ | | | | DOC: Add transition note to all lib/poly functions
| * DOC: Add transition note to all lib/poly functionsRoss Barnowski2020-05-061-0/+66
| | | | | | | | | | | | Adds a `.. note::` right after the description to all functions/classes from the numpy.lib.polynomial module notifying the user that the numpy.polynomial package is preferred.
* | DOC: Minor RST formatting. (#16792)Matthias Bussonnier2020-07-093-4/+4
| | | | | | DOC: fixes to capitalization and header lines