1414 </ script >
1515
1616 < meta name ="viewport " content ="width=device-width, initial-scale=1.0 " />
17- < title > dpnp.dpnp_array — Data Parallel Extension for NumPy 0.21.0dev0 documentation</ title >
17+ < title > dpnp.dpnp_array — Data Parallel Extension for NumPy 0.21.0dev0+10.g35010ee5cbf documentation</ title >
1818 < link rel ="stylesheet " type ="text/css " href ="../../_static/pygments.css?v=03e43079 " />
1919 < link rel ="stylesheet " type ="text/css " href ="../../_static/css/theme.css?v=9edc463e " />
2020
2121
2222 < script src ="../../_static/jquery.js?v=5d32c60e "> </ script >
2323 < script src ="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c "> </ script >
24- < script src ="../../_static/documentation_options.js?v=9aecbb74 "> </ script >
24+ < script src ="../../_static/documentation_options.js?v=72aef6b8 "> </ script >
2525 < script src ="../../_static/doctools.js?v=9bcbadda "> </ script >
2626 < script src ="../../_static/sphinx_highlight.js?v=dc90522c "> </ script >
2727 < script src ="../../_static/js/theme.js "> </ script >
@@ -124,6 +124,8 @@ <h1>Source code for dpnp.dpnp_array</h1><div class="highlight"><pre>
124124
125125< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> warnings</ span >
126126
127+ < span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> numpy</ span >
128+
127129< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> dpnp</ span >
128130< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> dpnp.tensor</ span > < span class ="w "> </ span > < span class ="k "> as</ span > < span class ="w "> </ span > < span class ="nn "> dpt</ span >
129131< span class ="kn "> import</ span > < span class ="w "> </ span > < span class ="nn "> dpnp.tensor._type_utils</ span > < span class ="w "> </ span > < span class ="k "> as</ span > < span class ="w "> </ span > < span class ="nn "> dtu</ span >
@@ -132,24 +134,45 @@ <h1>Source code for dpnp.dpnp_array</h1><div class="highlight"><pre>
132134< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> .exceptions</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> AxisError</ span >
133135
134136
137+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> _unwrap_index_element</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ):</ span >
138+ < span class ="w "> </ span > < span class ="sd "> """</ span >
139+ < span class ="sd "> Unwrap a single index element for the tensor indexing layer.</ span >
140+
141+ < span class ="sd "> Converts dpnp arrays to usm_ndarray and array-like objects (range, list)</ span >
142+ < span class ="sd "> to numpy arrays with intp dtype for NumPy-compatible advanced indexing.</ span >
143+
144+ < span class ="sd "> """</ span >
145+
146+ < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> dpt</ span > < span class ="o "> .</ span > < span class ="n "> usm_ndarray</ span > < span class ="p "> ):</ span >
147+ < span class ="k "> return</ span > < span class ="n "> x</ span >
148+ < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> dpnp_array</ span > < span class ="p "> ):</ span >
149+ < span class ="k "> return</ span > < span class ="n "> x</ span > < span class ="o "> .</ span > < span class ="n "> get_array</ span > < span class ="p "> ()</ span >
150+ < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="nb "> range</ span > < span class ="p "> ):</ span >
151+ < span class ="k "> return</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> asarray</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> dtype</ span > < span class ="o "> =</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> intp</ span > < span class ="p "> )</ span >
152+ < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="nb "> list</ span > < span class ="p "> ):</ span >
153+ < span class ="c1 "> # keep boolean lists as boolean</ span >
154+ < span class ="n "> arr</ span > < span class ="o "> =</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> asarray</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> )</ span >
155+ < span class ="c1 "> # cast empty lists (float64 in NumPy) to intp</ span >
156+ < span class ="c1 "> # for correct tensor indexing</ span >
157+ < span class ="k "> if</ span > < span class ="n "> arr</ span > < span class ="o "> .</ span > < span class ="n "> size</ span > < span class ="o "> ==</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
158+ < span class ="n "> arr</ span > < span class ="o "> =</ span > < span class ="n "> arr</ span > < span class ="o "> .</ span > < span class ="n "> astype</ span > < span class ="p "> (</ span > < span class ="n "> numpy</ span > < span class ="o "> .</ span > < span class ="n "> intp</ span > < span class ="p "> )</ span >
159+ < span class ="k "> return</ span > < span class ="n "> arr</ span >
160+ < span class ="k "> return</ span > < span class ="n "> x</ span >
161+
162+
135163< span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> _get_unwrapped_index_key</ span > < span class ="p "> (</ span > < span class ="n "> key</ span > < span class ="p "> ):</ span >
136164< span class ="w "> </ span > < span class ="sd "> """</ span >
137165< span class ="sd "> Get an unwrapped index key.</ span >
138166
139167< span class ="sd "> Return a key where each nested instance of DPNP array is unwrapped into</ span >
140- < span class ="sd "> USM ndarray for further processing in DPCTL advanced indexing functions.</ span >
168+ < span class ="sd "> USM ndarray, and array-like objects (range, list) are converted to numpy</ span >
169+ < span class ="sd "> arrays for further processing in advanced indexing functions.</ span >
141170
142171< span class ="sd "> """</ span >
143172
144173 < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> key</ span > < span class ="p "> ,</ span > < span class ="nb "> tuple</ span > < span class ="p "> ):</ span >
145- < span class ="k "> if</ span > < span class ="nb "> any</ span > < span class ="p "> (</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> dpnp_array</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> x</ span > < span class ="ow "> in</ span > < span class ="n "> key</ span > < span class ="p "> ):</ span >
146- < span class ="c1 "> # create a new tuple from the input key with unwrapped DPNP arrays</ span >
147- < span class ="k "> return</ span > < span class ="nb "> tuple</ span > < span class ="p "> (</ span >
148- < span class ="n "> x</ span > < span class ="o "> .</ span > < span class ="n "> get_array</ span > < span class ="p "> ()</ span > < span class ="k "> if</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> dpnp_array</ span > < span class ="p "> )</ span > < span class ="k "> else</ span > < span class ="n "> x</ span > < span class ="k "> for</ span > < span class ="n "> x</ span > < span class ="ow "> in</ span > < span class ="n "> key</ span >
149- < span class ="p "> )</ span >
150- < span class ="k "> elif</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> key</ span > < span class ="p "> ,</ span > < span class ="n "> dpnp_array</ span > < span class ="p "> ):</ span >
151- < span class ="k "> return</ span > < span class ="n "> key</ span > < span class ="o "> .</ span > < span class ="n "> get_array</ span > < span class ="p "> ()</ span >
152- < span class ="k "> return</ span > < span class ="n "> key</ span >
174+ < span class ="k "> return</ span > < span class ="nb "> tuple</ span > < span class ="p "> (</ span > < span class ="n "> _unwrap_index_element</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> )</ span > < span class ="k "> for</ span > < span class ="n "> x</ span > < span class ="ow "> in</ span > < span class ="n "> key</ span > < span class ="p "> )</ span >
175+ < span class ="k "> return</ span > < span class ="n "> _unwrap_index_element</ span > < span class ="p "> (</ span > < span class ="n "> key</ span > < span class ="p "> )</ span >
153176
154177
155178< span class ="c1 "> # pylint: disable=too-many-public-methods</ span >
0 commit comments