diff options
author | Sebastian Berg <sebastian@sipsolutions.net> | 2020-12-05 22:38:47 -0600 |
---|---|---|
committer | Sebastian Berg <sebastian@sipsolutions.net> | 2021-03-18 15:37:20 -0500 |
commit | f531110689a646f574ad1529d78b6047cf397f3e (patch) | |
tree | 4d5b1114309098fcda080557f2fd32ad1bbcdf08 /numpy/core/multiarray.py | |
parent | 9c68c2f7b1b2128a3b4af2134565f60d286fa8b9 (diff) | |
download | numpy-f531110689a646f574ad1529d78b6047cf397f3e.tar.gz |
ENH: Use new argument parsing for array creation functions
The array creation functions have the most to gain:
1. np.asarray is 4 times faster and commonly used.
2. Other functions are wrapped using __array_function__ in Python
making it more difficult
This commit (unfortunatly) has to do a few things:
* Modify __array_function__ C-side dispatching to accomodate
the fastcall argument convention.
* Move asarray, etc. to C after removing all "fast paths" from
np.array (simplifying the code)
* Fixup imports, since asarray was imported directly in a few places
* Replace some places where `np.array` was probably used for speed
instead of np.asarray or similar. (or by accident in 1 or 2 places)
Diffstat (limited to 'numpy/core/multiarray.py')
-rw-r--r-- | numpy/core/multiarray.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/numpy/core/multiarray.py b/numpy/core/multiarray.py index b7277ac24..b7a3a8d67 100644 --- a/numpy/core/multiarray.py +++ b/numpy/core/multiarray.py @@ -26,7 +26,8 @@ __all__ = [ 'MAY_SHARE_BOUNDS', 'MAY_SHARE_EXACT', 'NEEDS_INIT', 'NEEDS_PYAPI', 'RAISE', 'USE_GETITEM', 'USE_SETITEM', 'WRAP', '_fastCopyAndTranspose', '_flagdict', '_insert', '_reconstruct', '_vec_string', '_monotonicity', - 'add_docstring', 'arange', 'array', 'bincount', 'broadcast', + 'add_docstring', 'arange', 'array', 'asarray', 'asanyarray', + 'ascontiguousarray', 'asfortranarray', 'bincount', 'broadcast', 'busday_count', 'busday_offset', 'busdaycalendar', 'can_cast', 'compare_chararrays', 'concatenate', 'copyto', 'correlate', 'correlate2', 'count_nonzero', 'c_einsum', 'datetime_as_string', 'datetime_data', @@ -49,6 +50,10 @@ scalar.__module__ = 'numpy.core.multiarray' arange.__module__ = 'numpy' array.__module__ = 'numpy' +asarray.__module__ = 'numpy' +asanyarray.__module__ = 'numpy' +ascontiguousarray.__module__ = 'numpy' +asfortranarray.__module__ = 'numpy' datetime_data.__module__ = 'numpy' empty.__module__ = 'numpy' frombuffer.__module__ = 'numpy' |