summaryrefslogtreecommitdiff
path: root/numpy/core/multiarray.py
diff options
context:
space:
mode:
authorSebastian Berg <sebastian@sipsolutions.net>2020-12-05 22:38:47 -0600
committerSebastian Berg <sebastian@sipsolutions.net>2021-03-18 15:37:20 -0500
commitf531110689a646f574ad1529d78b6047cf397f3e (patch)
tree4d5b1114309098fcda080557f2fd32ad1bbcdf08 /numpy/core/multiarray.py
parent9c68c2f7b1b2128a3b4af2134565f60d286fa8b9 (diff)
downloadnumpy-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.py7
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'