numpy 2.3.5__cp313-cp313-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of numpy might be problematic. Click here for more details.

Files changed (897) hide show
  1. numpy/__config__.py +170 -0
  2. numpy/__config__.pyi +102 -0
  3. numpy/__init__.cython-30.pxd +1241 -0
  4. numpy/__init__.pxd +1154 -0
  5. numpy/__init__.py +945 -0
  6. numpy/__init__.pyi +6147 -0
  7. numpy/_array_api_info.py +346 -0
  8. numpy/_array_api_info.pyi +207 -0
  9. numpy/_configtool.py +39 -0
  10. numpy/_configtool.pyi +1 -0
  11. numpy/_core/__init__.py +186 -0
  12. numpy/_core/__init__.pyi +2 -0
  13. numpy/_core/_add_newdocs.py +6967 -0
  14. numpy/_core/_add_newdocs.pyi +3 -0
  15. numpy/_core/_add_newdocs_scalars.py +390 -0
  16. numpy/_core/_add_newdocs_scalars.pyi +16 -0
  17. numpy/_core/_asarray.py +134 -0
  18. numpy/_core/_asarray.pyi +41 -0
  19. numpy/_core/_dtype.py +366 -0
  20. numpy/_core/_dtype.pyi +58 -0
  21. numpy/_core/_dtype_ctypes.py +120 -0
  22. numpy/_core/_dtype_ctypes.pyi +83 -0
  23. numpy/_core/_exceptions.py +162 -0
  24. numpy/_core/_exceptions.pyi +55 -0
  25. numpy/_core/_internal.py +958 -0
  26. numpy/_core/_internal.pyi +72 -0
  27. numpy/_core/_machar.py +355 -0
  28. numpy/_core/_machar.pyi +55 -0
  29. numpy/_core/_methods.py +255 -0
  30. numpy/_core/_methods.pyi +22 -0
  31. numpy/_core/_multiarray_tests.cpython-313-darwin.so +0 -0
  32. numpy/_core/_multiarray_umath.cpython-313-darwin.so +0 -0
  33. numpy/_core/_operand_flag_tests.cpython-313-darwin.so +0 -0
  34. numpy/_core/_rational_tests.cpython-313-darwin.so +0 -0
  35. numpy/_core/_simd.cpython-313-darwin.so +0 -0
  36. numpy/_core/_simd.pyi +25 -0
  37. numpy/_core/_string_helpers.py +100 -0
  38. numpy/_core/_string_helpers.pyi +12 -0
  39. numpy/_core/_struct_ufunc_tests.cpython-313-darwin.so +0 -0
  40. numpy/_core/_type_aliases.py +119 -0
  41. numpy/_core/_type_aliases.pyi +97 -0
  42. numpy/_core/_ufunc_config.py +491 -0
  43. numpy/_core/_ufunc_config.pyi +78 -0
  44. numpy/_core/_umath_tests.cpython-313-darwin.so +0 -0
  45. numpy/_core/arrayprint.py +1775 -0
  46. numpy/_core/arrayprint.pyi +238 -0
  47. numpy/_core/cversions.py +13 -0
  48. numpy/_core/defchararray.py +1427 -0
  49. numpy/_core/defchararray.pyi +1135 -0
  50. numpy/_core/einsumfunc.py +1498 -0
  51. numpy/_core/einsumfunc.pyi +184 -0
  52. numpy/_core/fromnumeric.py +4269 -0
  53. numpy/_core/fromnumeric.pyi +1750 -0
  54. numpy/_core/function_base.py +545 -0
  55. numpy/_core/function_base.pyi +278 -0
  56. numpy/_core/getlimits.py +748 -0
  57. numpy/_core/getlimits.pyi +3 -0
  58. numpy/_core/include/numpy/__multiarray_api.c +376 -0
  59. numpy/_core/include/numpy/__multiarray_api.h +1628 -0
  60. numpy/_core/include/numpy/__ufunc_api.c +54 -0
  61. numpy/_core/include/numpy/__ufunc_api.h +341 -0
  62. numpy/_core/include/numpy/_neighborhood_iterator_imp.h +90 -0
  63. numpy/_core/include/numpy/_numpyconfig.h +33 -0
  64. numpy/_core/include/numpy/_public_dtype_api_table.h +86 -0
  65. numpy/_core/include/numpy/arrayobject.h +7 -0
  66. numpy/_core/include/numpy/arrayscalars.h +196 -0
  67. numpy/_core/include/numpy/dtype_api.h +480 -0
  68. numpy/_core/include/numpy/halffloat.h +70 -0
  69. numpy/_core/include/numpy/ndarrayobject.h +304 -0
  70. numpy/_core/include/numpy/ndarraytypes.h +1950 -0
  71. numpy/_core/include/numpy/npy_2_compat.h +249 -0
  72. numpy/_core/include/numpy/npy_2_complexcompat.h +28 -0
  73. numpy/_core/include/numpy/npy_3kcompat.h +374 -0
  74. numpy/_core/include/numpy/npy_common.h +977 -0
  75. numpy/_core/include/numpy/npy_cpu.h +124 -0
  76. numpy/_core/include/numpy/npy_endian.h +78 -0
  77. numpy/_core/include/numpy/npy_math.h +602 -0
  78. numpy/_core/include/numpy/npy_no_deprecated_api.h +20 -0
  79. numpy/_core/include/numpy/npy_os.h +42 -0
  80. numpy/_core/include/numpy/numpyconfig.h +182 -0
  81. numpy/_core/include/numpy/random/LICENSE.txt +21 -0
  82. numpy/_core/include/numpy/random/bitgen.h +20 -0
  83. numpy/_core/include/numpy/random/distributions.h +209 -0
  84. numpy/_core/include/numpy/random/libdivide.h +2079 -0
  85. numpy/_core/include/numpy/ufuncobject.h +343 -0
  86. numpy/_core/include/numpy/utils.h +37 -0
  87. numpy/_core/lib/libnpymath.a +0 -0
  88. numpy/_core/lib/npy-pkg-config/mlib.ini +12 -0
  89. numpy/_core/lib/npy-pkg-config/npymath.ini +20 -0
  90. numpy/_core/lib/pkgconfig/numpy.pc +7 -0
  91. numpy/_core/memmap.py +363 -0
  92. numpy/_core/memmap.pyi +3 -0
  93. numpy/_core/multiarray.py +1762 -0
  94. numpy/_core/multiarray.pyi +1285 -0
  95. numpy/_core/numeric.py +2760 -0
  96. numpy/_core/numeric.pyi +882 -0
  97. numpy/_core/numerictypes.py +633 -0
  98. numpy/_core/numerictypes.pyi +197 -0
  99. numpy/_core/overrides.py +183 -0
  100. numpy/_core/overrides.pyi +48 -0
  101. numpy/_core/printoptions.py +32 -0
  102. numpy/_core/printoptions.pyi +28 -0
  103. numpy/_core/records.py +1089 -0
  104. numpy/_core/records.pyi +333 -0
  105. numpy/_core/shape_base.py +998 -0
  106. numpy/_core/shape_base.pyi +175 -0
  107. numpy/_core/strings.py +1829 -0
  108. numpy/_core/strings.pyi +511 -0
  109. numpy/_core/tests/_locales.py +72 -0
  110. numpy/_core/tests/_natype.py +205 -0
  111. numpy/_core/tests/data/astype_copy.pkl +0 -0
  112. numpy/_core/tests/data/generate_umath_validation_data.cpp +170 -0
  113. numpy/_core/tests/data/recarray_from_file.fits +0 -0
  114. numpy/_core/tests/data/umath-validation-set-README.txt +15 -0
  115. numpy/_core/tests/data/umath-validation-set-arccos.csv +1429 -0
  116. numpy/_core/tests/data/umath-validation-set-arccosh.csv +1429 -0
  117. numpy/_core/tests/data/umath-validation-set-arcsin.csv +1429 -0
  118. numpy/_core/tests/data/umath-validation-set-arcsinh.csv +1429 -0
  119. numpy/_core/tests/data/umath-validation-set-arctan.csv +1429 -0
  120. numpy/_core/tests/data/umath-validation-set-arctanh.csv +1429 -0
  121. numpy/_core/tests/data/umath-validation-set-cbrt.csv +1429 -0
  122. numpy/_core/tests/data/umath-validation-set-cos.csv +1375 -0
  123. numpy/_core/tests/data/umath-validation-set-cosh.csv +1429 -0
  124. numpy/_core/tests/data/umath-validation-set-exp.csv +412 -0
  125. numpy/_core/tests/data/umath-validation-set-exp2.csv +1429 -0
  126. numpy/_core/tests/data/umath-validation-set-expm1.csv +1429 -0
  127. numpy/_core/tests/data/umath-validation-set-log.csv +271 -0
  128. numpy/_core/tests/data/umath-validation-set-log10.csv +1629 -0
  129. numpy/_core/tests/data/umath-validation-set-log1p.csv +1429 -0
  130. numpy/_core/tests/data/umath-validation-set-log2.csv +1629 -0
  131. numpy/_core/tests/data/umath-validation-set-sin.csv +1370 -0
  132. numpy/_core/tests/data/umath-validation-set-sinh.csv +1429 -0
  133. numpy/_core/tests/data/umath-validation-set-tan.csv +1429 -0
  134. numpy/_core/tests/data/umath-validation-set-tanh.csv +1429 -0
  135. numpy/_core/tests/examples/cython/checks.pyx +373 -0
  136. numpy/_core/tests/examples/cython/meson.build +43 -0
  137. numpy/_core/tests/examples/cython/setup.py +39 -0
  138. numpy/_core/tests/examples/limited_api/limited_api1.c +17 -0
  139. numpy/_core/tests/examples/limited_api/limited_api2.pyx +11 -0
  140. numpy/_core/tests/examples/limited_api/limited_api_latest.c +19 -0
  141. numpy/_core/tests/examples/limited_api/meson.build +59 -0
  142. numpy/_core/tests/examples/limited_api/setup.py +24 -0
  143. numpy/_core/tests/test__exceptions.py +90 -0
  144. numpy/_core/tests/test_abc.py +54 -0
  145. numpy/_core/tests/test_api.py +654 -0
  146. numpy/_core/tests/test_argparse.py +92 -0
  147. numpy/_core/tests/test_array_api_info.py +113 -0
  148. numpy/_core/tests/test_array_coercion.py +911 -0
  149. numpy/_core/tests/test_array_interface.py +222 -0
  150. numpy/_core/tests/test_arraymethod.py +84 -0
  151. numpy/_core/tests/test_arrayobject.py +75 -0
  152. numpy/_core/tests/test_arrayprint.py +1328 -0
  153. numpy/_core/tests/test_casting_floatingpoint_errors.py +154 -0
  154. numpy/_core/tests/test_casting_unittests.py +817 -0
  155. numpy/_core/tests/test_conversion_utils.py +206 -0
  156. numpy/_core/tests/test_cpu_dispatcher.py +49 -0
  157. numpy/_core/tests/test_cpu_features.py +432 -0
  158. numpy/_core/tests/test_custom_dtypes.py +315 -0
  159. numpy/_core/tests/test_cython.py +351 -0
  160. numpy/_core/tests/test_datetime.py +2734 -0
  161. numpy/_core/tests/test_defchararray.py +825 -0
  162. numpy/_core/tests/test_deprecations.py +454 -0
  163. numpy/_core/tests/test_dlpack.py +190 -0
  164. numpy/_core/tests/test_dtype.py +1995 -0
  165. numpy/_core/tests/test_einsum.py +1317 -0
  166. numpy/_core/tests/test_errstate.py +131 -0
  167. numpy/_core/tests/test_extint128.py +217 -0
  168. numpy/_core/tests/test_function_base.py +503 -0
  169. numpy/_core/tests/test_getlimits.py +205 -0
  170. numpy/_core/tests/test_half.py +568 -0
  171. numpy/_core/tests/test_hashtable.py +35 -0
  172. numpy/_core/tests/test_indexerrors.py +125 -0
  173. numpy/_core/tests/test_indexing.py +1455 -0
  174. numpy/_core/tests/test_item_selection.py +167 -0
  175. numpy/_core/tests/test_limited_api.py +102 -0
  176. numpy/_core/tests/test_longdouble.py +369 -0
  177. numpy/_core/tests/test_machar.py +30 -0
  178. numpy/_core/tests/test_mem_overlap.py +930 -0
  179. numpy/_core/tests/test_mem_policy.py +452 -0
  180. numpy/_core/tests/test_memmap.py +246 -0
  181. numpy/_core/tests/test_multiarray.py +10577 -0
  182. numpy/_core/tests/test_multithreading.py +292 -0
  183. numpy/_core/tests/test_nditer.py +3498 -0
  184. numpy/_core/tests/test_nep50_promotions.py +287 -0
  185. numpy/_core/tests/test_numeric.py +4247 -0
  186. numpy/_core/tests/test_numerictypes.py +651 -0
  187. numpy/_core/tests/test_overrides.py +791 -0
  188. numpy/_core/tests/test_print.py +200 -0
  189. numpy/_core/tests/test_protocols.py +46 -0
  190. numpy/_core/tests/test_records.py +544 -0
  191. numpy/_core/tests/test_regression.py +2670 -0
  192. numpy/_core/tests/test_scalar_ctors.py +207 -0
  193. numpy/_core/tests/test_scalar_methods.py +246 -0
  194. numpy/_core/tests/test_scalarbuffer.py +153 -0
  195. numpy/_core/tests/test_scalarinherit.py +105 -0
  196. numpy/_core/tests/test_scalarmath.py +1176 -0
  197. numpy/_core/tests/test_scalarprint.py +403 -0
  198. numpy/_core/tests/test_shape_base.py +891 -0
  199. numpy/_core/tests/test_simd.py +1341 -0
  200. numpy/_core/tests/test_simd_module.py +103 -0
  201. numpy/_core/tests/test_stringdtype.py +1814 -0
  202. numpy/_core/tests/test_strings.py +1499 -0
  203. numpy/_core/tests/test_ufunc.py +3313 -0
  204. numpy/_core/tests/test_umath.py +4928 -0
  205. numpy/_core/tests/test_umath_accuracy.py +124 -0
  206. numpy/_core/tests/test_umath_complex.py +626 -0
  207. numpy/_core/tests/test_unicode.py +368 -0
  208. numpy/_core/umath.py +60 -0
  209. numpy/_core/umath.pyi +197 -0
  210. numpy/_distributor_init.py +15 -0
  211. numpy/_distributor_init.pyi +1 -0
  212. numpy/_expired_attrs_2_0.py +79 -0
  213. numpy/_expired_attrs_2_0.pyi +62 -0
  214. numpy/_globals.py +96 -0
  215. numpy/_globals.pyi +17 -0
  216. numpy/_pyinstaller/__init__.py +0 -0
  217. numpy/_pyinstaller/__init__.pyi +0 -0
  218. numpy/_pyinstaller/hook-numpy.py +36 -0
  219. numpy/_pyinstaller/hook-numpy.pyi +13 -0
  220. numpy/_pyinstaller/tests/__init__.py +16 -0
  221. numpy/_pyinstaller/tests/pyinstaller-smoke.py +32 -0
  222. numpy/_pyinstaller/tests/test_pyinstaller.py +35 -0
  223. numpy/_pytesttester.py +201 -0
  224. numpy/_pytesttester.pyi +18 -0
  225. numpy/_typing/__init__.py +148 -0
  226. numpy/_typing/_add_docstring.py +153 -0
  227. numpy/_typing/_array_like.py +106 -0
  228. numpy/_typing/_char_codes.py +213 -0
  229. numpy/_typing/_dtype_like.py +114 -0
  230. numpy/_typing/_extended_precision.py +15 -0
  231. numpy/_typing/_nbit.py +19 -0
  232. numpy/_typing/_nbit_base.py +94 -0
  233. numpy/_typing/_nbit_base.pyi +40 -0
  234. numpy/_typing/_nested_sequence.py +79 -0
  235. numpy/_typing/_scalars.py +20 -0
  236. numpy/_typing/_shape.py +8 -0
  237. numpy/_typing/_ufunc.py +7 -0
  238. numpy/_typing/_ufunc.pyi +941 -0
  239. numpy/_utils/__init__.py +95 -0
  240. numpy/_utils/__init__.pyi +30 -0
  241. numpy/_utils/_convertions.py +18 -0
  242. numpy/_utils/_convertions.pyi +4 -0
  243. numpy/_utils/_inspect.py +192 -0
  244. numpy/_utils/_inspect.pyi +71 -0
  245. numpy/_utils/_pep440.py +486 -0
  246. numpy/_utils/_pep440.pyi +121 -0
  247. numpy/char/__init__.py +2 -0
  248. numpy/char/__init__.pyi +111 -0
  249. numpy/conftest.py +258 -0
  250. numpy/core/__init__.py +33 -0
  251. numpy/core/__init__.pyi +0 -0
  252. numpy/core/_dtype.py +10 -0
  253. numpy/core/_dtype.pyi +0 -0
  254. numpy/core/_dtype_ctypes.py +10 -0
  255. numpy/core/_dtype_ctypes.pyi +0 -0
  256. numpy/core/_internal.py +27 -0
  257. numpy/core/_multiarray_umath.py +57 -0
  258. numpy/core/_utils.py +21 -0
  259. numpy/core/arrayprint.py +10 -0
  260. numpy/core/defchararray.py +10 -0
  261. numpy/core/einsumfunc.py +10 -0
  262. numpy/core/fromnumeric.py +10 -0
  263. numpy/core/function_base.py +10 -0
  264. numpy/core/getlimits.py +10 -0
  265. numpy/core/multiarray.py +25 -0
  266. numpy/core/numeric.py +12 -0
  267. numpy/core/numerictypes.py +10 -0
  268. numpy/core/overrides.py +10 -0
  269. numpy/core/overrides.pyi +7 -0
  270. numpy/core/records.py +10 -0
  271. numpy/core/shape_base.py +10 -0
  272. numpy/core/umath.py +10 -0
  273. numpy/ctypeslib/__init__.py +13 -0
  274. numpy/ctypeslib/__init__.pyi +33 -0
  275. numpy/ctypeslib/_ctypeslib.py +603 -0
  276. numpy/ctypeslib/_ctypeslib.pyi +245 -0
  277. numpy/doc/ufuncs.py +138 -0
  278. numpy/dtypes.py +41 -0
  279. numpy/dtypes.pyi +631 -0
  280. numpy/exceptions.py +247 -0
  281. numpy/exceptions.pyi +27 -0
  282. numpy/f2py/__init__.py +86 -0
  283. numpy/f2py/__init__.pyi +6 -0
  284. numpy/f2py/__main__.py +5 -0
  285. numpy/f2py/__version__.py +1 -0
  286. numpy/f2py/__version__.pyi +1 -0
  287. numpy/f2py/_backends/__init__.py +9 -0
  288. numpy/f2py/_backends/__init__.pyi +5 -0
  289. numpy/f2py/_backends/_backend.py +44 -0
  290. numpy/f2py/_backends/_backend.pyi +46 -0
  291. numpy/f2py/_backends/_distutils.py +76 -0
  292. numpy/f2py/_backends/_distutils.pyi +13 -0
  293. numpy/f2py/_backends/_meson.py +231 -0
  294. numpy/f2py/_backends/_meson.pyi +63 -0
  295. numpy/f2py/_backends/meson.build.template +55 -0
  296. numpy/f2py/_isocbind.py +62 -0
  297. numpy/f2py/_isocbind.pyi +13 -0
  298. numpy/f2py/_src_pyf.py +247 -0
  299. numpy/f2py/_src_pyf.pyi +29 -0
  300. numpy/f2py/auxfuncs.py +1004 -0
  301. numpy/f2py/auxfuncs.pyi +264 -0
  302. numpy/f2py/capi_maps.py +811 -0
  303. numpy/f2py/capi_maps.pyi +33 -0
  304. numpy/f2py/cb_rules.py +665 -0
  305. numpy/f2py/cb_rules.pyi +17 -0
  306. numpy/f2py/cfuncs.py +1563 -0
  307. numpy/f2py/cfuncs.pyi +31 -0
  308. numpy/f2py/common_rules.py +143 -0
  309. numpy/f2py/common_rules.pyi +9 -0
  310. numpy/f2py/crackfortran.py +3725 -0
  311. numpy/f2py/crackfortran.pyi +258 -0
  312. numpy/f2py/diagnose.py +149 -0
  313. numpy/f2py/diagnose.pyi +1 -0
  314. numpy/f2py/f2py2e.py +786 -0
  315. numpy/f2py/f2py2e.pyi +76 -0
  316. numpy/f2py/f90mod_rules.py +269 -0
  317. numpy/f2py/f90mod_rules.pyi +16 -0
  318. numpy/f2py/func2subr.py +329 -0
  319. numpy/f2py/func2subr.pyi +7 -0
  320. numpy/f2py/rules.py +1629 -0
  321. numpy/f2py/rules.pyi +43 -0
  322. numpy/f2py/setup.cfg +3 -0
  323. numpy/f2py/src/fortranobject.c +1436 -0
  324. numpy/f2py/src/fortranobject.h +173 -0
  325. numpy/f2py/symbolic.py +1516 -0
  326. numpy/f2py/symbolic.pyi +221 -0
  327. numpy/f2py/tests/__init__.py +16 -0
  328. numpy/f2py/tests/src/abstract_interface/foo.f90 +34 -0
  329. numpy/f2py/tests/src/abstract_interface/gh18403_mod.f90 +6 -0
  330. numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +235 -0
  331. numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +1 -0
  332. numpy/f2py/tests/src/assumed_shape/foo_free.f90 +34 -0
  333. numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +41 -0
  334. numpy/f2py/tests/src/assumed_shape/foo_use.f90 +19 -0
  335. numpy/f2py/tests/src/assumed_shape/precision.f90 +4 -0
  336. numpy/f2py/tests/src/block_docstring/foo.f +6 -0
  337. numpy/f2py/tests/src/callback/foo.f +62 -0
  338. numpy/f2py/tests/src/callback/gh17797.f90 +7 -0
  339. numpy/f2py/tests/src/callback/gh18335.f90 +17 -0
  340. numpy/f2py/tests/src/callback/gh25211.f +10 -0
  341. numpy/f2py/tests/src/callback/gh25211.pyf +18 -0
  342. numpy/f2py/tests/src/callback/gh26681.f90 +18 -0
  343. numpy/f2py/tests/src/cli/gh_22819.pyf +6 -0
  344. numpy/f2py/tests/src/cli/hi77.f +3 -0
  345. numpy/f2py/tests/src/cli/hiworld.f90 +3 -0
  346. numpy/f2py/tests/src/common/block.f +11 -0
  347. numpy/f2py/tests/src/common/gh19161.f90 +10 -0
  348. numpy/f2py/tests/src/crackfortran/accesstype.f90 +13 -0
  349. numpy/f2py/tests/src/crackfortran/common_with_division.f +17 -0
  350. numpy/f2py/tests/src/crackfortran/data_common.f +8 -0
  351. numpy/f2py/tests/src/crackfortran/data_multiplier.f +5 -0
  352. numpy/f2py/tests/src/crackfortran/data_stmts.f90 +20 -0
  353. numpy/f2py/tests/src/crackfortran/data_with_comments.f +8 -0
  354. numpy/f2py/tests/src/crackfortran/foo_deps.f90 +6 -0
  355. numpy/f2py/tests/src/crackfortran/gh15035.f +16 -0
  356. numpy/f2py/tests/src/crackfortran/gh17859.f +12 -0
  357. numpy/f2py/tests/src/crackfortran/gh22648.pyf +7 -0
  358. numpy/f2py/tests/src/crackfortran/gh23533.f +5 -0
  359. numpy/f2py/tests/src/crackfortran/gh23598.f90 +4 -0
  360. numpy/f2py/tests/src/crackfortran/gh23598Warn.f90 +11 -0
  361. numpy/f2py/tests/src/crackfortran/gh23879.f90 +20 -0
  362. numpy/f2py/tests/src/crackfortran/gh27697.f90 +12 -0
  363. numpy/f2py/tests/src/crackfortran/gh2848.f90 +13 -0
  364. numpy/f2py/tests/src/crackfortran/operators.f90 +49 -0
  365. numpy/f2py/tests/src/crackfortran/privatemod.f90 +11 -0
  366. numpy/f2py/tests/src/crackfortran/publicmod.f90 +10 -0
  367. numpy/f2py/tests/src/crackfortran/pubprivmod.f90 +10 -0
  368. numpy/f2py/tests/src/crackfortran/unicode_comment.f90 +4 -0
  369. numpy/f2py/tests/src/f2cmap/.f2py_f2cmap +1 -0
  370. numpy/f2py/tests/src/f2cmap/isoFortranEnvMap.f90 +9 -0
  371. numpy/f2py/tests/src/isocintrin/isoCtests.f90 +34 -0
  372. numpy/f2py/tests/src/kind/foo.f90 +20 -0
  373. numpy/f2py/tests/src/mixed/foo.f +5 -0
  374. numpy/f2py/tests/src/mixed/foo_fixed.f90 +8 -0
  375. numpy/f2py/tests/src/mixed/foo_free.f90 +8 -0
  376. numpy/f2py/tests/src/modules/gh25337/data.f90 +8 -0
  377. numpy/f2py/tests/src/modules/gh25337/use_data.f90 +6 -0
  378. numpy/f2py/tests/src/modules/gh26920/two_mods_with_no_public_entities.f90 +21 -0
  379. numpy/f2py/tests/src/modules/gh26920/two_mods_with_one_public_routine.f90 +21 -0
  380. numpy/f2py/tests/src/modules/module_data_docstring.f90 +12 -0
  381. numpy/f2py/tests/src/modules/use_modules.f90 +20 -0
  382. numpy/f2py/tests/src/negative_bounds/issue_20853.f90 +7 -0
  383. numpy/f2py/tests/src/parameter/constant_array.f90 +45 -0
  384. numpy/f2py/tests/src/parameter/constant_both.f90 +57 -0
  385. numpy/f2py/tests/src/parameter/constant_compound.f90 +15 -0
  386. numpy/f2py/tests/src/parameter/constant_integer.f90 +22 -0
  387. numpy/f2py/tests/src/parameter/constant_non_compound.f90 +23 -0
  388. numpy/f2py/tests/src/parameter/constant_real.f90 +23 -0
  389. numpy/f2py/tests/src/quoted_character/foo.f +14 -0
  390. numpy/f2py/tests/src/regression/AB.inc +1 -0
  391. numpy/f2py/tests/src/regression/assignOnlyModule.f90 +25 -0
  392. numpy/f2py/tests/src/regression/datonly.f90 +17 -0
  393. numpy/f2py/tests/src/regression/f77comments.f +26 -0
  394. numpy/f2py/tests/src/regression/f77fixedform.f95 +5 -0
  395. numpy/f2py/tests/src/regression/f90continuation.f90 +9 -0
  396. numpy/f2py/tests/src/regression/incfile.f90 +5 -0
  397. numpy/f2py/tests/src/regression/inout.f90 +9 -0
  398. numpy/f2py/tests/src/regression/lower_f2py_fortran.f90 +5 -0
  399. numpy/f2py/tests/src/regression/mod_derived_types.f90 +23 -0
  400. numpy/f2py/tests/src/return_character/foo77.f +45 -0
  401. numpy/f2py/tests/src/return_character/foo90.f90 +48 -0
  402. numpy/f2py/tests/src/return_complex/foo77.f +45 -0
  403. numpy/f2py/tests/src/return_complex/foo90.f90 +48 -0
  404. numpy/f2py/tests/src/return_integer/foo77.f +56 -0
  405. numpy/f2py/tests/src/return_integer/foo90.f90 +59 -0
  406. numpy/f2py/tests/src/return_logical/foo77.f +56 -0
  407. numpy/f2py/tests/src/return_logical/foo90.f90 +59 -0
  408. numpy/f2py/tests/src/return_real/foo77.f +45 -0
  409. numpy/f2py/tests/src/return_real/foo90.f90 +48 -0
  410. numpy/f2py/tests/src/routines/funcfortranname.f +5 -0
  411. numpy/f2py/tests/src/routines/funcfortranname.pyf +11 -0
  412. numpy/f2py/tests/src/routines/subrout.f +4 -0
  413. numpy/f2py/tests/src/routines/subrout.pyf +10 -0
  414. numpy/f2py/tests/src/size/foo.f90 +44 -0
  415. numpy/f2py/tests/src/string/char.f90 +29 -0
  416. numpy/f2py/tests/src/string/fixed_string.f90 +34 -0
  417. numpy/f2py/tests/src/string/gh24008.f +8 -0
  418. numpy/f2py/tests/src/string/gh24662.f90 +7 -0
  419. numpy/f2py/tests/src/string/gh25286.f90 +14 -0
  420. numpy/f2py/tests/src/string/gh25286.pyf +12 -0
  421. numpy/f2py/tests/src/string/gh25286_bc.pyf +12 -0
  422. numpy/f2py/tests/src/string/scalar_string.f90 +9 -0
  423. numpy/f2py/tests/src/string/string.f +12 -0
  424. numpy/f2py/tests/src/value_attrspec/gh21665.f90 +9 -0
  425. numpy/f2py/tests/test_abstract_interface.py +26 -0
  426. numpy/f2py/tests/test_array_from_pyobj.py +678 -0
  427. numpy/f2py/tests/test_assumed_shape.py +50 -0
  428. numpy/f2py/tests/test_block_docstring.py +20 -0
  429. numpy/f2py/tests/test_callback.py +263 -0
  430. numpy/f2py/tests/test_character.py +641 -0
  431. numpy/f2py/tests/test_common.py +23 -0
  432. numpy/f2py/tests/test_crackfortran.py +421 -0
  433. numpy/f2py/tests/test_data.py +71 -0
  434. numpy/f2py/tests/test_docs.py +64 -0
  435. numpy/f2py/tests/test_f2cmap.py +17 -0
  436. numpy/f2py/tests/test_f2py2e.py +964 -0
  437. numpy/f2py/tests/test_isoc.py +56 -0
  438. numpy/f2py/tests/test_kind.py +53 -0
  439. numpy/f2py/tests/test_mixed.py +35 -0
  440. numpy/f2py/tests/test_modules.py +83 -0
  441. numpy/f2py/tests/test_parameter.py +129 -0
  442. numpy/f2py/tests/test_pyf_src.py +43 -0
  443. numpy/f2py/tests/test_quoted_character.py +18 -0
  444. numpy/f2py/tests/test_regression.py +187 -0
  445. numpy/f2py/tests/test_return_character.py +48 -0
  446. numpy/f2py/tests/test_return_complex.py +67 -0
  447. numpy/f2py/tests/test_return_integer.py +55 -0
  448. numpy/f2py/tests/test_return_logical.py +65 -0
  449. numpy/f2py/tests/test_return_real.py +109 -0
  450. numpy/f2py/tests/test_routines.py +29 -0
  451. numpy/f2py/tests/test_semicolon_split.py +75 -0
  452. numpy/f2py/tests/test_size.py +45 -0
  453. numpy/f2py/tests/test_string.py +100 -0
  454. numpy/f2py/tests/test_symbolic.py +495 -0
  455. numpy/f2py/tests/test_value_attrspec.py +15 -0
  456. numpy/f2py/tests/util.py +442 -0
  457. numpy/f2py/use_rules.py +99 -0
  458. numpy/f2py/use_rules.pyi +9 -0
  459. numpy/fft/__init__.py +215 -0
  460. numpy/fft/__init__.pyi +43 -0
  461. numpy/fft/_helper.py +235 -0
  462. numpy/fft/_helper.pyi +45 -0
  463. numpy/fft/_pocketfft.py +1693 -0
  464. numpy/fft/_pocketfft.pyi +138 -0
  465. numpy/fft/_pocketfft_umath.cpython-313-darwin.so +0 -0
  466. numpy/fft/helper.py +17 -0
  467. numpy/fft/helper.pyi +22 -0
  468. numpy/fft/tests/__init__.py +0 -0
  469. numpy/fft/tests/test_helper.py +167 -0
  470. numpy/fft/tests/test_pocketfft.py +589 -0
  471. numpy/lib/__init__.py +97 -0
  472. numpy/lib/__init__.pyi +44 -0
  473. numpy/lib/_array_utils_impl.py +62 -0
  474. numpy/lib/_array_utils_impl.pyi +26 -0
  475. numpy/lib/_arraypad_impl.py +890 -0
  476. numpy/lib/_arraypad_impl.pyi +89 -0
  477. numpy/lib/_arraysetops_impl.py +1260 -0
  478. numpy/lib/_arraysetops_impl.pyi +468 -0
  479. numpy/lib/_arrayterator_impl.py +224 -0
  480. numpy/lib/_arrayterator_impl.pyi +46 -0
  481. numpy/lib/_datasource.py +700 -0
  482. numpy/lib/_datasource.pyi +31 -0
  483. numpy/lib/_format_impl.py +1036 -0
  484. numpy/lib/_format_impl.pyi +26 -0
  485. numpy/lib/_function_base_impl.py +5844 -0
  486. numpy/lib/_function_base_impl.pyi +1164 -0
  487. numpy/lib/_histograms_impl.py +1085 -0
  488. numpy/lib/_histograms_impl.pyi +50 -0
  489. numpy/lib/_index_tricks_impl.py +1067 -0
  490. numpy/lib/_index_tricks_impl.pyi +208 -0
  491. numpy/lib/_iotools.py +900 -0
  492. numpy/lib/_iotools.pyi +114 -0
  493. numpy/lib/_nanfunctions_impl.py +2024 -0
  494. numpy/lib/_nanfunctions_impl.pyi +52 -0
  495. numpy/lib/_npyio_impl.py +2596 -0
  496. numpy/lib/_npyio_impl.pyi +301 -0
  497. numpy/lib/_polynomial_impl.py +1465 -0
  498. numpy/lib/_polynomial_impl.pyi +318 -0
  499. numpy/lib/_scimath_impl.py +642 -0
  500. numpy/lib/_scimath_impl.pyi +93 -0
  501. numpy/lib/_shape_base_impl.py +1301 -0
  502. numpy/lib/_shape_base_impl.pyi +235 -0
  503. numpy/lib/_stride_tricks_impl.py +549 -0
  504. numpy/lib/_stride_tricks_impl.pyi +74 -0
  505. numpy/lib/_twodim_base_impl.py +1201 -0
  506. numpy/lib/_twodim_base_impl.pyi +438 -0
  507. numpy/lib/_type_check_impl.py +699 -0
  508. numpy/lib/_type_check_impl.pyi +350 -0
  509. numpy/lib/_ufunclike_impl.py +207 -0
  510. numpy/lib/_ufunclike_impl.pyi +67 -0
  511. numpy/lib/_user_array_impl.py +299 -0
  512. numpy/lib/_user_array_impl.pyi +225 -0
  513. numpy/lib/_utils_impl.py +784 -0
  514. numpy/lib/_utils_impl.pyi +10 -0
  515. numpy/lib/_version.py +154 -0
  516. numpy/lib/_version.pyi +17 -0
  517. numpy/lib/array_utils.py +7 -0
  518. numpy/lib/array_utils.pyi +12 -0
  519. numpy/lib/format.py +24 -0
  520. numpy/lib/format.pyi +66 -0
  521. numpy/lib/introspect.py +95 -0
  522. numpy/lib/introspect.pyi +3 -0
  523. numpy/lib/mixins.py +180 -0
  524. numpy/lib/mixins.pyi +77 -0
  525. numpy/lib/npyio.py +1 -0
  526. numpy/lib/npyio.pyi +9 -0
  527. numpy/lib/recfunctions.py +1681 -0
  528. numpy/lib/recfunctions.pyi +435 -0
  529. numpy/lib/scimath.py +13 -0
  530. numpy/lib/scimath.pyi +30 -0
  531. numpy/lib/stride_tricks.py +1 -0
  532. numpy/lib/stride_tricks.pyi +6 -0
  533. numpy/lib/tests/__init__.py +0 -0
  534. numpy/lib/tests/data/py2-np0-objarr.npy +0 -0
  535. numpy/lib/tests/data/py2-objarr.npy +0 -0
  536. numpy/lib/tests/data/py2-objarr.npz +0 -0
  537. numpy/lib/tests/data/py3-objarr.npy +0 -0
  538. numpy/lib/tests/data/py3-objarr.npz +0 -0
  539. numpy/lib/tests/data/python3.npy +0 -0
  540. numpy/lib/tests/data/win64python2.npy +0 -0
  541. numpy/lib/tests/test__datasource.py +352 -0
  542. numpy/lib/tests/test__iotools.py +360 -0
  543. numpy/lib/tests/test__version.py +64 -0
  544. numpy/lib/tests/test_array_utils.py +32 -0
  545. numpy/lib/tests/test_arraypad.py +1415 -0
  546. numpy/lib/tests/test_arraysetops.py +1074 -0
  547. numpy/lib/tests/test_arrayterator.py +46 -0
  548. numpy/lib/tests/test_format.py +1054 -0
  549. numpy/lib/tests/test_function_base.py +4573 -0
  550. numpy/lib/tests/test_histograms.py +855 -0
  551. numpy/lib/tests/test_index_tricks.py +573 -0
  552. numpy/lib/tests/test_io.py +2848 -0
  553. numpy/lib/tests/test_loadtxt.py +1101 -0
  554. numpy/lib/tests/test_mixins.py +215 -0
  555. numpy/lib/tests/test_nanfunctions.py +1438 -0
  556. numpy/lib/tests/test_packbits.py +376 -0
  557. numpy/lib/tests/test_polynomial.py +320 -0
  558. numpy/lib/tests/test_recfunctions.py +1052 -0
  559. numpy/lib/tests/test_regression.py +231 -0
  560. numpy/lib/tests/test_shape_base.py +813 -0
  561. numpy/lib/tests/test_stride_tricks.py +656 -0
  562. numpy/lib/tests/test_twodim_base.py +559 -0
  563. numpy/lib/tests/test_type_check.py +473 -0
  564. numpy/lib/tests/test_ufunclike.py +97 -0
  565. numpy/lib/tests/test_utils.py +80 -0
  566. numpy/lib/user_array.py +1 -0
  567. numpy/lib/user_array.pyi +1 -0
  568. numpy/linalg/__init__.py +98 -0
  569. numpy/linalg/__init__.pyi +73 -0
  570. numpy/linalg/_linalg.py +3682 -0
  571. numpy/linalg/_linalg.pyi +475 -0
  572. numpy/linalg/_umath_linalg.cpython-313-darwin.so +0 -0
  573. numpy/linalg/_umath_linalg.pyi +61 -0
  574. numpy/linalg/lapack_lite.cpython-313-darwin.so +0 -0
  575. numpy/linalg/lapack_lite.pyi +141 -0
  576. numpy/linalg/linalg.py +17 -0
  577. numpy/linalg/linalg.pyi +69 -0
  578. numpy/linalg/tests/__init__.py +0 -0
  579. numpy/linalg/tests/test_deprecations.py +20 -0
  580. numpy/linalg/tests/test_linalg.py +2443 -0
  581. numpy/linalg/tests/test_regression.py +181 -0
  582. numpy/ma/API_CHANGES.txt +135 -0
  583. numpy/ma/LICENSE +24 -0
  584. numpy/ma/README.rst +236 -0
  585. numpy/ma/__init__.py +53 -0
  586. numpy/ma/__init__.pyi +458 -0
  587. numpy/ma/core.py +8933 -0
  588. numpy/ma/core.pyi +1462 -0
  589. numpy/ma/extras.py +2344 -0
  590. numpy/ma/extras.pyi +138 -0
  591. numpy/ma/mrecords.py +773 -0
  592. numpy/ma/mrecords.pyi +96 -0
  593. numpy/ma/tests/__init__.py +0 -0
  594. numpy/ma/tests/test_arrayobject.py +40 -0
  595. numpy/ma/tests/test_core.py +5886 -0
  596. numpy/ma/tests/test_deprecations.py +87 -0
  597. numpy/ma/tests/test_extras.py +1998 -0
  598. numpy/ma/tests/test_mrecords.py +497 -0
  599. numpy/ma/tests/test_old_ma.py +942 -0
  600. numpy/ma/tests/test_regression.py +100 -0
  601. numpy/ma/tests/test_subclassing.py +469 -0
  602. numpy/ma/testutils.py +294 -0
  603. numpy/matlib.py +380 -0
  604. numpy/matlib.pyi +582 -0
  605. numpy/matrixlib/__init__.py +12 -0
  606. numpy/matrixlib/__init__.pyi +5 -0
  607. numpy/matrixlib/defmatrix.py +1119 -0
  608. numpy/matrixlib/defmatrix.pyi +17 -0
  609. numpy/matrixlib/tests/__init__.py +0 -0
  610. numpy/matrixlib/tests/test_defmatrix.py +455 -0
  611. numpy/matrixlib/tests/test_interaction.py +360 -0
  612. numpy/matrixlib/tests/test_masked_matrix.py +240 -0
  613. numpy/matrixlib/tests/test_matrix_linalg.py +105 -0
  614. numpy/matrixlib/tests/test_multiarray.py +17 -0
  615. numpy/matrixlib/tests/test_numeric.py +18 -0
  616. numpy/matrixlib/tests/test_regression.py +31 -0
  617. numpy/polynomial/__init__.py +187 -0
  618. numpy/polynomial/__init__.pyi +25 -0
  619. numpy/polynomial/_polybase.py +1191 -0
  620. numpy/polynomial/_polybase.pyi +285 -0
  621. numpy/polynomial/_polytypes.pyi +892 -0
  622. numpy/polynomial/chebyshev.py +2003 -0
  623. numpy/polynomial/chebyshev.pyi +181 -0
  624. numpy/polynomial/hermite.py +1740 -0
  625. numpy/polynomial/hermite.pyi +107 -0
  626. numpy/polynomial/hermite_e.py +1642 -0
  627. numpy/polynomial/hermite_e.pyi +107 -0
  628. numpy/polynomial/laguerre.py +1675 -0
  629. numpy/polynomial/laguerre.pyi +100 -0
  630. numpy/polynomial/legendre.py +1605 -0
  631. numpy/polynomial/legendre.pyi +100 -0
  632. numpy/polynomial/polynomial.py +1616 -0
  633. numpy/polynomial/polynomial.pyi +89 -0
  634. numpy/polynomial/polyutils.py +759 -0
  635. numpy/polynomial/polyutils.pyi +423 -0
  636. numpy/polynomial/tests/__init__.py +0 -0
  637. numpy/polynomial/tests/test_chebyshev.py +623 -0
  638. numpy/polynomial/tests/test_classes.py +618 -0
  639. numpy/polynomial/tests/test_hermite.py +558 -0
  640. numpy/polynomial/tests/test_hermite_e.py +559 -0
  641. numpy/polynomial/tests/test_laguerre.py +540 -0
  642. numpy/polynomial/tests/test_legendre.py +571 -0
  643. numpy/polynomial/tests/test_polynomial.py +669 -0
  644. numpy/polynomial/tests/test_polyutils.py +128 -0
  645. numpy/polynomial/tests/test_printing.py +555 -0
  646. numpy/polynomial/tests/test_symbol.py +217 -0
  647. numpy/py.typed +0 -0
  648. numpy/random/LICENSE.md +71 -0
  649. numpy/random/__init__.pxd +14 -0
  650. numpy/random/__init__.py +213 -0
  651. numpy/random/__init__.pyi +124 -0
  652. numpy/random/_bounded_integers.cpython-313-darwin.so +0 -0
  653. numpy/random/_bounded_integers.pxd +29 -0
  654. numpy/random/_bounded_integers.pyi +1 -0
  655. numpy/random/_common.cpython-313-darwin.so +0 -0
  656. numpy/random/_common.pxd +107 -0
  657. numpy/random/_common.pyi +16 -0
  658. numpy/random/_examples/cffi/extending.py +44 -0
  659. numpy/random/_examples/cffi/parse.py +53 -0
  660. numpy/random/_examples/cython/extending.pyx +77 -0
  661. numpy/random/_examples/cython/extending_distributions.pyx +118 -0
  662. numpy/random/_examples/cython/meson.build +53 -0
  663. numpy/random/_examples/numba/extending.py +86 -0
  664. numpy/random/_examples/numba/extending_distributions.py +67 -0
  665. numpy/random/_generator.cpython-313-darwin.so +0 -0
  666. numpy/random/_generator.pyi +861 -0
  667. numpy/random/_mt19937.cpython-313-darwin.so +0 -0
  668. numpy/random/_mt19937.pyi +25 -0
  669. numpy/random/_pcg64.cpython-313-darwin.so +0 -0
  670. numpy/random/_pcg64.pyi +44 -0
  671. numpy/random/_philox.cpython-313-darwin.so +0 -0
  672. numpy/random/_philox.pyi +39 -0
  673. numpy/random/_pickle.py +88 -0
  674. numpy/random/_pickle.pyi +43 -0
  675. numpy/random/_sfc64.cpython-313-darwin.so +0 -0
  676. numpy/random/_sfc64.pyi +28 -0
  677. numpy/random/bit_generator.cpython-313-darwin.so +0 -0
  678. numpy/random/bit_generator.pxd +35 -0
  679. numpy/random/bit_generator.pyi +124 -0
  680. numpy/random/c_distributions.pxd +119 -0
  681. numpy/random/lib/libnpyrandom.a +0 -0
  682. numpy/random/mtrand.cpython-313-darwin.so +0 -0
  683. numpy/random/mtrand.pyi +703 -0
  684. numpy/random/tests/__init__.py +0 -0
  685. numpy/random/tests/data/__init__.py +0 -0
  686. numpy/random/tests/data/generator_pcg64_np121.pkl.gz +0 -0
  687. numpy/random/tests/data/generator_pcg64_np126.pkl.gz +0 -0
  688. numpy/random/tests/data/mt19937-testset-1.csv +1001 -0
  689. numpy/random/tests/data/mt19937-testset-2.csv +1001 -0
  690. numpy/random/tests/data/pcg64-testset-1.csv +1001 -0
  691. numpy/random/tests/data/pcg64-testset-2.csv +1001 -0
  692. numpy/random/tests/data/pcg64dxsm-testset-1.csv +1001 -0
  693. numpy/random/tests/data/pcg64dxsm-testset-2.csv +1001 -0
  694. numpy/random/tests/data/philox-testset-1.csv +1001 -0
  695. numpy/random/tests/data/philox-testset-2.csv +1001 -0
  696. numpy/random/tests/data/sfc64-testset-1.csv +1001 -0
  697. numpy/random/tests/data/sfc64-testset-2.csv +1001 -0
  698. numpy/random/tests/data/sfc64_np126.pkl.gz +0 -0
  699. numpy/random/tests/test_direct.py +592 -0
  700. numpy/random/tests/test_extending.py +127 -0
  701. numpy/random/tests/test_generator_mt19937.py +2809 -0
  702. numpy/random/tests/test_generator_mt19937_regressions.py +207 -0
  703. numpy/random/tests/test_random.py +1757 -0
  704. numpy/random/tests/test_randomstate.py +2130 -0
  705. numpy/random/tests/test_randomstate_regression.py +217 -0
  706. numpy/random/tests/test_regression.py +152 -0
  707. numpy/random/tests/test_seed_sequence.py +79 -0
  708. numpy/random/tests/test_smoke.py +819 -0
  709. numpy/rec/__init__.py +2 -0
  710. numpy/rec/__init__.pyi +23 -0
  711. numpy/strings/__init__.py +2 -0
  712. numpy/strings/__init__.pyi +97 -0
  713. numpy/testing/__init__.py +22 -0
  714. numpy/testing/__init__.pyi +102 -0
  715. numpy/testing/_private/__init__.py +0 -0
  716. numpy/testing/_private/__init__.pyi +0 -0
  717. numpy/testing/_private/extbuild.py +250 -0
  718. numpy/testing/_private/extbuild.pyi +25 -0
  719. numpy/testing/_private/utils.py +2752 -0
  720. numpy/testing/_private/utils.pyi +499 -0
  721. numpy/testing/overrides.py +84 -0
  722. numpy/testing/overrides.pyi +11 -0
  723. numpy/testing/print_coercion_tables.py +207 -0
  724. numpy/testing/print_coercion_tables.pyi +27 -0
  725. numpy/testing/tests/__init__.py +0 -0
  726. numpy/testing/tests/test_utils.py +1917 -0
  727. numpy/tests/__init__.py +0 -0
  728. numpy/tests/test__all__.py +10 -0
  729. numpy/tests/test_configtool.py +48 -0
  730. numpy/tests/test_ctypeslib.py +377 -0
  731. numpy/tests/test_lazyloading.py +38 -0
  732. numpy/tests/test_matlib.py +59 -0
  733. numpy/tests/test_numpy_config.py +46 -0
  734. numpy/tests/test_numpy_version.py +54 -0
  735. numpy/tests/test_public_api.py +806 -0
  736. numpy/tests/test_reloading.py +74 -0
  737. numpy/tests/test_scripts.py +49 -0
  738. numpy/tests/test_warnings.py +78 -0
  739. numpy/typing/__init__.py +201 -0
  740. numpy/typing/mypy_plugin.py +195 -0
  741. numpy/typing/tests/__init__.py +0 -0
  742. numpy/typing/tests/data/fail/arithmetic.pyi +126 -0
  743. numpy/typing/tests/data/fail/array_constructors.pyi +34 -0
  744. numpy/typing/tests/data/fail/array_like.pyi +15 -0
  745. numpy/typing/tests/data/fail/array_pad.pyi +6 -0
  746. numpy/typing/tests/data/fail/arrayprint.pyi +16 -0
  747. numpy/typing/tests/data/fail/arrayterator.pyi +14 -0
  748. numpy/typing/tests/data/fail/bitwise_ops.pyi +17 -0
  749. numpy/typing/tests/data/fail/char.pyi +65 -0
  750. numpy/typing/tests/data/fail/chararray.pyi +62 -0
  751. numpy/typing/tests/data/fail/comparisons.pyi +27 -0
  752. numpy/typing/tests/data/fail/constants.pyi +3 -0
  753. numpy/typing/tests/data/fail/datasource.pyi +15 -0
  754. numpy/typing/tests/data/fail/dtype.pyi +17 -0
  755. numpy/typing/tests/data/fail/einsumfunc.pyi +12 -0
  756. numpy/typing/tests/data/fail/flatiter.pyi +20 -0
  757. numpy/typing/tests/data/fail/fromnumeric.pyi +148 -0
  758. numpy/typing/tests/data/fail/histograms.pyi +12 -0
  759. numpy/typing/tests/data/fail/index_tricks.pyi +14 -0
  760. numpy/typing/tests/data/fail/lib_function_base.pyi +62 -0
  761. numpy/typing/tests/data/fail/lib_polynomial.pyi +29 -0
  762. numpy/typing/tests/data/fail/lib_utils.pyi +3 -0
  763. numpy/typing/tests/data/fail/lib_version.pyi +6 -0
  764. numpy/typing/tests/data/fail/linalg.pyi +48 -0
  765. numpy/typing/tests/data/fail/ma.pyi +143 -0
  766. numpy/typing/tests/data/fail/memmap.pyi +5 -0
  767. numpy/typing/tests/data/fail/modules.pyi +17 -0
  768. numpy/typing/tests/data/fail/multiarray.pyi +52 -0
  769. numpy/typing/tests/data/fail/ndarray.pyi +11 -0
  770. numpy/typing/tests/data/fail/ndarray_misc.pyi +36 -0
  771. numpy/typing/tests/data/fail/nditer.pyi +8 -0
  772. numpy/typing/tests/data/fail/nested_sequence.pyi +16 -0
  773. numpy/typing/tests/data/fail/npyio.pyi +24 -0
  774. numpy/typing/tests/data/fail/numerictypes.pyi +5 -0
  775. numpy/typing/tests/data/fail/random.pyi +62 -0
  776. numpy/typing/tests/data/fail/rec.pyi +17 -0
  777. numpy/typing/tests/data/fail/scalars.pyi +87 -0
  778. numpy/typing/tests/data/fail/shape.pyi +6 -0
  779. numpy/typing/tests/data/fail/shape_base.pyi +8 -0
  780. numpy/typing/tests/data/fail/stride_tricks.pyi +9 -0
  781. numpy/typing/tests/data/fail/strings.pyi +52 -0
  782. numpy/typing/tests/data/fail/testing.pyi +28 -0
  783. numpy/typing/tests/data/fail/twodim_base.pyi +32 -0
  784. numpy/typing/tests/data/fail/type_check.pyi +13 -0
  785. numpy/typing/tests/data/fail/ufunc_config.pyi +21 -0
  786. numpy/typing/tests/data/fail/ufunclike.pyi +21 -0
  787. numpy/typing/tests/data/fail/ufuncs.pyi +17 -0
  788. numpy/typing/tests/data/fail/warnings_and_errors.pyi +5 -0
  789. numpy/typing/tests/data/misc/extended_precision.pyi +9 -0
  790. numpy/typing/tests/data/mypy.ini +9 -0
  791. numpy/typing/tests/data/pass/arithmetic.py +612 -0
  792. numpy/typing/tests/data/pass/array_constructors.py +137 -0
  793. numpy/typing/tests/data/pass/array_like.py +43 -0
  794. numpy/typing/tests/data/pass/arrayprint.py +37 -0
  795. numpy/typing/tests/data/pass/arrayterator.py +27 -0
  796. numpy/typing/tests/data/pass/bitwise_ops.py +131 -0
  797. numpy/typing/tests/data/pass/comparisons.py +315 -0
  798. numpy/typing/tests/data/pass/dtype.py +57 -0
  799. numpy/typing/tests/data/pass/einsumfunc.py +36 -0
  800. numpy/typing/tests/data/pass/flatiter.py +19 -0
  801. numpy/typing/tests/data/pass/fromnumeric.py +272 -0
  802. numpy/typing/tests/data/pass/index_tricks.py +60 -0
  803. numpy/typing/tests/data/pass/lib_user_array.py +22 -0
  804. numpy/typing/tests/data/pass/lib_utils.py +19 -0
  805. numpy/typing/tests/data/pass/lib_version.py +18 -0
  806. numpy/typing/tests/data/pass/literal.py +51 -0
  807. numpy/typing/tests/data/pass/ma.py +174 -0
  808. numpy/typing/tests/data/pass/mod.py +149 -0
  809. numpy/typing/tests/data/pass/modules.py +45 -0
  810. numpy/typing/tests/data/pass/multiarray.py +76 -0
  811. numpy/typing/tests/data/pass/ndarray_conversion.py +87 -0
  812. numpy/typing/tests/data/pass/ndarray_misc.py +203 -0
  813. numpy/typing/tests/data/pass/ndarray_shape_manipulation.py +47 -0
  814. numpy/typing/tests/data/pass/nditer.py +4 -0
  815. numpy/typing/tests/data/pass/numeric.py +95 -0
  816. numpy/typing/tests/data/pass/numerictypes.py +17 -0
  817. numpy/typing/tests/data/pass/random.py +1497 -0
  818. numpy/typing/tests/data/pass/recfunctions.py +161 -0
  819. numpy/typing/tests/data/pass/scalars.py +248 -0
  820. numpy/typing/tests/data/pass/shape.py +19 -0
  821. numpy/typing/tests/data/pass/simple.py +168 -0
  822. numpy/typing/tests/data/pass/simple_py3.py +6 -0
  823. numpy/typing/tests/data/pass/ufunc_config.py +64 -0
  824. numpy/typing/tests/data/pass/ufunclike.py +47 -0
  825. numpy/typing/tests/data/pass/ufuncs.py +16 -0
  826. numpy/typing/tests/data/pass/warnings_and_errors.py +6 -0
  827. numpy/typing/tests/data/reveal/arithmetic.pyi +720 -0
  828. numpy/typing/tests/data/reveal/array_api_info.pyi +70 -0
  829. numpy/typing/tests/data/reveal/array_constructors.pyi +249 -0
  830. numpy/typing/tests/data/reveal/arraypad.pyi +22 -0
  831. numpy/typing/tests/data/reveal/arrayprint.pyi +25 -0
  832. numpy/typing/tests/data/reveal/arraysetops.pyi +74 -0
  833. numpy/typing/tests/data/reveal/arrayterator.pyi +27 -0
  834. numpy/typing/tests/data/reveal/bitwise_ops.pyi +167 -0
  835. numpy/typing/tests/data/reveal/char.pyi +224 -0
  836. numpy/typing/tests/data/reveal/chararray.pyi +137 -0
  837. numpy/typing/tests/data/reveal/comparisons.pyi +264 -0
  838. numpy/typing/tests/data/reveal/constants.pyi +14 -0
  839. numpy/typing/tests/data/reveal/ctypeslib.pyi +81 -0
  840. numpy/typing/tests/data/reveal/datasource.pyi +23 -0
  841. numpy/typing/tests/data/reveal/dtype.pyi +136 -0
  842. numpy/typing/tests/data/reveal/einsumfunc.pyi +39 -0
  843. numpy/typing/tests/data/reveal/emath.pyi +54 -0
  844. numpy/typing/tests/data/reveal/fft.pyi +37 -0
  845. numpy/typing/tests/data/reveal/flatiter.pyi +47 -0
  846. numpy/typing/tests/data/reveal/fromnumeric.pyi +347 -0
  847. numpy/typing/tests/data/reveal/getlimits.pyi +51 -0
  848. numpy/typing/tests/data/reveal/histograms.pyi +25 -0
  849. numpy/typing/tests/data/reveal/index_tricks.pyi +70 -0
  850. numpy/typing/tests/data/reveal/lib_function_base.pyi +213 -0
  851. numpy/typing/tests/data/reveal/lib_polynomial.pyi +144 -0
  852. numpy/typing/tests/data/reveal/lib_utils.pyi +17 -0
  853. numpy/typing/tests/data/reveal/lib_version.pyi +20 -0
  854. numpy/typing/tests/data/reveal/linalg.pyi +132 -0
  855. numpy/typing/tests/data/reveal/ma.pyi +369 -0
  856. numpy/typing/tests/data/reveal/matrix.pyi +73 -0
  857. numpy/typing/tests/data/reveal/memmap.pyi +19 -0
  858. numpy/typing/tests/data/reveal/mod.pyi +179 -0
  859. numpy/typing/tests/data/reveal/modules.pyi +51 -0
  860. numpy/typing/tests/data/reveal/multiarray.pyi +194 -0
  861. numpy/typing/tests/data/reveal/nbit_base_example.pyi +21 -0
  862. numpy/typing/tests/data/reveal/ndarray_assignability.pyi +77 -0
  863. numpy/typing/tests/data/reveal/ndarray_conversion.pyi +85 -0
  864. numpy/typing/tests/data/reveal/ndarray_misc.pyi +247 -0
  865. numpy/typing/tests/data/reveal/ndarray_shape_manipulation.pyi +39 -0
  866. numpy/typing/tests/data/reveal/nditer.pyi +49 -0
  867. numpy/typing/tests/data/reveal/nested_sequence.pyi +25 -0
  868. numpy/typing/tests/data/reveal/npyio.pyi +83 -0
  869. numpy/typing/tests/data/reveal/numeric.pyi +134 -0
  870. numpy/typing/tests/data/reveal/numerictypes.pyi +16 -0
  871. numpy/typing/tests/data/reveal/polynomial_polybase.pyi +220 -0
  872. numpy/typing/tests/data/reveal/polynomial_polyutils.pyi +219 -0
  873. numpy/typing/tests/data/reveal/polynomial_series.pyi +138 -0
  874. numpy/typing/tests/data/reveal/random.pyi +1546 -0
  875. numpy/typing/tests/data/reveal/rec.pyi +171 -0
  876. numpy/typing/tests/data/reveal/scalars.pyi +191 -0
  877. numpy/typing/tests/data/reveal/shape.pyi +13 -0
  878. numpy/typing/tests/data/reveal/shape_base.pyi +52 -0
  879. numpy/typing/tests/data/reveal/stride_tricks.pyi +27 -0
  880. numpy/typing/tests/data/reveal/strings.pyi +196 -0
  881. numpy/typing/tests/data/reveal/testing.pyi +198 -0
  882. numpy/typing/tests/data/reveal/twodim_base.pyi +145 -0
  883. numpy/typing/tests/data/reveal/type_check.pyi +67 -0
  884. numpy/typing/tests/data/reveal/ufunc_config.pyi +30 -0
  885. numpy/typing/tests/data/reveal/ufunclike.pyi +31 -0
  886. numpy/typing/tests/data/reveal/ufuncs.pyi +123 -0
  887. numpy/typing/tests/data/reveal/warnings_and_errors.pyi +11 -0
  888. numpy/typing/tests/test_isfile.py +32 -0
  889. numpy/typing/tests/test_runtime.py +102 -0
  890. numpy/typing/tests/test_typing.py +205 -0
  891. numpy/version.py +11 -0
  892. numpy/version.pyi +18 -0
  893. numpy-2.3.5.dist-info/LICENSE.txt +971 -0
  894. numpy-2.3.5.dist-info/METADATA +1093 -0
  895. numpy-2.3.5.dist-info/RECORD +897 -0
  896. numpy-2.3.5.dist-info/WHEEL +6 -0
  897. numpy-2.3.5.dist-info/entry_points.txt +13 -0
@@ -0,0 +1,1427 @@
1
+ """
2
+ This module contains a set of functions for vectorized string
3
+ operations and methods.
4
+
5
+ .. note::
6
+ The `chararray` class exists for backwards compatibility with
7
+ Numarray, it is not recommended for new development. Starting from numpy
8
+ 1.4, if one needs arrays of strings, it is recommended to use arrays of
9
+ `dtype` `object_`, `bytes_` or `str_`, and use the free functions
10
+ in the `numpy.char` module for fast vectorized string operations.
11
+
12
+ Some methods will only be available if the corresponding string method is
13
+ available in your version of Python.
14
+
15
+ The preferred alias for `defchararray` is `numpy.char`.
16
+
17
+ """
18
+ import functools
19
+
20
+ import numpy as np
21
+ from numpy._core import overrides
22
+ from numpy._core.multiarray import compare_chararrays
23
+ from numpy._core.strings import (
24
+ _join as join,
25
+ )
26
+ from numpy._core.strings import (
27
+ _rsplit as rsplit,
28
+ )
29
+ from numpy._core.strings import (
30
+ _split as split,
31
+ )
32
+ from numpy._core.strings import (
33
+ _splitlines as splitlines,
34
+ )
35
+ from numpy._utils import set_module
36
+ from numpy.strings import *
37
+ from numpy.strings import (
38
+ multiply as strings_multiply,
39
+ )
40
+ from numpy.strings import (
41
+ partition as strings_partition,
42
+ )
43
+ from numpy.strings import (
44
+ rpartition as strings_rpartition,
45
+ )
46
+
47
+ from .numeric import array as narray
48
+ from .numeric import asarray as asnarray
49
+ from .numeric import ndarray
50
+ from .numerictypes import bytes_, character, str_
51
+
52
+ __all__ = [
53
+ 'equal', 'not_equal', 'greater_equal', 'less_equal',
54
+ 'greater', 'less', 'str_len', 'add', 'multiply', 'mod', 'capitalize',
55
+ 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
56
+ 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace',
57
+ 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition',
58
+ 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
59
+ 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase',
60
+ 'title', 'translate', 'upper', 'zfill', 'isnumeric', 'isdecimal',
61
+ 'array', 'asarray', 'compare_chararrays', 'chararray'
62
+ ]
63
+
64
+
65
+ array_function_dispatch = functools.partial(
66
+ overrides.array_function_dispatch, module='numpy.char')
67
+
68
+
69
+ def _binary_op_dispatcher(x1, x2):
70
+ return (x1, x2)
71
+
72
+
73
+ @array_function_dispatch(_binary_op_dispatcher)
74
+ def equal(x1, x2):
75
+ """
76
+ Return (x1 == x2) element-wise.
77
+
78
+ Unlike `numpy.equal`, this comparison is performed by first
79
+ stripping whitespace characters from the end of the string. This
80
+ behavior is provided for backward-compatibility with numarray.
81
+
82
+ Parameters
83
+ ----------
84
+ x1, x2 : array_like of str or unicode
85
+ Input arrays of the same shape.
86
+
87
+ Returns
88
+ -------
89
+ out : ndarray
90
+ Output array of bools.
91
+
92
+ Examples
93
+ --------
94
+ >>> import numpy as np
95
+ >>> y = "aa "
96
+ >>> x = "aa"
97
+ >>> np.char.equal(x, y)
98
+ array(True)
99
+
100
+ See Also
101
+ --------
102
+ not_equal, greater_equal, less_equal, greater, less
103
+ """
104
+ return compare_chararrays(x1, x2, '==', True)
105
+
106
+
107
+ @array_function_dispatch(_binary_op_dispatcher)
108
+ def not_equal(x1, x2):
109
+ """
110
+ Return (x1 != x2) element-wise.
111
+
112
+ Unlike `numpy.not_equal`, this comparison is performed by first
113
+ stripping whitespace characters from the end of the string. This
114
+ behavior is provided for backward-compatibility with numarray.
115
+
116
+ Parameters
117
+ ----------
118
+ x1, x2 : array_like of str or unicode
119
+ Input arrays of the same shape.
120
+
121
+ Returns
122
+ -------
123
+ out : ndarray
124
+ Output array of bools.
125
+
126
+ See Also
127
+ --------
128
+ equal, greater_equal, less_equal, greater, less
129
+
130
+ Examples
131
+ --------
132
+ >>> import numpy as np
133
+ >>> x1 = np.array(['a', 'b', 'c'])
134
+ >>> np.char.not_equal(x1, 'b')
135
+ array([ True, False, True])
136
+
137
+ """
138
+ return compare_chararrays(x1, x2, '!=', True)
139
+
140
+
141
+ @array_function_dispatch(_binary_op_dispatcher)
142
+ def greater_equal(x1, x2):
143
+ """
144
+ Return (x1 >= x2) element-wise.
145
+
146
+ Unlike `numpy.greater_equal`, this comparison is performed by
147
+ first stripping whitespace characters from the end of the string.
148
+ This behavior is provided for backward-compatibility with
149
+ numarray.
150
+
151
+ Parameters
152
+ ----------
153
+ x1, x2 : array_like of str or unicode
154
+ Input arrays of the same shape.
155
+
156
+ Returns
157
+ -------
158
+ out : ndarray
159
+ Output array of bools.
160
+
161
+ See Also
162
+ --------
163
+ equal, not_equal, less_equal, greater, less
164
+
165
+ Examples
166
+ --------
167
+ >>> import numpy as np
168
+ >>> x1 = np.array(['a', 'b', 'c'])
169
+ >>> np.char.greater_equal(x1, 'b')
170
+ array([False, True, True])
171
+
172
+ """
173
+ return compare_chararrays(x1, x2, '>=', True)
174
+
175
+
176
+ @array_function_dispatch(_binary_op_dispatcher)
177
+ def less_equal(x1, x2):
178
+ """
179
+ Return (x1 <= x2) element-wise.
180
+
181
+ Unlike `numpy.less_equal`, this comparison is performed by first
182
+ stripping whitespace characters from the end of the string. This
183
+ behavior is provided for backward-compatibility with numarray.
184
+
185
+ Parameters
186
+ ----------
187
+ x1, x2 : array_like of str or unicode
188
+ Input arrays of the same shape.
189
+
190
+ Returns
191
+ -------
192
+ out : ndarray
193
+ Output array of bools.
194
+
195
+ See Also
196
+ --------
197
+ equal, not_equal, greater_equal, greater, less
198
+
199
+ Examples
200
+ --------
201
+ >>> import numpy as np
202
+ >>> x1 = np.array(['a', 'b', 'c'])
203
+ >>> np.char.less_equal(x1, 'b')
204
+ array([ True, True, False])
205
+
206
+ """
207
+ return compare_chararrays(x1, x2, '<=', True)
208
+
209
+
210
+ @array_function_dispatch(_binary_op_dispatcher)
211
+ def greater(x1, x2):
212
+ """
213
+ Return (x1 > x2) element-wise.
214
+
215
+ Unlike `numpy.greater`, this comparison is performed by first
216
+ stripping whitespace characters from the end of the string. This
217
+ behavior is provided for backward-compatibility with numarray.
218
+
219
+ Parameters
220
+ ----------
221
+ x1, x2 : array_like of str or unicode
222
+ Input arrays of the same shape.
223
+
224
+ Returns
225
+ -------
226
+ out : ndarray
227
+ Output array of bools.
228
+
229
+ See Also
230
+ --------
231
+ equal, not_equal, greater_equal, less_equal, less
232
+
233
+ Examples
234
+ --------
235
+ >>> import numpy as np
236
+ >>> x1 = np.array(['a', 'b', 'c'])
237
+ >>> np.char.greater(x1, 'b')
238
+ array([False, False, True])
239
+
240
+ """
241
+ return compare_chararrays(x1, x2, '>', True)
242
+
243
+
244
+ @array_function_dispatch(_binary_op_dispatcher)
245
+ def less(x1, x2):
246
+ """
247
+ Return (x1 < x2) element-wise.
248
+
249
+ Unlike `numpy.greater`, this comparison is performed by first
250
+ stripping whitespace characters from the end of the string. This
251
+ behavior is provided for backward-compatibility with numarray.
252
+
253
+ Parameters
254
+ ----------
255
+ x1, x2 : array_like of str or unicode
256
+ Input arrays of the same shape.
257
+
258
+ Returns
259
+ -------
260
+ out : ndarray
261
+ Output array of bools.
262
+
263
+ See Also
264
+ --------
265
+ equal, not_equal, greater_equal, less_equal, greater
266
+
267
+ Examples
268
+ --------
269
+ >>> import numpy as np
270
+ >>> x1 = np.array(['a', 'b', 'c'])
271
+ >>> np.char.less(x1, 'b')
272
+ array([True, False, False])
273
+
274
+ """
275
+ return compare_chararrays(x1, x2, '<', True)
276
+
277
+
278
+ @set_module("numpy.char")
279
+ def multiply(a, i):
280
+ """
281
+ Return (a * i), that is string multiple concatenation,
282
+ element-wise.
283
+
284
+ Values in ``i`` of less than 0 are treated as 0 (which yields an
285
+ empty string).
286
+
287
+ Parameters
288
+ ----------
289
+ a : array_like, with `np.bytes_` or `np.str_` dtype
290
+
291
+ i : array_like, with any integer dtype
292
+
293
+ Returns
294
+ -------
295
+ out : ndarray
296
+ Output array of str or unicode, depending on input types
297
+
298
+ Notes
299
+ -----
300
+ This is a thin wrapper around np.strings.multiply that raises
301
+ `ValueError` when ``i`` is not an integer. It only
302
+ exists for backwards-compatibility.
303
+
304
+ Examples
305
+ --------
306
+ >>> import numpy as np
307
+ >>> a = np.array(["a", "b", "c"])
308
+ >>> np.strings.multiply(a, 3)
309
+ array(['aaa', 'bbb', 'ccc'], dtype='<U3')
310
+ >>> i = np.array([1, 2, 3])
311
+ >>> np.strings.multiply(a, i)
312
+ array(['a', 'bb', 'ccc'], dtype='<U3')
313
+ >>> np.strings.multiply(np.array(['a']), i)
314
+ array(['a', 'aa', 'aaa'], dtype='<U3')
315
+ >>> a = np.array(['a', 'b', 'c', 'd', 'e', 'f']).reshape((2, 3))
316
+ >>> np.strings.multiply(a, 3)
317
+ array([['aaa', 'bbb', 'ccc'],
318
+ ['ddd', 'eee', 'fff']], dtype='<U3')
319
+ >>> np.strings.multiply(a, i)
320
+ array([['a', 'bb', 'ccc'],
321
+ ['d', 'ee', 'fff']], dtype='<U3')
322
+
323
+ """
324
+ try:
325
+ return strings_multiply(a, i)
326
+ except TypeError:
327
+ raise ValueError("Can only multiply by integers")
328
+
329
+
330
+ @set_module("numpy.char")
331
+ def partition(a, sep):
332
+ """
333
+ Partition each element in `a` around `sep`.
334
+
335
+ Calls :meth:`str.partition` element-wise.
336
+
337
+ For each element in `a`, split the element as the first
338
+ occurrence of `sep`, and return 3 strings containing the part
339
+ before the separator, the separator itself, and the part after
340
+ the separator. If the separator is not found, return 3 strings
341
+ containing the string itself, followed by two empty strings.
342
+
343
+ Parameters
344
+ ----------
345
+ a : array-like, with ``StringDType``, ``bytes_``, or ``str_`` dtype
346
+ Input array
347
+ sep : {str, unicode}
348
+ Separator to split each string element in `a`.
349
+
350
+ Returns
351
+ -------
352
+ out : ndarray
353
+ Output array of ``StringDType``, ``bytes_`` or ``str_`` dtype,
354
+ depending on input types. The output array will have an extra
355
+ dimension with 3 elements per input element.
356
+
357
+ Examples
358
+ --------
359
+ >>> import numpy as np
360
+ >>> x = np.array(["Numpy is nice!"])
361
+ >>> np.char.partition(x, " ")
362
+ array([['Numpy', ' ', 'is nice!']], dtype='<U8')
363
+
364
+ See Also
365
+ --------
366
+ str.partition
367
+
368
+ """
369
+ return np.stack(strings_partition(a, sep), axis=-1)
370
+
371
+
372
+ @set_module("numpy.char")
373
+ def rpartition(a, sep):
374
+ """
375
+ Partition (split) each element around the right-most separator.
376
+
377
+ Calls :meth:`str.rpartition` element-wise.
378
+
379
+ For each element in `a`, split the element as the last
380
+ occurrence of `sep`, and return 3 strings containing the part
381
+ before the separator, the separator itself, and the part after
382
+ the separator. If the separator is not found, return 3 strings
383
+ containing the string itself, followed by two empty strings.
384
+
385
+ Parameters
386
+ ----------
387
+ a : array-like, with ``StringDType``, ``bytes_``, or ``str_`` dtype
388
+ Input array
389
+ sep : str or unicode
390
+ Right-most separator to split each element in array.
391
+
392
+ Returns
393
+ -------
394
+ out : ndarray
395
+ Output array of ``StringDType``, ``bytes_`` or ``str_`` dtype,
396
+ depending on input types. The output array will have an extra
397
+ dimension with 3 elements per input element.
398
+
399
+ See Also
400
+ --------
401
+ str.rpartition
402
+
403
+ Examples
404
+ --------
405
+ >>> import numpy as np
406
+ >>> a = np.array(['aAaAaA', ' aA ', 'abBABba'])
407
+ >>> np.char.rpartition(a, 'A')
408
+ array([['aAaAa', 'A', ''],
409
+ [' a', 'A', ' '],
410
+ ['abB', 'A', 'Bba']], dtype='<U5')
411
+
412
+ """
413
+ return np.stack(strings_rpartition(a, sep), axis=-1)
414
+
415
+
416
+ @set_module("numpy.char")
417
+ class chararray(ndarray):
418
+ """
419
+ chararray(shape, itemsize=1, unicode=False, buffer=None, offset=0,
420
+ strides=None, order=None)
421
+
422
+ Provides a convenient view on arrays of string and unicode values.
423
+
424
+ .. note::
425
+ The `chararray` class exists for backwards compatibility with
426
+ Numarray, it is not recommended for new development. Starting from numpy
427
+ 1.4, if one needs arrays of strings, it is recommended to use arrays of
428
+ `dtype` `~numpy.object_`, `~numpy.bytes_` or `~numpy.str_`, and use
429
+ the free functions in the `numpy.char` module for fast vectorized
430
+ string operations.
431
+
432
+ Versus a NumPy array of dtype `~numpy.bytes_` or `~numpy.str_`, this
433
+ class adds the following functionality:
434
+
435
+ 1) values automatically have whitespace removed from the end
436
+ when indexed
437
+
438
+ 2) comparison operators automatically remove whitespace from the
439
+ end when comparing values
440
+
441
+ 3) vectorized string operations are provided as methods
442
+ (e.g. `.endswith`) and infix operators (e.g. ``"+", "*", "%"``)
443
+
444
+ chararrays should be created using `numpy.char.array` or
445
+ `numpy.char.asarray`, rather than this constructor directly.
446
+
447
+ This constructor creates the array, using `buffer` (with `offset`
448
+ and `strides`) if it is not ``None``. If `buffer` is ``None``, then
449
+ constructs a new array with `strides` in "C order", unless both
450
+ ``len(shape) >= 2`` and ``order='F'``, in which case `strides`
451
+ is in "Fortran order".
452
+
453
+ Methods
454
+ -------
455
+ astype
456
+ argsort
457
+ copy
458
+ count
459
+ decode
460
+ dump
461
+ dumps
462
+ encode
463
+ endswith
464
+ expandtabs
465
+ fill
466
+ find
467
+ flatten
468
+ getfield
469
+ index
470
+ isalnum
471
+ isalpha
472
+ isdecimal
473
+ isdigit
474
+ islower
475
+ isnumeric
476
+ isspace
477
+ istitle
478
+ isupper
479
+ item
480
+ join
481
+ ljust
482
+ lower
483
+ lstrip
484
+ nonzero
485
+ put
486
+ ravel
487
+ repeat
488
+ replace
489
+ reshape
490
+ resize
491
+ rfind
492
+ rindex
493
+ rjust
494
+ rsplit
495
+ rstrip
496
+ searchsorted
497
+ setfield
498
+ setflags
499
+ sort
500
+ split
501
+ splitlines
502
+ squeeze
503
+ startswith
504
+ strip
505
+ swapaxes
506
+ swapcase
507
+ take
508
+ title
509
+ tofile
510
+ tolist
511
+ tostring
512
+ translate
513
+ transpose
514
+ upper
515
+ view
516
+ zfill
517
+
518
+ Parameters
519
+ ----------
520
+ shape : tuple
521
+ Shape of the array.
522
+ itemsize : int, optional
523
+ Length of each array element, in number of characters. Default is 1.
524
+ unicode : bool, optional
525
+ Are the array elements of type unicode (True) or string (False).
526
+ Default is False.
527
+ buffer : object exposing the buffer interface or str, optional
528
+ Memory address of the start of the array data. Default is None,
529
+ in which case a new array is created.
530
+ offset : int, optional
531
+ Fixed stride displacement from the beginning of an axis?
532
+ Default is 0. Needs to be >=0.
533
+ strides : array_like of ints, optional
534
+ Strides for the array (see `~numpy.ndarray.strides` for
535
+ full description). Default is None.
536
+ order : {'C', 'F'}, optional
537
+ The order in which the array data is stored in memory: 'C' ->
538
+ "row major" order (the default), 'F' -> "column major"
539
+ (Fortran) order.
540
+
541
+ Examples
542
+ --------
543
+ >>> import numpy as np
544
+ >>> charar = np.char.chararray((3, 3))
545
+ >>> charar[:] = 'a'
546
+ >>> charar
547
+ chararray([[b'a', b'a', b'a'],
548
+ [b'a', b'a', b'a'],
549
+ [b'a', b'a', b'a']], dtype='|S1')
550
+
551
+ >>> charar = np.char.chararray(charar.shape, itemsize=5)
552
+ >>> charar[:] = 'abc'
553
+ >>> charar
554
+ chararray([[b'abc', b'abc', b'abc'],
555
+ [b'abc', b'abc', b'abc'],
556
+ [b'abc', b'abc', b'abc']], dtype='|S5')
557
+
558
+ """
559
+ def __new__(subtype, shape, itemsize=1, unicode=False, buffer=None,
560
+ offset=0, strides=None, order='C'):
561
+ if unicode:
562
+ dtype = str_
563
+ else:
564
+ dtype = bytes_
565
+
566
+ # force itemsize to be a Python int, since using NumPy integer
567
+ # types results in itemsize.itemsize being used as the size of
568
+ # strings in the new array.
569
+ itemsize = int(itemsize)
570
+
571
+ if isinstance(buffer, str):
572
+ # unicode objects do not have the buffer interface
573
+ filler = buffer
574
+ buffer = None
575
+ else:
576
+ filler = None
577
+
578
+ if buffer is None:
579
+ self = ndarray.__new__(subtype, shape, (dtype, itemsize),
580
+ order=order)
581
+ else:
582
+ self = ndarray.__new__(subtype, shape, (dtype, itemsize),
583
+ buffer=buffer,
584
+ offset=offset, strides=strides,
585
+ order=order)
586
+ if filler is not None:
587
+ self[...] = filler
588
+
589
+ return self
590
+
591
+ def __array_wrap__(self, arr, context=None, return_scalar=False):
592
+ # When calling a ufunc (and some other functions), we return a
593
+ # chararray if the ufunc output is a string-like array,
594
+ # or an ndarray otherwise
595
+ if arr.dtype.char in "SUbc":
596
+ return arr.view(type(self))
597
+ return arr
598
+
599
+ def __array_finalize__(self, obj):
600
+ # The b is a special case because it is used for reconstructing.
601
+ if self.dtype.char not in 'VSUbc':
602
+ raise ValueError("Can only create a chararray from string data.")
603
+
604
+ def __getitem__(self, obj):
605
+ val = ndarray.__getitem__(self, obj)
606
+ if isinstance(val, character):
607
+ return val.rstrip()
608
+ return val
609
+
610
+ # IMPLEMENTATION NOTE: Most of the methods of this class are
611
+ # direct delegations to the free functions in this module.
612
+ # However, those that return an array of strings should instead
613
+ # return a chararray, so some extra wrapping is required.
614
+
615
+ def __eq__(self, other):
616
+ """
617
+ Return (self == other) element-wise.
618
+
619
+ See Also
620
+ --------
621
+ equal
622
+ """
623
+ return equal(self, other)
624
+
625
+ def __ne__(self, other):
626
+ """
627
+ Return (self != other) element-wise.
628
+
629
+ See Also
630
+ --------
631
+ not_equal
632
+ """
633
+ return not_equal(self, other)
634
+
635
+ def __ge__(self, other):
636
+ """
637
+ Return (self >= other) element-wise.
638
+
639
+ See Also
640
+ --------
641
+ greater_equal
642
+ """
643
+ return greater_equal(self, other)
644
+
645
+ def __le__(self, other):
646
+ """
647
+ Return (self <= other) element-wise.
648
+
649
+ See Also
650
+ --------
651
+ less_equal
652
+ """
653
+ return less_equal(self, other)
654
+
655
+ def __gt__(self, other):
656
+ """
657
+ Return (self > other) element-wise.
658
+
659
+ See Also
660
+ --------
661
+ greater
662
+ """
663
+ return greater(self, other)
664
+
665
+ def __lt__(self, other):
666
+ """
667
+ Return (self < other) element-wise.
668
+
669
+ See Also
670
+ --------
671
+ less
672
+ """
673
+ return less(self, other)
674
+
675
+ def __add__(self, other):
676
+ """
677
+ Return (self + other), that is string concatenation,
678
+ element-wise for a pair of array_likes of str or unicode.
679
+
680
+ See Also
681
+ --------
682
+ add
683
+ """
684
+ return add(self, other)
685
+
686
+ def __radd__(self, other):
687
+ """
688
+ Return (other + self), that is string concatenation,
689
+ element-wise for a pair of array_likes of `bytes_` or `str_`.
690
+
691
+ See Also
692
+ --------
693
+ add
694
+ """
695
+ return add(other, self)
696
+
697
+ def __mul__(self, i):
698
+ """
699
+ Return (self * i), that is string multiple concatenation,
700
+ element-wise.
701
+
702
+ See Also
703
+ --------
704
+ multiply
705
+ """
706
+ return asarray(multiply(self, i))
707
+
708
+ def __rmul__(self, i):
709
+ """
710
+ Return (self * i), that is string multiple concatenation,
711
+ element-wise.
712
+
713
+ See Also
714
+ --------
715
+ multiply
716
+ """
717
+ return asarray(multiply(self, i))
718
+
719
+ def __mod__(self, i):
720
+ """
721
+ Return (self % i), that is pre-Python 2.6 string formatting
722
+ (interpolation), element-wise for a pair of array_likes of `bytes_`
723
+ or `str_`.
724
+
725
+ See Also
726
+ --------
727
+ mod
728
+ """
729
+ return asarray(mod(self, i))
730
+
731
+ def __rmod__(self, other):
732
+ return NotImplemented
733
+
734
+ def argsort(self, axis=-1, kind=None, order=None):
735
+ """
736
+ Return the indices that sort the array lexicographically.
737
+
738
+ For full documentation see `numpy.argsort`, for which this method is
739
+ in fact merely a "thin wrapper."
740
+
741
+ Examples
742
+ --------
743
+ >>> c = np.array(['a1b c', '1b ca', 'b ca1', 'Ca1b'], 'S5')
744
+ >>> c = c.view(np.char.chararray); c
745
+ chararray(['a1b c', '1b ca', 'b ca1', 'Ca1b'],
746
+ dtype='|S5')
747
+ >>> c[c.argsort()]
748
+ chararray(['1b ca', 'Ca1b', 'a1b c', 'b ca1'],
749
+ dtype='|S5')
750
+
751
+ """
752
+ return self.__array__().argsort(axis, kind, order)
753
+ argsort.__doc__ = ndarray.argsort.__doc__
754
+
755
+ def capitalize(self):
756
+ """
757
+ Return a copy of `self` with only the first character of each element
758
+ capitalized.
759
+
760
+ See Also
761
+ --------
762
+ char.capitalize
763
+
764
+ """
765
+ return asarray(capitalize(self))
766
+
767
+ def center(self, width, fillchar=' '):
768
+ """
769
+ Return a copy of `self` with its elements centered in a
770
+ string of length `width`.
771
+
772
+ See Also
773
+ --------
774
+ center
775
+ """
776
+ return asarray(center(self, width, fillchar))
777
+
778
+ def count(self, sub, start=0, end=None):
779
+ """
780
+ Returns an array with the number of non-overlapping occurrences of
781
+ substring `sub` in the range [`start`, `end`].
782
+
783
+ See Also
784
+ --------
785
+ char.count
786
+
787
+ """
788
+ return count(self, sub, start, end)
789
+
790
+ def decode(self, encoding=None, errors=None):
791
+ """
792
+ Calls ``bytes.decode`` element-wise.
793
+
794
+ See Also
795
+ --------
796
+ char.decode
797
+
798
+ """
799
+ return decode(self, encoding, errors)
800
+
801
+ def encode(self, encoding=None, errors=None):
802
+ """
803
+ Calls :meth:`str.encode` element-wise.
804
+
805
+ See Also
806
+ --------
807
+ char.encode
808
+
809
+ """
810
+ return encode(self, encoding, errors)
811
+
812
+ def endswith(self, suffix, start=0, end=None):
813
+ """
814
+ Returns a boolean array which is `True` where the string element
815
+ in `self` ends with `suffix`, otherwise `False`.
816
+
817
+ See Also
818
+ --------
819
+ char.endswith
820
+
821
+ """
822
+ return endswith(self, suffix, start, end)
823
+
824
+ def expandtabs(self, tabsize=8):
825
+ """
826
+ Return a copy of each string element where all tab characters are
827
+ replaced by one or more spaces.
828
+
829
+ See Also
830
+ --------
831
+ char.expandtabs
832
+
833
+ """
834
+ return asarray(expandtabs(self, tabsize))
835
+
836
+ def find(self, sub, start=0, end=None):
837
+ """
838
+ For each element, return the lowest index in the string where
839
+ substring `sub` is found.
840
+
841
+ See Also
842
+ --------
843
+ char.find
844
+
845
+ """
846
+ return find(self, sub, start, end)
847
+
848
+ def index(self, sub, start=0, end=None):
849
+ """
850
+ Like `find`, but raises :exc:`ValueError` when the substring is not
851
+ found.
852
+
853
+ See Also
854
+ --------
855
+ char.index
856
+
857
+ """
858
+ return index(self, sub, start, end)
859
+
860
+ def isalnum(self):
861
+ """
862
+ Returns true for each element if all characters in the string
863
+ are alphanumeric and there is at least one character, false
864
+ otherwise.
865
+
866
+ See Also
867
+ --------
868
+ char.isalnum
869
+
870
+ """
871
+ return isalnum(self)
872
+
873
+ def isalpha(self):
874
+ """
875
+ Returns true for each element if all characters in the string
876
+ are alphabetic and there is at least one character, false
877
+ otherwise.
878
+
879
+ See Also
880
+ --------
881
+ char.isalpha
882
+
883
+ """
884
+ return isalpha(self)
885
+
886
+ def isdigit(self):
887
+ """
888
+ Returns true for each element if all characters in the string are
889
+ digits and there is at least one character, false otherwise.
890
+
891
+ See Also
892
+ --------
893
+ char.isdigit
894
+
895
+ """
896
+ return isdigit(self)
897
+
898
+ def islower(self):
899
+ """
900
+ Returns true for each element if all cased characters in the
901
+ string are lowercase and there is at least one cased character,
902
+ false otherwise.
903
+
904
+ See Also
905
+ --------
906
+ char.islower
907
+
908
+ """
909
+ return islower(self)
910
+
911
+ def isspace(self):
912
+ """
913
+ Returns true for each element if there are only whitespace
914
+ characters in the string and there is at least one character,
915
+ false otherwise.
916
+
917
+ See Also
918
+ --------
919
+ char.isspace
920
+
921
+ """
922
+ return isspace(self)
923
+
924
+ def istitle(self):
925
+ """
926
+ Returns true for each element if the element is a titlecased
927
+ string and there is at least one character, false otherwise.
928
+
929
+ See Also
930
+ --------
931
+ char.istitle
932
+
933
+ """
934
+ return istitle(self)
935
+
936
+ def isupper(self):
937
+ """
938
+ Returns true for each element if all cased characters in the
939
+ string are uppercase and there is at least one character, false
940
+ otherwise.
941
+
942
+ See Also
943
+ --------
944
+ char.isupper
945
+
946
+ """
947
+ return isupper(self)
948
+
949
+ def join(self, seq):
950
+ """
951
+ Return a string which is the concatenation of the strings in the
952
+ sequence `seq`.
953
+
954
+ See Also
955
+ --------
956
+ char.join
957
+
958
+ """
959
+ return join(self, seq)
960
+
961
+ def ljust(self, width, fillchar=' '):
962
+ """
963
+ Return an array with the elements of `self` left-justified in a
964
+ string of length `width`.
965
+
966
+ See Also
967
+ --------
968
+ char.ljust
969
+
970
+ """
971
+ return asarray(ljust(self, width, fillchar))
972
+
973
+ def lower(self):
974
+ """
975
+ Return an array with the elements of `self` converted to
976
+ lowercase.
977
+
978
+ See Also
979
+ --------
980
+ char.lower
981
+
982
+ """
983
+ return asarray(lower(self))
984
+
985
+ def lstrip(self, chars=None):
986
+ """
987
+ For each element in `self`, return a copy with the leading characters
988
+ removed.
989
+
990
+ See Also
991
+ --------
992
+ char.lstrip
993
+
994
+ """
995
+ return lstrip(self, chars)
996
+
997
+ def partition(self, sep):
998
+ """
999
+ Partition each element in `self` around `sep`.
1000
+
1001
+ See Also
1002
+ --------
1003
+ partition
1004
+ """
1005
+ return asarray(partition(self, sep))
1006
+
1007
+ def replace(self, old, new, count=None):
1008
+ """
1009
+ For each element in `self`, return a copy of the string with all
1010
+ occurrences of substring `old` replaced by `new`.
1011
+
1012
+ See Also
1013
+ --------
1014
+ char.replace
1015
+
1016
+ """
1017
+ return replace(self, old, new, count if count is not None else -1)
1018
+
1019
+ def rfind(self, sub, start=0, end=None):
1020
+ """
1021
+ For each element in `self`, return the highest index in the string
1022
+ where substring `sub` is found, such that `sub` is contained
1023
+ within [`start`, `end`].
1024
+
1025
+ See Also
1026
+ --------
1027
+ char.rfind
1028
+
1029
+ """
1030
+ return rfind(self, sub, start, end)
1031
+
1032
+ def rindex(self, sub, start=0, end=None):
1033
+ """
1034
+ Like `rfind`, but raises :exc:`ValueError` when the substring `sub` is
1035
+ not found.
1036
+
1037
+ See Also
1038
+ --------
1039
+ char.rindex
1040
+
1041
+ """
1042
+ return rindex(self, sub, start, end)
1043
+
1044
+ def rjust(self, width, fillchar=' '):
1045
+ """
1046
+ Return an array with the elements of `self`
1047
+ right-justified in a string of length `width`.
1048
+
1049
+ See Also
1050
+ --------
1051
+ char.rjust
1052
+
1053
+ """
1054
+ return asarray(rjust(self, width, fillchar))
1055
+
1056
+ def rpartition(self, sep):
1057
+ """
1058
+ Partition each element in `self` around `sep`.
1059
+
1060
+ See Also
1061
+ --------
1062
+ rpartition
1063
+ """
1064
+ return asarray(rpartition(self, sep))
1065
+
1066
+ def rsplit(self, sep=None, maxsplit=None):
1067
+ """
1068
+ For each element in `self`, return a list of the words in
1069
+ the string, using `sep` as the delimiter string.
1070
+
1071
+ See Also
1072
+ --------
1073
+ char.rsplit
1074
+
1075
+ """
1076
+ return rsplit(self, sep, maxsplit)
1077
+
1078
+ def rstrip(self, chars=None):
1079
+ """
1080
+ For each element in `self`, return a copy with the trailing
1081
+ characters removed.
1082
+
1083
+ See Also
1084
+ --------
1085
+ char.rstrip
1086
+
1087
+ """
1088
+ return rstrip(self, chars)
1089
+
1090
+ def split(self, sep=None, maxsplit=None):
1091
+ """
1092
+ For each element in `self`, return a list of the words in the
1093
+ string, using `sep` as the delimiter string.
1094
+
1095
+ See Also
1096
+ --------
1097
+ char.split
1098
+
1099
+ """
1100
+ return split(self, sep, maxsplit)
1101
+
1102
+ def splitlines(self, keepends=None):
1103
+ """
1104
+ For each element in `self`, return a list of the lines in the
1105
+ element, breaking at line boundaries.
1106
+
1107
+ See Also
1108
+ --------
1109
+ char.splitlines
1110
+
1111
+ """
1112
+ return splitlines(self, keepends)
1113
+
1114
+ def startswith(self, prefix, start=0, end=None):
1115
+ """
1116
+ Returns a boolean array which is `True` where the string element
1117
+ in `self` starts with `prefix`, otherwise `False`.
1118
+
1119
+ See Also
1120
+ --------
1121
+ char.startswith
1122
+
1123
+ """
1124
+ return startswith(self, prefix, start, end)
1125
+
1126
+ def strip(self, chars=None):
1127
+ """
1128
+ For each element in `self`, return a copy with the leading and
1129
+ trailing characters removed.
1130
+
1131
+ See Also
1132
+ --------
1133
+ char.strip
1134
+
1135
+ """
1136
+ return strip(self, chars)
1137
+
1138
+ def swapcase(self):
1139
+ """
1140
+ For each element in `self`, return a copy of the string with
1141
+ uppercase characters converted to lowercase and vice versa.
1142
+
1143
+ See Also
1144
+ --------
1145
+ char.swapcase
1146
+
1147
+ """
1148
+ return asarray(swapcase(self))
1149
+
1150
+ def title(self):
1151
+ """
1152
+ For each element in `self`, return a titlecased version of the
1153
+ string: words start with uppercase characters, all remaining cased
1154
+ characters are lowercase.
1155
+
1156
+ See Also
1157
+ --------
1158
+ char.title
1159
+
1160
+ """
1161
+ return asarray(title(self))
1162
+
1163
+ def translate(self, table, deletechars=None):
1164
+ """
1165
+ For each element in `self`, return a copy of the string where
1166
+ all characters occurring in the optional argument
1167
+ `deletechars` are removed, and the remaining characters have
1168
+ been mapped through the given translation table.
1169
+
1170
+ See Also
1171
+ --------
1172
+ char.translate
1173
+
1174
+ """
1175
+ return asarray(translate(self, table, deletechars))
1176
+
1177
+ def upper(self):
1178
+ """
1179
+ Return an array with the elements of `self` converted to
1180
+ uppercase.
1181
+
1182
+ See Also
1183
+ --------
1184
+ char.upper
1185
+
1186
+ """
1187
+ return asarray(upper(self))
1188
+
1189
+ def zfill(self, width):
1190
+ """
1191
+ Return the numeric string left-filled with zeros in a string of
1192
+ length `width`.
1193
+
1194
+ See Also
1195
+ --------
1196
+ char.zfill
1197
+
1198
+ """
1199
+ return asarray(zfill(self, width))
1200
+
1201
+ def isnumeric(self):
1202
+ """
1203
+ For each element in `self`, return True if there are only
1204
+ numeric characters in the element.
1205
+
1206
+ See Also
1207
+ --------
1208
+ char.isnumeric
1209
+
1210
+ """
1211
+ return isnumeric(self)
1212
+
1213
+ def isdecimal(self):
1214
+ """
1215
+ For each element in `self`, return True if there are only
1216
+ decimal characters in the element.
1217
+
1218
+ See Also
1219
+ --------
1220
+ char.isdecimal
1221
+
1222
+ """
1223
+ return isdecimal(self)
1224
+
1225
+
1226
+ @set_module("numpy.char")
1227
+ def array(obj, itemsize=None, copy=True, unicode=None, order=None):
1228
+ """
1229
+ Create a `~numpy.char.chararray`.
1230
+
1231
+ .. note::
1232
+ This class is provided for numarray backward-compatibility.
1233
+ New code (not concerned with numarray compatibility) should use
1234
+ arrays of type `bytes_` or `str_` and use the free functions
1235
+ in :mod:`numpy.char` for fast vectorized string operations instead.
1236
+
1237
+ Versus a NumPy array of dtype `bytes_` or `str_`, this
1238
+ class adds the following functionality:
1239
+
1240
+ 1) values automatically have whitespace removed from the end
1241
+ when indexed
1242
+
1243
+ 2) comparison operators automatically remove whitespace from the
1244
+ end when comparing values
1245
+
1246
+ 3) vectorized string operations are provided as methods
1247
+ (e.g. `chararray.endswith <numpy.char.chararray.endswith>`)
1248
+ and infix operators (e.g. ``+, *, %``)
1249
+
1250
+ Parameters
1251
+ ----------
1252
+ obj : array of str or unicode-like
1253
+
1254
+ itemsize : int, optional
1255
+ `itemsize` is the number of characters per scalar in the
1256
+ resulting array. If `itemsize` is None, and `obj` is an
1257
+ object array or a Python list, the `itemsize` will be
1258
+ automatically determined. If `itemsize` is provided and `obj`
1259
+ is of type str or unicode, then the `obj` string will be
1260
+ chunked into `itemsize` pieces.
1261
+
1262
+ copy : bool, optional
1263
+ If true (default), then the object is copied. Otherwise, a copy
1264
+ will only be made if ``__array__`` returns a copy, if obj is a
1265
+ nested sequence, or if a copy is needed to satisfy any of the other
1266
+ requirements (`itemsize`, unicode, `order`, etc.).
1267
+
1268
+ unicode : bool, optional
1269
+ When true, the resulting `~numpy.char.chararray` can contain Unicode
1270
+ characters, when false only 8-bit characters. If unicode is
1271
+ None and `obj` is one of the following:
1272
+
1273
+ - a `~numpy.char.chararray`,
1274
+ - an ndarray of type :class:`str_` or :class:`bytes_`
1275
+ - a Python :class:`str` or :class:`bytes` object,
1276
+
1277
+ then the unicode setting of the output array will be
1278
+ automatically determined.
1279
+
1280
+ order : {'C', 'F', 'A'}, optional
1281
+ Specify the order of the array. If order is 'C' (default), then the
1282
+ array will be in C-contiguous order (last-index varies the
1283
+ fastest). If order is 'F', then the returned array
1284
+ will be in Fortran-contiguous order (first-index varies the
1285
+ fastest). If order is 'A', then the returned array may
1286
+ be in any order (either C-, Fortran-contiguous, or even
1287
+ discontiguous).
1288
+
1289
+ Examples
1290
+ --------
1291
+
1292
+ >>> import numpy as np
1293
+ >>> char_array = np.char.array(['hello', 'world', 'numpy','array'])
1294
+ >>> char_array
1295
+ chararray(['hello', 'world', 'numpy', 'array'], dtype='<U5')
1296
+
1297
+ """
1298
+ if isinstance(obj, (bytes, str)):
1299
+ if unicode is None:
1300
+ if isinstance(obj, str):
1301
+ unicode = True
1302
+ else:
1303
+ unicode = False
1304
+
1305
+ if itemsize is None:
1306
+ itemsize = len(obj)
1307
+ shape = len(obj) // itemsize
1308
+
1309
+ return chararray(shape, itemsize=itemsize, unicode=unicode,
1310
+ buffer=obj, order=order)
1311
+
1312
+ if isinstance(obj, (list, tuple)):
1313
+ obj = asnarray(obj)
1314
+
1315
+ if isinstance(obj, ndarray) and issubclass(obj.dtype.type, character):
1316
+ # If we just have a vanilla chararray, create a chararray
1317
+ # view around it.
1318
+ if not isinstance(obj, chararray):
1319
+ obj = obj.view(chararray)
1320
+
1321
+ if itemsize is None:
1322
+ itemsize = obj.itemsize
1323
+ # itemsize is in 8-bit chars, so for Unicode, we need
1324
+ # to divide by the size of a single Unicode character,
1325
+ # which for NumPy is always 4
1326
+ if issubclass(obj.dtype.type, str_):
1327
+ itemsize //= 4
1328
+
1329
+ if unicode is None:
1330
+ if issubclass(obj.dtype.type, str_):
1331
+ unicode = True
1332
+ else:
1333
+ unicode = False
1334
+
1335
+ if unicode:
1336
+ dtype = str_
1337
+ else:
1338
+ dtype = bytes_
1339
+
1340
+ if order is not None:
1341
+ obj = asnarray(obj, order=order)
1342
+ if (copy or
1343
+ (itemsize != obj.itemsize) or
1344
+ (not unicode and isinstance(obj, str_)) or
1345
+ (unicode and isinstance(obj, bytes_))):
1346
+ obj = obj.astype((dtype, int(itemsize)))
1347
+ return obj
1348
+
1349
+ if isinstance(obj, ndarray) and issubclass(obj.dtype.type, object):
1350
+ if itemsize is None:
1351
+ # Since no itemsize was specified, convert the input array to
1352
+ # a list so the ndarray constructor will automatically
1353
+ # determine the itemsize for us.
1354
+ obj = obj.tolist()
1355
+ # Fall through to the default case
1356
+
1357
+ if unicode:
1358
+ dtype = str_
1359
+ else:
1360
+ dtype = bytes_
1361
+
1362
+ if itemsize is None:
1363
+ val = narray(obj, dtype=dtype, order=order, subok=True)
1364
+ else:
1365
+ val = narray(obj, dtype=(dtype, itemsize), order=order, subok=True)
1366
+ return val.view(chararray)
1367
+
1368
+
1369
+ @set_module("numpy.char")
1370
+ def asarray(obj, itemsize=None, unicode=None, order=None):
1371
+ """
1372
+ Convert the input to a `~numpy.char.chararray`, copying the data only if
1373
+ necessary.
1374
+
1375
+ Versus a NumPy array of dtype `bytes_` or `str_`, this
1376
+ class adds the following functionality:
1377
+
1378
+ 1) values automatically have whitespace removed from the end
1379
+ when indexed
1380
+
1381
+ 2) comparison operators automatically remove whitespace from the
1382
+ end when comparing values
1383
+
1384
+ 3) vectorized string operations are provided as methods
1385
+ (e.g. `chararray.endswith <numpy.char.chararray.endswith>`)
1386
+ and infix operators (e.g. ``+``, ``*``, ``%``)
1387
+
1388
+ Parameters
1389
+ ----------
1390
+ obj : array of str or unicode-like
1391
+
1392
+ itemsize : int, optional
1393
+ `itemsize` is the number of characters per scalar in the
1394
+ resulting array. If `itemsize` is None, and `obj` is an
1395
+ object array or a Python list, the `itemsize` will be
1396
+ automatically determined. If `itemsize` is provided and `obj`
1397
+ is of type str or unicode, then the `obj` string will be
1398
+ chunked into `itemsize` pieces.
1399
+
1400
+ unicode : bool, optional
1401
+ When true, the resulting `~numpy.char.chararray` can contain Unicode
1402
+ characters, when false only 8-bit characters. If unicode is
1403
+ None and `obj` is one of the following:
1404
+
1405
+ - a `~numpy.char.chararray`,
1406
+ - an ndarray of type `str_` or `unicode_`
1407
+ - a Python str or unicode object,
1408
+
1409
+ then the unicode setting of the output array will be
1410
+ automatically determined.
1411
+
1412
+ order : {'C', 'F'}, optional
1413
+ Specify the order of the array. If order is 'C' (default), then the
1414
+ array will be in C-contiguous order (last-index varies the
1415
+ fastest). If order is 'F', then the returned array
1416
+ will be in Fortran-contiguous order (first-index varies the
1417
+ fastest).
1418
+
1419
+ Examples
1420
+ --------
1421
+ >>> import numpy as np
1422
+ >>> np.char.asarray(['hello', 'world'])
1423
+ chararray(['hello', 'world'], dtype='<U5')
1424
+
1425
+ """
1426
+ return array(obj, itemsize, copy=False,
1427
+ unicode=unicode, order=order)