numpy 1.9.2__zip → 1.10.0__zip

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.
Files changed (1593) hide show
  1. numpy-1.10.0.post2/INSTALL.txt +200 -0
  2. numpy-1.10.0.post2/LICENSE.txt +30 -0
  3. numpy-1.10.0.post2/MANIFEST.in +31 -0
  4. numpy-1.10.0.post2/PKG-INFO +47 -0
  5. numpy-1.10.0.post2/cnew.txt +117 -0
  6. numpy-1.10.0.post2/cold.txt +44 -0
  7. numpy-1.10.0.post2/committers.txt +160 -0
  8. numpy-1.10.0.post2/cpre.txt +283 -0
  9. numpy-1.10.0.post2/crel.txt +161 -0
  10. numpy-1.10.0.post2/doc/release/1.10.0-notes.rst +439 -0
  11. numpy-1.10.0.post2/doc/scipy-sphinx-theme/.git +1 -0
  12. numpy-1.10.0.post2/doc/source/conf.py +331 -0
  13. numpy-1.10.0.post2/doc/source/dev/development_environment.rst +211 -0
  14. numpy-1.10.0.post2/doc/source/dev/gitwash/development_workflow.rst +534 -0
  15. numpy-1.10.0.post2/doc/source/dev/gitwash/git_links.inc +95 -0
  16. numpy-1.10.0.post2/doc/source/dev/gitwash/index.rst +14 -0
  17. numpy-1.10.0.post2/doc/source/dev/index.rst +11 -0
  18. numpy-1.10.0.post2/doc/source/reference/arrays.classes.rst +490 -0
  19. numpy-1.10.0.post2/doc/source/reference/arrays.dtypes.rst +536 -0
  20. numpy-1.10.0.post2/doc/source/reference/arrays.indexing.rst +549 -0
  21. numpy-1.10.0.post2/doc/source/reference/arrays.interface.rst +337 -0
  22. numpy-1.10.0.post2/doc/source/reference/arrays.ndarray.rst +622 -0
  23. numpy-1.10.0.post2/doc/source/reference/arrays.scalars.rst +291 -0
  24. numpy-1.10.0.post2/doc/source/reference/c-api.array.rst +3393 -0
  25. numpy-1.10.0.post2/doc/source/reference/c-api.config.rst +103 -0
  26. numpy-1.10.0.post2/doc/source/reference/c-api.coremath.rst +420 -0
  27. numpy-1.10.0.post2/doc/source/reference/c-api.dtype.rst +376 -0
  28. numpy-1.10.0.post2/doc/source/reference/c-api.generalized-ufuncs.rst +191 -0
  29. numpy-1.10.0.post2/doc/source/reference/c-api.iterator.rst +1300 -0
  30. numpy-1.10.0.post2/doc/source/reference/c-api.types-and-structures.rst +1240 -0
  31. numpy-1.10.0.post2/doc/source/reference/c-api.ufunc.rst +413 -0
  32. numpy-1.10.0.post2/doc/source/reference/index.rst +43 -0
  33. numpy-1.10.0.post2/doc/source/reference/internals.code-explanations.rst +615 -0
  34. numpy-1.10.0.post2/doc/source/reference/routines.array-manipulation.rst +115 -0
  35. numpy-1.10.0.post2/doc/source/reference/routines.io.rst +78 -0
  36. numpy-1.10.0.post2/doc/source/reference/routines.linalg.rst +91 -0
  37. numpy-1.10.0.post2/doc/source/reference/routines.ma.rst +407 -0
  38. numpy-1.10.0.post2/doc/source/reference/routines.sort.rst +41 -0
  39. numpy-1.10.0.post2/doc/source/reference/routines.statistics.rst +57 -0
  40. numpy-1.10.0.post2/doc/source/reference/swig.interface-file.rst +1066 -0
  41. numpy-1.10.0.post2/doc/source/reference/swig.testing.rst +167 -0
  42. numpy-1.10.0.post2/doc/source/reference/ufuncs.rst +666 -0
  43. numpy-1.10.0.post2/doc/source/release.rst +20 -0
  44. numpy-1.10.0.post2/doc/source/user/basics.io.genfromtxt.rst +531 -0
  45. numpy-1.10.0.post2/doc/source/user/basics.rec.rst +7 -0
  46. numpy-1.10.0.post2/doc/source/user/c-info.beyond-basics.rst +560 -0
  47. numpy-1.10.0.post2/doc/source/user/c-info.how-to-extend.rst +642 -0
  48. numpy-1.10.0.post2/doc/source/user/c-info.python-as-glue.rst +1177 -0
  49. numpy-1.10.0.post2/doc/source/user/c-info.ufunc-tutorial.rst +1211 -0
  50. numpy-1.10.0.post2/doc/source/user/install.rst +194 -0
  51. numpy-1.10.0.post2/doc/sphinxext/.git +1 -0
  52. numpy-1.10.0.post2/numpy/__init__.py +227 -0
  53. numpy-1.10.0.post2/numpy/_build_utils/README +8 -0
  54. numpy-1.10.0.post2/numpy/_build_utils/apple_accelerate.py +21 -0
  55. numpy-1.10.0.post2/numpy/_build_utils/common.py +138 -0
  56. numpy-1.10.0.post2/numpy/_build_utils/src/apple_sgemv_fix.c +227 -0
  57. numpy-1.10.0.post2/numpy/_build_utils/waf.py +531 -0
  58. numpy-1.10.0.post2/numpy/_import_tools.py +353 -0
  59. numpy-1.10.0.post2/numpy/add_newdocs.py +7611 -0
  60. numpy-1.10.0.post2/numpy/compat/_inspect.py +194 -0
  61. numpy-1.10.0.post2/numpy/compat/py3k.py +88 -0
  62. numpy-1.10.0.post2/numpy/compat/setup.py +12 -0
  63. numpy-1.10.0.post2/numpy/core/__init__.py +89 -0
  64. numpy-1.10.0.post2/numpy/core/_internal.py +761 -0
  65. numpy-1.10.0.post2/numpy/core/_methods.py +133 -0
  66. numpy-1.10.0.post2/numpy/core/arrayprint.py +760 -0
  67. numpy-1.10.0.post2/numpy/core/code_generators/cversions.txt +34 -0
  68. numpy-1.10.0.post2/numpy/core/code_generators/generate_ufunc_api.py +219 -0
  69. numpy-1.10.0.post2/numpy/core/code_generators/generate_umath.py +1017 -0
  70. numpy-1.10.0.post2/numpy/core/code_generators/numpy_api.py +415 -0
  71. numpy-1.10.0.post2/numpy/core/code_generators/ufunc_docstrings.py +3442 -0
  72. numpy-1.10.0.post2/numpy/core/defchararray.py +2689 -0
  73. numpy-1.10.0.post2/numpy/core/fromnumeric.py +3089 -0
  74. numpy-1.10.0.post2/numpy/core/function_base.py +203 -0
  75. numpy-1.10.0.post2/numpy/core/getlimits.py +308 -0
  76. numpy-1.10.0.post2/numpy/core/include/numpy/ndarrayobject.h +246 -0
  77. numpy-1.10.0.post2/numpy/core/include/numpy/ndarraytypes.h +1797 -0
  78. numpy-1.10.0.post2/numpy/core/include/numpy/npy_3kcompat.h +448 -0
  79. numpy-1.10.0.post2/numpy/core/include/numpy/npy_common.h +1051 -0
  80. numpy-1.10.0.post2/numpy/core/include/numpy/npy_cpu.h +92 -0
  81. numpy-1.10.0.post2/numpy/core/include/numpy/npy_endian.h +61 -0
  82. numpy-1.10.0.post2/numpy/core/include/numpy/npy_math.h +525 -0
  83. numpy-1.10.0.post2/numpy/core/include/numpy/numpyconfig.h +36 -0
  84. numpy-1.10.0.post2/numpy/core/machar.py +342 -0
  85. numpy-1.10.0.post2/numpy/core/memmap.py +311 -0
  86. numpy-1.10.0.post2/numpy/core/numeric.py +2893 -0
  87. numpy-1.10.0.post2/numpy/core/numerictypes.py +1036 -0
  88. numpy-1.10.0.post2/numpy/core/records.py +846 -0
  89. numpy-1.10.0.post2/numpy/core/setup.py +983 -0
  90. numpy-1.10.0.post2/numpy/core/setup_common.py +352 -0
  91. numpy-1.10.0.post2/numpy/core/shape_base.py +350 -0
  92. numpy-1.10.0.post2/numpy/core/src/multiarray/alloc.c +244 -0
  93. numpy-1.10.0.post2/numpy/core/src/multiarray/arrayobject.c +1858 -0
  94. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.c.src +4738 -0
  95. numpy-1.10.0.post2/numpy/core/src/multiarray/arraytypes.h +37 -0
  96. numpy-1.10.0.post2/numpy/core/src/multiarray/buffer.c +981 -0
  97. numpy-1.10.0.post2/numpy/core/src/multiarray/calculation.c +1224 -0
  98. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.c +812 -0
  99. numpy-1.10.0.post2/numpy/core/src/multiarray/cblasfuncs.h +10 -0
  100. numpy-1.10.0.post2/numpy/core/src/multiarray/common.c +911 -0
  101. numpy-1.10.0.post2/numpy/core/src/multiarray/common.h +250 -0
  102. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.c +1664 -0
  103. numpy-1.10.0.post2/numpy/core/src/multiarray/compiled_base.h +24 -0
  104. numpy-1.10.0.post2/numpy/core/src/multiarray/conversion_utils.c +1217 -0
  105. numpy-1.10.0.post2/numpy/core/src/multiarray/convert.c +590 -0
  106. numpy-1.10.0.post2/numpy/core/src/multiarray/convert_datatype.c +2155 -0
  107. numpy-1.10.0.post2/numpy/core/src/multiarray/ctors.c +3838 -0
  108. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime.c +3821 -0
  109. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busday.c +1322 -0
  110. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_busdaycal.c +552 -0
  111. numpy-1.10.0.post2/numpy/core/src/multiarray/datetime_strings.c +1772 -0
  112. numpy-1.10.0.post2/numpy/core/src/multiarray/descriptor.c +3719 -0
  113. numpy-1.10.0.post2/numpy/core/src/multiarray/dtype_transfer.c +4239 -0
  114. numpy-1.10.0.post2/numpy/core/src/multiarray/einsum.c.src +3005 -0
  115. numpy-1.10.0.post2/numpy/core/src/multiarray/getset.c +986 -0
  116. numpy-1.10.0.post2/numpy/core/src/multiarray/hashdescr.c +318 -0
  117. numpy-1.10.0.post2/numpy/core/src/multiarray/item_selection.c +2413 -0
  118. numpy-1.10.0.post2/numpy/core/src/multiarray/iterators.c +2192 -0
  119. numpy-1.10.0.post2/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +1769 -0
  120. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.c +3380 -0
  121. numpy-1.10.0.post2/numpy/core/src/multiarray/mapping.h +77 -0
  122. numpy-1.10.0.post2/numpy/core/src/multiarray/methods.c +2514 -0
  123. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarray_tests.c.src +1035 -0
  124. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.c +4628 -0
  125. numpy-1.10.0.post2/numpy/core/src/multiarray/multiarraymodule.h +15 -0
  126. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_api.c +2809 -0
  127. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_constr.c +3160 -0
  128. numpy-1.10.0.post2/numpy/core/src/multiarray/nditer_pywrap.c +2499 -0
  129. numpy-1.10.0.post2/numpy/core/src/multiarray/number.c +1106 -0
  130. numpy-1.10.0.post2/numpy/core/src/multiarray/number.h +77 -0
  131. numpy-1.10.0.post2/numpy/core/src/multiarray/numpymemoryview.c +308 -0
  132. numpy-1.10.0.post2/numpy/core/src/multiarray/numpyos.c +683 -0
  133. numpy-1.10.0.post2/numpy/core/src/multiarray/scalarapi.c +870 -0
  134. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.c.src +4343 -0
  135. numpy-1.10.0.post2/numpy/core/src/multiarray/scalartypes.h +55 -0
  136. numpy-1.10.0.post2/numpy/core/src/multiarray/shape.c +1131 -0
  137. numpy-1.10.0.post2/numpy/core/src/multiarray/ucsnarrow.c +174 -0
  138. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.c +180 -0
  139. numpy-1.10.0.post2/numpy/core/src/multiarray/vdot.h +18 -0
  140. numpy-1.10.0.post2/numpy/core/src/npymath/ieee754.c.src +808 -0
  141. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math.c.src +597 -0
  142. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_complex.c.src +1788 -0
  143. numpy-1.10.0.post2/numpy/core/src/npymath/npy_math_private.h +544 -0
  144. numpy-1.10.0.post2/numpy/core/src/npysort/heapsort.c.src +402 -0
  145. numpy-1.10.0.post2/numpy/core/src/npysort/mergesort.c.src +488 -0
  146. numpy-1.10.0.post2/numpy/core/src/npysort/npysort_common.h +360 -0
  147. numpy-1.10.0.post2/numpy/core/src/npysort/quicksort.c.src +523 -0
  148. numpy-1.10.0.post2/numpy/core/src/npysort/selection.c.src +426 -0
  149. numpy-1.10.0.post2/numpy/core/src/private/npy_cblas.h +584 -0
  150. numpy-1.10.0.post2/numpy/core/src/private/npy_config.h +101 -0
  151. numpy-1.10.0.post2/numpy/core/src/private/npy_import.h +32 -0
  152. numpy-1.10.0.post2/numpy/core/src/private/npy_partition.h.src +122 -0
  153. numpy-1.10.0.post2/numpy/core/src/private/npy_sort.h +196 -0
  154. numpy-1.10.0.post2/numpy/core/src/private/templ_common.h.src +43 -0
  155. numpy-1.10.0.post2/numpy/core/src/private/ufunc_override.h +397 -0
  156. numpy-1.10.0.post2/numpy/core/src/umath/funcs.inc.src +356 -0
  157. numpy-1.10.0.post2/numpy/core/src/umath/loops.c.src +2675 -0
  158. numpy-1.10.0.post2/numpy/core/src/umath/loops.h.src +497 -0
  159. numpy-1.10.0.post2/numpy/core/src/umath/operand_flag_tests.c.src +105 -0
  160. numpy-1.10.0.post2/numpy/core/src/umath/scalarmath.c.src +1738 -0
  161. numpy-1.10.0.post2/numpy/core/src/umath/simd.inc.src +903 -0
  162. numpy-1.10.0.post2/numpy/core/src/umath/test_rational.c.src +1404 -0
  163. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_object.c +5703 -0
  164. numpy-1.10.0.post2/numpy/core/src/umath/ufunc_type_resolution.c +2159 -0
  165. numpy-1.10.0.post2/numpy/core/src/umath/umath_tests.c.src +392 -0
  166. numpy-1.10.0.post2/numpy/core/src/umath/umathmodule.c +443 -0
  167. numpy-1.10.0.post2/numpy/core/tests/test_abc.py +47 -0
  168. numpy-1.10.0.post2/numpy/core/tests/test_api.py +515 -0
  169. numpy-1.10.0.post2/numpy/core/tests/test_arrayprint.py +171 -0
  170. numpy-1.10.0.post2/numpy/core/tests/test_datetime.py +1820 -0
  171. numpy-1.10.0.post2/numpy/core/tests/test_defchararray.py +703 -0
  172. numpy-1.10.0.post2/numpy/core/tests/test_deprecations.py +619 -0
  173. numpy-1.10.0.post2/numpy/core/tests/test_dtype.py +578 -0
  174. numpy-1.10.0.post2/numpy/core/tests/test_einsum.py +627 -0
  175. numpy-1.10.0.post2/numpy/core/tests/test_errstate.py +52 -0
  176. numpy-1.10.0.post2/numpy/core/tests/test_function_base.py +142 -0
  177. numpy-1.10.0.post2/numpy/core/tests/test_getlimits.py +77 -0
  178. numpy-1.10.0.post2/numpy/core/tests/test_half.py +436 -0
  179. numpy-1.10.0.post2/numpy/core/tests/test_indexerrors.py +126 -0
  180. numpy-1.10.0.post2/numpy/core/tests/test_indexing.py +1047 -0
  181. numpy-1.10.0.post2/numpy/core/tests/test_item_selection.py +73 -0
  182. numpy-1.10.0.post2/numpy/core/tests/test_machar.py +29 -0
  183. numpy-1.10.0.post2/numpy/core/tests/test_memmap.py +130 -0
  184. numpy-1.10.0.post2/numpy/core/tests/test_multiarray.py +5924 -0
  185. numpy-1.10.0.post2/numpy/core/tests/test_multiarray_assignment.py +84 -0
  186. numpy-1.10.0.post2/numpy/core/tests/test_nditer.py +2638 -0
  187. numpy-1.10.0.post2/numpy/core/tests/test_numeric.py +2204 -0
  188. numpy-1.10.0.post2/numpy/core/tests/test_numerictypes.py +382 -0
  189. numpy-1.10.0.post2/numpy/core/tests/test_print.py +248 -0
  190. numpy-1.10.0.post2/numpy/core/tests/test_records.py +299 -0
  191. numpy-1.10.0.post2/numpy/core/tests/test_regression.py +2177 -0
  192. numpy-1.10.0.post2/numpy/core/tests/test_scalarinherit.py +41 -0
  193. numpy-1.10.0.post2/numpy/core/tests/test_scalarmath.py +316 -0
  194. numpy-1.10.0.post2/numpy/core/tests/test_shape_base.py +319 -0
  195. numpy-1.10.0.post2/numpy/core/tests/test_ufunc.py +1227 -0
  196. numpy-1.10.0.post2/numpy/core/tests/test_umath.py +1933 -0
  197. numpy-1.10.0.post2/numpy/core/tests/test_umath_complex.py +538 -0
  198. numpy-1.10.0.post2/numpy/core/tests/test_unicode.py +360 -0
  199. numpy-1.10.0.post2/numpy/distutils/__init__.py +23 -0
  200. numpy-1.10.0.post2/numpy/distutils/ccompiler.py +690 -0
  201. numpy-1.10.0.post2/numpy/distutils/command/autodist.py +94 -0
  202. numpy-1.10.0.post2/numpy/distutils/command/build.py +47 -0
  203. numpy-1.10.0.post2/numpy/distutils/command/build_clib.py +295 -0
  204. numpy-1.10.0.post2/numpy/distutils/command/build_ext.py +522 -0
  205. numpy-1.10.0.post2/numpy/distutils/command/config.py +437 -0
  206. numpy-1.10.0.post2/numpy/distutils/exec_command.py +651 -0
  207. numpy-1.10.0.post2/numpy/distutils/fcompiler/compaq.py +128 -0
  208. numpy-1.10.0.post2/numpy/distutils/fcompiler/gnu.py +403 -0
  209. numpy-1.10.0.post2/numpy/distutils/fcompiler/intel.py +217 -0
  210. numpy-1.10.0.post2/numpy/distutils/fcompiler/pg.py +63 -0
  211. numpy-1.10.0.post2/numpy/distutils/fcompiler/sun.py +55 -0
  212. numpy-1.10.0.post2/numpy/distutils/intelccompiler.py +95 -0
  213. numpy-1.10.0.post2/numpy/distutils/lib2def.py +116 -0
  214. numpy-1.10.0.post2/numpy/distutils/mingw32ccompiler.py +599 -0
  215. numpy-1.10.0.post2/numpy/distutils/misc_util.py +2306 -0
  216. numpy-1.10.0.post2/numpy/distutils/msvc9compiler.py +23 -0
  217. numpy-1.10.0.post2/numpy/distutils/msvccompiler.py +17 -0
  218. numpy-1.10.0.post2/numpy/distutils/npy_pkg_config.py +451 -0
  219. numpy-1.10.0.post2/numpy/distutils/system_info.py +2397 -0
  220. numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +12 -0
  221. numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +11 -0
  222. numpy-1.10.0.post2/numpy/distutils/tests/gen_ext/tests/test_fib3.py +11 -0
  223. numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +13 -0
  224. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/__init__.py +1 -0
  225. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example.py +17 -0
  226. numpy-1.10.0.post2/numpy/distutils/tests/swig_ext/tests/test_example2.py +15 -0
  227. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_gnu.py +60 -0
  228. numpy-1.10.0.post2/numpy/distutils/tests/test_fcompiler_intel.py +36 -0
  229. numpy-1.10.0.post2/numpy/distutils/tests/test_misc_util.py +79 -0
  230. numpy-1.10.0.post2/numpy/distutils/tests/test_npy_pkg_config.py +102 -0
  231. numpy-1.10.0.post2/numpy/distutils/tests/test_system_info.py +209 -0
  232. numpy-1.10.0.post2/numpy/distutils/unixccompiler.py +125 -0
  233. numpy-1.10.0.post2/numpy/doc/byteswapping.py +156 -0
  234. numpy-1.10.0.post2/numpy/doc/creation.py +144 -0
  235. numpy-1.10.0.post2/numpy/doc/glossary.py +423 -0
  236. numpy-1.10.0.post2/numpy/doc/indexing.py +439 -0
  237. numpy-1.10.0.post2/numpy/doc/structured_arrays.py +290 -0
  238. numpy-1.10.0.post2/numpy/f2py/__init__.py +49 -0
  239. numpy-1.10.0.post2/numpy/f2py/__main__.py +25 -0
  240. numpy-1.10.0.post2/numpy/f2py/auxfuncs.py +858 -0
  241. numpy-1.10.0.post2/numpy/f2py/capi_maps.py +851 -0
  242. numpy-1.10.0.post2/numpy/f2py/cb_rules.py +554 -0
  243. numpy-1.10.0.post2/numpy/f2py/cfuncs.py +1261 -0
  244. numpy-1.10.0.post2/numpy/f2py/common_rules.py +150 -0
  245. numpy-1.10.0.post2/numpy/f2py/crackfortran.py +3314 -0
  246. numpy-1.10.0.post2/numpy/f2py/diagnose.py +156 -0
  247. numpy-1.10.0.post2/numpy/f2py/f2py2e.py +656 -0
  248. numpy-1.10.0.post2/numpy/f2py/f2py_testing.py +48 -0
  249. numpy-1.10.0.post2/numpy/f2py/f90mod_rules.py +272 -0
  250. numpy-1.10.0.post2/numpy/f2py/func2subr.py +299 -0
  251. numpy-1.10.0.post2/numpy/f2py/rules.py +1475 -0
  252. numpy-1.10.0.post2/numpy/f2py/setup.py +117 -0
  253. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.c +1037 -0
  254. numpy-1.10.0.post2/numpy/f2py/src/fortranobject.h +162 -0
  255. numpy-1.10.0.post2/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +223 -0
  256. numpy-1.10.0.post2/numpy/f2py/tests/test_array_from_pyobj.py +593 -0
  257. numpy-1.10.0.post2/numpy/f2py/tests/test_assumed_shape.py +35 -0
  258. numpy-1.10.0.post2/numpy/f2py/tests/test_callback.py +136 -0
  259. numpy-1.10.0.post2/numpy/f2py/tests/test_kind.py +36 -0
  260. numpy-1.10.0.post2/numpy/f2py/tests/test_mixed.py +40 -0
  261. numpy-1.10.0.post2/numpy/f2py/tests/test_regression.py +34 -0
  262. numpy-1.10.0.post2/numpy/f2py/tests/test_return_character.py +148 -0
  263. numpy-1.10.0.post2/numpy/f2py/tests/test_return_complex.py +170 -0
  264. numpy-1.10.0.post2/numpy/f2py/tests/test_return_integer.py +180 -0
  265. numpy-1.10.0.post2/numpy/f2py/tests/test_return_logical.py +189 -0
  266. numpy-1.10.0.post2/numpy/f2py/tests/test_return_real.py +206 -0
  267. numpy-1.10.0.post2/numpy/f2py/tests/test_size.py +44 -0
  268. numpy-1.10.0.post2/numpy/f2py/tests/util.py +367 -0
  269. numpy-1.10.0.post2/numpy/f2py/use_rules.py +115 -0
  270. numpy-1.10.0.post2/numpy/fft/fftpack.c +1501 -0
  271. numpy-1.10.0.post2/numpy/fft/fftpack.h +28 -0
  272. numpy-1.10.0.post2/numpy/fft/fftpack.py +1241 -0
  273. numpy-1.10.0.post2/numpy/fft/fftpack_litemodule.c +363 -0
  274. numpy-1.10.0.post2/numpy/fft/info.py +187 -0
  275. numpy-1.10.0.post2/numpy/fft/setup.py +19 -0
  276. numpy-1.10.0.post2/numpy/fft/tests/test_fftpack.py +166 -0
  277. numpy-1.10.0.post2/numpy/fft/tests/test_helper.py +78 -0
  278. numpy-1.10.0.post2/numpy/lib/_iotools.py +917 -0
  279. numpy-1.10.0.post2/numpy/lib/arraypad.py +1497 -0
  280. numpy-1.10.0.post2/numpy/lib/arraysetops.py +480 -0
  281. numpy-1.10.0.post2/numpy/lib/arrayterator.py +226 -0
  282. numpy-1.10.0.post2/numpy/lib/financial.py +737 -0
  283. numpy-1.10.0.post2/numpy/lib/format.py +814 -0
  284. numpy-1.10.0.post2/numpy/lib/function_base.py +4150 -0
  285. numpy-1.10.0.post2/numpy/lib/index_tricks.py +874 -0
  286. numpy-1.10.0.post2/numpy/lib/info.py +152 -0
  287. numpy-1.10.0.post2/numpy/lib/nanfunctions.py +1237 -0
  288. numpy-1.10.0.post2/numpy/lib/npyio.py +1992 -0
  289. numpy-1.10.0.post2/numpy/lib/polynomial.py +1277 -0
  290. numpy-1.10.0.post2/numpy/lib/recfunctions.py +1003 -0
  291. numpy-1.10.0.post2/numpy/lib/setup.py +12 -0
  292. numpy-1.10.0.post2/numpy/lib/shape_base.py +872 -0
  293. numpy-1.10.0.post2/numpy/lib/stride_tricks.py +200 -0
  294. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npy +0 -0
  295. numpy-1.10.0.post2/numpy/lib/tests/data/py2-objarr.npz +0 -0
  296. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npy +0 -0
  297. numpy-1.10.0.post2/numpy/lib/tests/data/py3-objarr.npz +0 -0
  298. numpy-1.10.0.post2/numpy/lib/tests/test__iotools.py +348 -0
  299. numpy-1.10.0.post2/numpy/lib/tests/test__version.py +70 -0
  300. numpy-1.10.0.post2/numpy/lib/tests/test_arraypad.py +1047 -0
  301. numpy-1.10.0.post2/numpy/lib/tests/test_arraysetops.py +309 -0
  302. numpy-1.10.0.post2/numpy/lib/tests/test_financial.py +163 -0
  303. numpy-1.10.0.post2/numpy/lib/tests/test_format.py +841 -0
  304. numpy-1.10.0.post2/numpy/lib/tests/test_function_base.py +2555 -0
  305. numpy-1.10.0.post2/numpy/lib/tests/test_index_tricks.py +326 -0
  306. numpy-1.10.0.post2/numpy/lib/tests/test_io.py +1916 -0
  307. numpy-1.10.0.post2/numpy/lib/tests/test_nanfunctions.py +707 -0
  308. numpy-1.10.0.post2/numpy/lib/tests/test_packbits.py +26 -0
  309. numpy-1.10.0.post2/numpy/lib/tests/test_polynomial.py +188 -0
  310. numpy-1.10.0.post2/numpy/lib/tests/test_recfunctions.py +734 -0
  311. numpy-1.10.0.post2/numpy/lib/tests/test_shape_base.py +386 -0
  312. numpy-1.10.0.post2/numpy/lib/tests/test_stride_tricks.py +405 -0
  313. numpy-1.10.0.post2/numpy/lib/tests/test_twodim_base.py +535 -0
  314. numpy-1.10.0.post2/numpy/lib/tests/test_type_check.py +332 -0
  315. numpy-1.10.0.post2/numpy/lib/twodim_base.py +1007 -0
  316. numpy-1.10.0.post2/numpy/lib/type_check.py +596 -0
  317. numpy-1.10.0.post2/numpy/lib/utils.py +1122 -0
  318. numpy-1.10.0.post2/numpy/linalg/lapack_lite/python_xerbla.c +46 -0
  319. numpy-1.10.0.post2/numpy/linalg/lapack_litemodule.c +358 -0
  320. numpy-1.10.0.post2/numpy/linalg/linalg.py +2406 -0
  321. numpy-1.10.0.post2/numpy/linalg/tests/test_build.py +59 -0
  322. numpy-1.10.0.post2/numpy/linalg/tests/test_linalg.py +1351 -0
  323. numpy-1.10.0.post2/numpy/linalg/tests/test_regression.py +95 -0
  324. numpy-1.10.0.post2/numpy/linalg/umath_linalg.c.src +3236 -0
  325. numpy-1.10.0.post2/numpy/ma/__init__.py +56 -0
  326. numpy-1.10.0.post2/numpy/ma/bench.py +131 -0
  327. numpy-1.10.0.post2/numpy/ma/core.py +7608 -0
  328. numpy-1.10.0.post2/numpy/ma/extras.py +1953 -0
  329. numpy-1.10.0.post2/numpy/ma/mrecords.py +796 -0
  330. numpy-1.10.0.post2/numpy/ma/setup.py +13 -0
  331. numpy-1.10.0.post2/numpy/ma/tests/test_core.py +4100 -0
  332. numpy-1.10.0.post2/numpy/ma/tests/test_extras.py +1132 -0
  333. numpy-1.10.0.post2/numpy/ma/tests/test_mrecords.py +520 -0
  334. numpy-1.10.0.post2/numpy/ma/tests/test_old_ma.py +879 -0
  335. numpy-1.10.0.post2/numpy/ma/tests/test_regression.py +80 -0
  336. numpy-1.10.0.post2/numpy/ma/tests/test_subclassing.py +338 -0
  337. numpy-1.10.0.post2/numpy/ma/testutils.py +289 -0
  338. numpy-1.10.0.post2/numpy/ma/timer_comparison.py +440 -0
  339. numpy-1.10.0.post2/numpy/matlib.py +358 -0
  340. numpy-1.10.0.post2/numpy/matrixlib/defmatrix.py +1232 -0
  341. numpy-1.10.0.post2/numpy/matrixlib/tests/test_defmatrix.py +449 -0
  342. numpy-1.10.0.post2/numpy/matrixlib/tests/test_multiarray.py +23 -0
  343. numpy-1.10.0.post2/numpy/matrixlib/tests/test_numeric.py +23 -0
  344. numpy-1.10.0.post2/numpy/matrixlib/tests/test_regression.py +37 -0
  345. numpy-1.10.0.post2/numpy/polynomial/_polybase.py +962 -0
  346. numpy-1.10.0.post2/numpy/polynomial/chebyshev.py +2056 -0
  347. numpy-1.10.0.post2/numpy/polynomial/hermite.py +1831 -0
  348. numpy-1.10.0.post2/numpy/polynomial/hermite_e.py +1828 -0
  349. numpy-1.10.0.post2/numpy/polynomial/laguerre.py +1780 -0
  350. numpy-1.10.0.post2/numpy/polynomial/legendre.py +1808 -0
  351. numpy-1.10.0.post2/numpy/polynomial/polyutils.py +403 -0
  352. numpy-1.10.0.post2/numpy/random/mtrand/distributions.c +912 -0
  353. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.c +34805 -0
  354. numpy-1.10.0.post2/numpy/random/mtrand/mtrand.pyx +4766 -0
  355. numpy-1.10.0.post2/numpy/random/setup.py +61 -0
  356. numpy-1.10.0.post2/numpy/random/tests/test_random.py +723 -0
  357. numpy-1.10.0.post2/numpy/random/tests/test_regression.py +117 -0
  358. numpy-1.10.0.post2/numpy/setup.py +29 -0
  359. numpy-1.10.0.post2/numpy/testing/__init__.py +15 -0
  360. numpy-1.10.0.post2/numpy/testing/decorators.py +271 -0
  361. numpy-1.10.0.post2/numpy/testing/noseclasses.py +353 -0
  362. numpy-1.10.0.post2/numpy/testing/nosetester.py +511 -0
  363. numpy-1.10.0.post2/numpy/testing/print_coercion_tables.py +91 -0
  364. numpy-1.10.0.post2/numpy/testing/setup.py +20 -0
  365. numpy-1.10.0.post2/numpy/testing/tests/test_decorators.py +182 -0
  366. numpy-1.10.0.post2/numpy/testing/tests/test_utils.py +781 -0
  367. numpy-1.10.0.post2/numpy/testing/utils.py +1831 -0
  368. numpy-1.10.0.post2/numpy/tests/test_ctypeslib.py +106 -0
  369. numpy-1.10.0.post2/numpy/tests/test_matlib.py +55 -0
  370. numpy-1.10.0.post2/numpy/tests/test_scripts.py +69 -0
  371. numpy-1.10.0.post2/numpy/version.py +10 -0
  372. numpy-1.10.0.post2/setup.py +260 -0
  373. numpy-1.10.0.post2/site.cfg.example +193 -0
  374. numpy-1.10.0.post2/tmp.txt +789 -0
  375. numpy-1.10.0.post2/tools/swig/README +145 -0
  376. numpy-1.10.0.post2/tools/swig/numpy.i +3161 -0
  377. numpy-1.10.0.post2/tools/swig/test/Array.i +135 -0
  378. numpy-1.10.0.post2/tools/swig/test/ArrayZ.cxx +131 -0
  379. numpy-1.10.0.post2/tools/swig/test/ArrayZ.h +56 -0
  380. numpy-1.10.0.post2/tools/swig/test/Flat.cxx +36 -0
  381. numpy-1.10.0.post2/tools/swig/test/Flat.h +34 -0
  382. numpy-1.10.0.post2/tools/swig/test/Flat.i +36 -0
  383. numpy-1.10.0.post2/tools/swig/test/Makefile +37 -0
  384. numpy-1.10.0.post2/tools/swig/test/setup.py +71 -0
  385. numpy-1.10.0.post2/tools/swig/test/testArray.py +385 -0
  386. numpy-1.10.0.post2/tools/swig/test/testFarray.py +159 -0
  387. numpy-1.10.0.post2/tools/swig/test/testFlat.py +200 -0
  388. numpy-1.10.0.post2/tools/swig/test/testFortran.py +173 -0
  389. numpy-1.10.0.post2/tools/swig/test/testMatrix.py +362 -0
  390. numpy-1.10.0.post2/tools/swig/test/testSuperTensor.py +388 -0
  391. numpy-1.10.0.post2/tools/swig/test/testTensor.py +402 -0
  392. numpy-1.10.0.post2/tools/swig/test/testVector.py +381 -0
  393. numpy-1.9.2/INSTALL.txt +0 -138
  394. numpy-1.9.2/LICENSE.txt +0 -30
  395. numpy-1.9.2/MANIFEST.in +0 -26
  396. numpy-1.9.2/PKG-INFO +0 -39
  397. numpy-1.9.2/doc/scipy-sphinx-theme/.git +0 -1
  398. numpy-1.9.2/doc/source/conf.py +0 -331
  399. numpy-1.9.2/doc/source/dev/gitwash/branch_list.png +0 -0
  400. numpy-1.9.2/doc/source/dev/gitwash/branch_list_compare.png +0 -0
  401. numpy-1.9.2/doc/source/dev/gitwash/development_workflow.rst +0 -568
  402. numpy-1.9.2/doc/source/dev/gitwash/git_links.inc +0 -88
  403. numpy-1.9.2/doc/source/dev/gitwash/index.rst +0 -14
  404. numpy-1.9.2/doc/source/dev/index.rst +0 -10
  405. numpy-1.9.2/doc/source/reference/arrays.classes.rst +0 -427
  406. numpy-1.9.2/doc/source/reference/arrays.dtypes.rst +0 -534
  407. numpy-1.9.2/doc/source/reference/arrays.indexing.rst +0 -550
  408. numpy-1.9.2/doc/source/reference/arrays.interface.rst +0 -336
  409. numpy-1.9.2/doc/source/reference/arrays.ndarray.rst +0 -609
  410. numpy-1.9.2/doc/source/reference/arrays.scalars.rst +0 -291
  411. numpy-1.9.2/doc/source/reference/c-api.array.rst +0 -3362
  412. numpy-1.9.2/doc/source/reference/c-api.config.rst +0 -103
  413. numpy-1.9.2/doc/source/reference/c-api.coremath.rst +0 -420
  414. numpy-1.9.2/doc/source/reference/c-api.dtype.rst +0 -376
  415. numpy-1.9.2/doc/source/reference/c-api.generalized-ufuncs.rst +0 -171
  416. numpy-1.9.2/doc/source/reference/c-api.iterator.rst +0 -1298
  417. numpy-1.9.2/doc/source/reference/c-api.types-and-structures.rst +0 -1204
  418. numpy-1.9.2/doc/source/reference/c-api.ufunc.rst +0 -399
  419. numpy-1.9.2/doc/source/reference/index.rst +0 -44
  420. numpy-1.9.2/doc/source/reference/internals.code-explanations.rst +0 -666
  421. numpy-1.9.2/doc/source/reference/routines.array-manipulation.rst +0 -113
  422. numpy-1.9.2/doc/source/reference/routines.io.rst +0 -74
  423. numpy-1.9.2/doc/source/reference/routines.linalg.rst +0 -88
  424. numpy-1.9.2/doc/source/reference/routines.ma.rst +0 -405
  425. numpy-1.9.2/doc/source/reference/routines.sort.rst +0 -42
  426. numpy-1.9.2/doc/source/reference/routines.statistics.rst +0 -55
  427. numpy-1.9.2/doc/source/reference/swig.interface-file.rst +0 -1055
  428. numpy-1.9.2/doc/source/reference/swig.testing.rst +0 -166
  429. numpy-1.9.2/doc/source/reference/ufuncs.rst +0 -651
  430. numpy-1.9.2/doc/source/release.rst +0 -19
  431. numpy-1.9.2/doc/source/user/basics.io.genfromtxt.rst +0 -531
  432. numpy-1.9.2/doc/source/user/basics.rec.rst +0 -7
  433. numpy-1.9.2/doc/source/user/c-info.beyond-basics.rst +0 -560
  434. numpy-1.9.2/doc/source/user/c-info.how-to-extend.rst +0 -642
  435. numpy-1.9.2/doc/source/user/c-info.python-as-glue.rst +0 -1528
  436. numpy-1.9.2/doc/source/user/c-info.ufunc-tutorial.rst +0 -1211
  437. numpy-1.9.2/doc/source/user/install.rst +0 -180
  438. numpy-1.9.2/doc/sphinxext/.git +0 -1
  439. numpy-1.9.2/numpy/__init__.py +0 -216
  440. numpy-1.9.2/numpy/_import_tools.py +0 -348
  441. numpy-1.9.2/numpy/add_newdocs.py +0 -7518
  442. numpy-1.9.2/numpy/compat/_inspect.py +0 -221
  443. numpy-1.9.2/numpy/compat/py3k.py +0 -89
  444. numpy-1.9.2/numpy/compat/setup.py +0 -12
  445. numpy-1.9.2/numpy/core/__init__.py +0 -78
  446. numpy-1.9.2/numpy/core/_internal.py +0 -570
  447. numpy-1.9.2/numpy/core/_methods.py +0 -134
  448. numpy-1.9.2/numpy/core/arrayprint.py +0 -752
  449. numpy-1.9.2/numpy/core/blasdot/_dotblas.c +0 -1255
  450. numpy-1.9.2/numpy/core/blasdot/apple_sgemv_patch.c +0 -216
  451. numpy-1.9.2/numpy/core/blasdot/cblas.h +0 -578
  452. numpy-1.9.2/numpy/core/code_generators/cversions.txt +0 -31
  453. numpy-1.9.2/numpy/core/code_generators/generate_ufunc_api.py +0 -219
  454. numpy-1.9.2/numpy/core/code_generators/generate_umath.py +0 -972
  455. numpy-1.9.2/numpy/core/code_generators/numpy_api.py +0 -412
  456. numpy-1.9.2/numpy/core/code_generators/ufunc_docstrings.py +0 -3419
  457. numpy-1.9.2/numpy/core/defchararray.py +0 -2687
  458. numpy-1.9.2/numpy/core/fromnumeric.py +0 -2938
  459. numpy-1.9.2/numpy/core/function_base.py +0 -190
  460. numpy-1.9.2/numpy/core/getlimits.py +0 -306
  461. numpy-1.9.2/numpy/core/include/numpy/fenv/fenv.c +0 -38
  462. numpy-1.9.2/numpy/core/include/numpy/fenv/fenv.h +0 -224
  463. numpy-1.9.2/numpy/core/include/numpy/ndarrayobject.h +0 -237
  464. numpy-1.9.2/numpy/core/include/numpy/ndarraytypes.h +0 -1820
  465. numpy-1.9.2/numpy/core/include/numpy/npy_3kcompat.h +0 -506
  466. numpy-1.9.2/numpy/core/include/numpy/npy_common.h +0 -1038
  467. numpy-1.9.2/numpy/core/include/numpy/npy_cpu.h +0 -122
  468. numpy-1.9.2/numpy/core/include/numpy/npy_endian.h +0 -49
  469. numpy-1.9.2/numpy/core/include/numpy/npy_math.h +0 -479
  470. numpy-1.9.2/numpy/core/include/numpy/numpyconfig.h +0 -35
  471. numpy-1.9.2/numpy/core/machar.py +0 -338
  472. numpy-1.9.2/numpy/core/memmap.py +0 -308
  473. numpy-1.9.2/numpy/core/numeric.py +0 -2842
  474. numpy-1.9.2/numpy/core/numerictypes.py +0 -1042
  475. numpy-1.9.2/numpy/core/records.py +0 -804
  476. numpy-1.9.2/numpy/core/setup.py +0 -1016
  477. numpy-1.9.2/numpy/core/setup_common.py +0 -321
  478. numpy-1.9.2/numpy/core/shape_base.py +0 -277
  479. numpy-1.9.2/numpy/core/src/multiarray/alloc.c +0 -241
  480. numpy-1.9.2/numpy/core/src/multiarray/arrayobject.c +0 -1791
  481. numpy-1.9.2/numpy/core/src/multiarray/arraytypes.c.src +0 -4372
  482. numpy-1.9.2/numpy/core/src/multiarray/arraytypes.h +0 -13
  483. numpy-1.9.2/numpy/core/src/multiarray/buffer.c +0 -954
  484. numpy-1.9.2/numpy/core/src/multiarray/calculation.c +0 -1229
  485. numpy-1.9.2/numpy/core/src/multiarray/common.c +0 -798
  486. numpy-1.9.2/numpy/core/src/multiarray/common.h +0 -328
  487. numpy-1.9.2/numpy/core/src/multiarray/conversion_utils.c +0 -1240
  488. numpy-1.9.2/numpy/core/src/multiarray/convert.c +0 -589
  489. numpy-1.9.2/numpy/core/src/multiarray/convert_datatype.c +0 -2199
  490. numpy-1.9.2/numpy/core/src/multiarray/ctors.c +0 -3785
  491. numpy-1.9.2/numpy/core/src/multiarray/datetime.c +0 -3823
  492. numpy-1.9.2/numpy/core/src/multiarray/datetime_busday.c +0 -1322
  493. numpy-1.9.2/numpy/core/src/multiarray/datetime_busdaycal.c +0 -552
  494. numpy-1.9.2/numpy/core/src/multiarray/datetime_strings.c +0 -1772
  495. numpy-1.9.2/numpy/core/src/multiarray/descriptor.c +0 -3658
  496. numpy-1.9.2/numpy/core/src/multiarray/dtype_transfer.c +0 -4232
  497. numpy-1.9.2/numpy/core/src/multiarray/einsum.c.src +0 -3013
  498. numpy-1.9.2/numpy/core/src/multiarray/getset.c +0 -984
  499. numpy-1.9.2/numpy/core/src/multiarray/hashdescr.c +0 -319
  500. numpy-1.9.2/numpy/core/src/multiarray/item_selection.c +0 -2711
  501. numpy-1.9.2/numpy/core/src/multiarray/iterators.c +0 -2160
  502. numpy-1.9.2/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +0 -1767
  503. numpy-1.9.2/numpy/core/src/multiarray/mapping.c +0 -3316
  504. numpy-1.9.2/numpy/core/src/multiarray/mapping.h +0 -73
  505. numpy-1.9.2/numpy/core/src/multiarray/methods.c +0 -2497
  506. numpy-1.9.2/numpy/core/src/multiarray/multiarray_tests.c.src +0 -977
  507. numpy-1.9.2/numpy/core/src/multiarray/multiarraymodule.c +0 -4202
  508. numpy-1.9.2/numpy/core/src/multiarray/multiarraymodule.h +0 -4
  509. numpy-1.9.2/numpy/core/src/multiarray/multiarraymodule_onefile.c +0 -58
  510. numpy-1.9.2/numpy/core/src/multiarray/nditer_api.c +0 -2809
  511. numpy-1.9.2/numpy/core/src/multiarray/nditer_constr.c +0 -3159
  512. numpy-1.9.2/numpy/core/src/multiarray/nditer_pywrap.c +0 -2492
  513. numpy-1.9.2/numpy/core/src/multiarray/number.c +0 -1057
  514. numpy-1.9.2/numpy/core/src/multiarray/number.h +0 -76
  515. numpy-1.9.2/numpy/core/src/multiarray/numpymemoryview.c +0 -309
  516. numpy-1.9.2/numpy/core/src/multiarray/numpyos.c +0 -683
  517. numpy-1.9.2/numpy/core/src/multiarray/scalarapi.c +0 -861
  518. numpy-1.9.2/numpy/core/src/multiarray/scalartypes.c.src +0 -4270
  519. numpy-1.9.2/numpy/core/src/multiarray/scalartypes.h +0 -52
  520. numpy-1.9.2/numpy/core/src/multiarray/shape.c +0 -1141
  521. numpy-1.9.2/numpy/core/src/multiarray/ucsnarrow.c +0 -173
  522. numpy-1.9.2/numpy/core/src/npymath/ieee754.c.src +0 -814
  523. numpy-1.9.2/numpy/core/src/npymath/npy_math.c.src +0 -527
  524. numpy-1.9.2/numpy/core/src/npymath/npy_math_complex.c.src +0 -291
  525. numpy-1.9.2/numpy/core/src/npymath/npy_math_private.h +0 -539
  526. numpy-1.9.2/numpy/core/src/npysort/heapsort.c.src +0 -341
  527. numpy-1.9.2/numpy/core/src/npysort/mergesort.c.src +0 -428
  528. numpy-1.9.2/numpy/core/src/npysort/npysort_common.h +0 -367
  529. numpy-1.9.2/numpy/core/src/npysort/quicksort.c.src +0 -363
  530. numpy-1.9.2/numpy/core/src/npysort/selection.c.src +0 -474
  531. numpy-1.9.2/numpy/core/src/private/npy_config.h +0 -44
  532. numpy-1.9.2/numpy/core/src/private/npy_partition.h.src +0 -138
  533. numpy-1.9.2/numpy/core/src/private/npy_sort.h +0 -194
  534. numpy-1.9.2/numpy/core/src/private/scalarmathmodule.h.src +0 -42
  535. numpy-1.9.2/numpy/core/src/private/ufunc_override.h +0 -384
  536. numpy-1.9.2/numpy/core/src/scalarmathmodule.c.src +0 -1980
  537. numpy-1.9.2/numpy/core/src/umath/funcs.inc.src +0 -715
  538. numpy-1.9.2/numpy/core/src/umath/loops.c.src +0 -2654
  539. numpy-1.9.2/numpy/core/src/umath/loops.h.src +0 -501
  540. numpy-1.9.2/numpy/core/src/umath/operand_flag_tests.c.src +0 -105
  541. numpy-1.9.2/numpy/core/src/umath/simd.inc.src +0 -881
  542. numpy-1.9.2/numpy/core/src/umath/test_rational.c.src +0 -1404
  543. numpy-1.9.2/numpy/core/src/umath/ufunc_object.c +0 -5520
  544. numpy-1.9.2/numpy/core/src/umath/ufunc_type_resolution.c +0 -2164
  545. numpy-1.9.2/numpy/core/src/umath/umath_tests.c.src +0 -341
  546. numpy-1.9.2/numpy/core/src/umath/umathmodule.c +0 -561
  547. numpy-1.9.2/numpy/core/src/umath/umathmodule_onefile.c +0 -6
  548. numpy-1.9.2/numpy/core/tests/test_abc.py +0 -45
  549. numpy-1.9.2/numpy/core/tests/test_api.py +0 -514
  550. numpy-1.9.2/numpy/core/tests/test_arrayprint.py +0 -167
  551. numpy-1.9.2/numpy/core/tests/test_blasdot.py +0 -249
  552. numpy-1.9.2/numpy/core/tests/test_datetime.py +0 -1781
  553. numpy-1.9.2/numpy/core/tests/test_defchararray.py +0 -642
  554. numpy-1.9.2/numpy/core/tests/test_deprecations.py +0 -512
  555. numpy-1.9.2/numpy/core/tests/test_dtype.py +0 -542
  556. numpy-1.9.2/numpy/core/tests/test_einsum.py +0 -583
  557. numpy-1.9.2/numpy/core/tests/test_errstate.py +0 -51
  558. numpy-1.9.2/numpy/core/tests/test_function_base.py +0 -111
  559. numpy-1.9.2/numpy/core/tests/test_getlimits.py +0 -86
  560. numpy-1.9.2/numpy/core/tests/test_half.py +0 -439
  561. numpy-1.9.2/numpy/core/tests/test_indexerrors.py +0 -127
  562. numpy-1.9.2/numpy/core/tests/test_indexing.py +0 -1014
  563. numpy-1.9.2/numpy/core/tests/test_item_selection.py +0 -70
  564. numpy-1.9.2/numpy/core/tests/test_machar.py +0 -30
  565. numpy-1.9.2/numpy/core/tests/test_memmap.py +0 -127
  566. numpy-1.9.2/numpy/core/tests/test_multiarray.py +0 -4645
  567. numpy-1.9.2/numpy/core/tests/test_multiarray_assignment.py +0 -80
  568. numpy-1.9.2/numpy/core/tests/test_nditer.py +0 -2630
  569. numpy-1.9.2/numpy/core/tests/test_numeric.py +0 -2117
  570. numpy-1.9.2/numpy/core/tests/test_numerictypes.py +0 -377
  571. numpy-1.9.2/numpy/core/tests/test_print.py +0 -245
  572. numpy-1.9.2/numpy/core/tests/test_records.py +0 -185
  573. numpy-1.9.2/numpy/core/tests/test_regression.py +0 -2108
  574. numpy-1.9.2/numpy/core/tests/test_scalarinherit.py +0 -34
  575. numpy-1.9.2/numpy/core/tests/test_scalarmath.py +0 -275
  576. numpy-1.9.2/numpy/core/tests/test_shape_base.py +0 -250
  577. numpy-1.9.2/numpy/core/tests/test_ufunc.py +0 -1153
  578. numpy-1.9.2/numpy/core/tests/test_umath.py +0 -1695
  579. numpy-1.9.2/numpy/core/tests/test_umath_complex.py +0 -537
  580. numpy-1.9.2/numpy/core/tests/test_unicode.py +0 -357
  581. numpy-1.9.2/numpy/distutils/__init__.py +0 -39
  582. numpy-1.9.2/numpy/distutils/ccompiler.py +0 -656
  583. numpy-1.9.2/numpy/distutils/command/autodist.py +0 -43
  584. numpy-1.9.2/numpy/distutils/command/build.py +0 -39
  585. numpy-1.9.2/numpy/distutils/command/build_clib.py +0 -284
  586. numpy-1.9.2/numpy/distutils/command/build_ext.py +0 -503
  587. numpy-1.9.2/numpy/distutils/command/config.py +0 -476
  588. numpy-1.9.2/numpy/distutils/exec_command.py +0 -618
  589. numpy-1.9.2/numpy/distutils/fcompiler/compaq.py +0 -128
  590. numpy-1.9.2/numpy/distutils/fcompiler/gnu.py +0 -390
  591. numpy-1.9.2/numpy/distutils/fcompiler/intel.py +0 -205
  592. numpy-1.9.2/numpy/distutils/fcompiler/pg.py +0 -60
  593. numpy-1.9.2/numpy/distutils/fcompiler/sun.py +0 -52
  594. numpy-1.9.2/numpy/distutils/intelccompiler.py +0 -45
  595. numpy-1.9.2/numpy/distutils/lib2def.py +0 -116
  596. numpy-1.9.2/numpy/distutils/mingw32ccompiler.py +0 -582
  597. numpy-1.9.2/numpy/distutils/misc_util.py +0 -2271
  598. numpy-1.9.2/numpy/distutils/npy_pkg_config.py +0 -464
  599. numpy-1.9.2/numpy/distutils/system_info.py +0 -2319
  600. numpy-1.9.2/numpy/distutils/tests/f2py_ext/tests/test_fib2.py +0 -13
  601. numpy-1.9.2/numpy/distutils/tests/f2py_f90_ext/tests/test_foo.py +0 -12
  602. numpy-1.9.2/numpy/distutils/tests/gen_ext/tests/test_fib3.py +0 -12
  603. numpy-1.9.2/numpy/distutils/tests/pyrex_ext/tests/test_primes.py +0 -14
  604. numpy-1.9.2/numpy/distutils/tests/swig_ext/tests/test_example.py +0 -18
  605. numpy-1.9.2/numpy/distutils/tests/swig_ext/tests/test_example2.py +0 -16
  606. numpy-1.9.2/numpy/distutils/tests/test_fcompiler_gnu.py +0 -53
  607. numpy-1.9.2/numpy/distutils/tests/test_fcompiler_intel.py +0 -36
  608. numpy-1.9.2/numpy/distutils/tests/test_misc_util.py +0 -75
  609. numpy-1.9.2/numpy/distutils/tests/test_npy_pkg_config.py +0 -98
  610. numpy-1.9.2/numpy/distutils/unixccompiler.py +0 -113
  611. numpy-1.9.2/numpy/doc/byteswapping.py +0 -147
  612. numpy-1.9.2/numpy/doc/creation.py +0 -144
  613. numpy-1.9.2/numpy/doc/glossary.py +0 -418
  614. numpy-1.9.2/numpy/doc/indexing.py +0 -437
  615. numpy-1.9.2/numpy/doc/structured_arrays.py +0 -223
  616. numpy-1.9.2/numpy/f2py/__init__.py +0 -49
  617. numpy-1.9.2/numpy/f2py/auxfuncs.py +0 -711
  618. numpy-1.9.2/numpy/f2py/capi_maps.py +0 -773
  619. numpy-1.9.2/numpy/f2py/cb_rules.py +0 -539
  620. numpy-1.9.2/numpy/f2py/cfuncs.py +0 -1224
  621. numpy-1.9.2/numpy/f2py/common_rules.py +0 -132
  622. numpy-1.9.2/numpy/f2py/crackfortran.py +0 -2870
  623. numpy-1.9.2/numpy/f2py/diagnose.py +0 -149
  624. numpy-1.9.2/numpy/f2py/f2py2e.py +0 -598
  625. numpy-1.9.2/numpy/f2py/f2py_testing.py +0 -46
  626. numpy-1.9.2/numpy/f2py/f90mod_rules.py +0 -246
  627. numpy-1.9.2/numpy/f2py/func2subr.py +0 -291
  628. numpy-1.9.2/numpy/f2py/rules.py +0 -1448
  629. numpy-1.9.2/numpy/f2py/setup.py +0 -129
  630. numpy-1.9.2/numpy/f2py/src/fortranobject.c +0 -972
  631. numpy-1.9.2/numpy/f2py/src/fortranobject.h +0 -162
  632. numpy-1.9.2/numpy/f2py/tests/src/array_from_pyobj/wrapmodule.c +0 -223
  633. numpy-1.9.2/numpy/f2py/tests/test_array_from_pyobj.py +0 -559
  634. numpy-1.9.2/numpy/f2py/tests/test_assumed_shape.py +0 -37
  635. numpy-1.9.2/numpy/f2py/tests/test_callback.py +0 -132
  636. numpy-1.9.2/numpy/f2py/tests/test_kind.py +0 -36
  637. numpy-1.9.2/numpy/f2py/tests/test_mixed.py +0 -41
  638. numpy-1.9.2/numpy/f2py/tests/test_regression.py +0 -32
  639. numpy-1.9.2/numpy/f2py/tests/test_return_character.py +0 -142
  640. numpy-1.9.2/numpy/f2py/tests/test_return_complex.py +0 -169
  641. numpy-1.9.2/numpy/f2py/tests/test_return_integer.py +0 -178
  642. numpy-1.9.2/numpy/f2py/tests/test_return_logical.py +0 -187
  643. numpy-1.9.2/numpy/f2py/tests/test_return_real.py +0 -203
  644. numpy-1.9.2/numpy/f2py/tests/test_size.py +0 -47
  645. numpy-1.9.2/numpy/f2py/tests/util.py +0 -353
  646. numpy-1.9.2/numpy/f2py/use_rules.py +0 -109
  647. numpy-1.9.2/numpy/fft/fftpack.c +0 -1501
  648. numpy-1.9.2/numpy/fft/fftpack.h +0 -28
  649. numpy-1.9.2/numpy/fft/fftpack.py +0 -1169
  650. numpy-1.9.2/numpy/fft/fftpack_litemodule.c +0 -371
  651. numpy-1.9.2/numpy/fft/info.py +0 -179
  652. numpy-1.9.2/numpy/fft/setup.py +0 -20
  653. numpy-1.9.2/numpy/fft/tests/test_fftpack.py +0 -75
  654. numpy-1.9.2/numpy/fft/tests/test_helper.py +0 -78
  655. numpy-1.9.2/numpy/lib/_iotools.py +0 -891
  656. numpy-1.9.2/numpy/lib/arraypad.py +0 -1475
  657. numpy-1.9.2/numpy/lib/arraysetops.py +0 -464
  658. numpy-1.9.2/numpy/lib/arrayterator.py +0 -226
  659. numpy-1.9.2/numpy/lib/financial.py +0 -737
  660. numpy-1.9.2/numpy/lib/format.py +0 -771
  661. numpy-1.9.2/numpy/lib/function_base.py +0 -3884
  662. numpy-1.9.2/numpy/lib/index_tricks.py +0 -869
  663. numpy-1.9.2/numpy/lib/info.py +0 -151
  664. numpy-1.9.2/numpy/lib/nanfunctions.py +0 -1158
  665. numpy-1.9.2/numpy/lib/npyio.py +0 -1918
  666. numpy-1.9.2/numpy/lib/polynomial.py +0 -1271
  667. numpy-1.9.2/numpy/lib/recfunctions.py +0 -1003
  668. numpy-1.9.2/numpy/lib/setup.py +0 -23
  669. numpy-1.9.2/numpy/lib/shape_base.py +0 -865
  670. numpy-1.9.2/numpy/lib/src/_compiled_base.c +0 -1761
  671. numpy-1.9.2/numpy/lib/stride_tricks.py +0 -123
  672. numpy-1.9.2/numpy/lib/tests/test__iotools.py +0 -326
  673. numpy-1.9.2/numpy/lib/tests/test__version.py +0 -57
  674. numpy-1.9.2/numpy/lib/tests/test_arraypad.py +0 -560
  675. numpy-1.9.2/numpy/lib/tests/test_arraysetops.py +0 -301
  676. numpy-1.9.2/numpy/lib/tests/test_financial.py +0 -160
  677. numpy-1.9.2/numpy/lib/tests/test_format.py +0 -716
  678. numpy-1.9.2/numpy/lib/tests/test_function_base.py +0 -2145
  679. numpy-1.9.2/numpy/lib/tests/test_index_tricks.py +0 -289
  680. numpy-1.9.2/numpy/lib/tests/test_io.py +0 -1754
  681. numpy-1.9.2/numpy/lib/tests/test_nanfunctions.py +0 -774
  682. numpy-1.9.2/numpy/lib/tests/test_polynomial.py +0 -177
  683. numpy-1.9.2/numpy/lib/tests/test_recfunctions.py +0 -705
  684. numpy-1.9.2/numpy/lib/tests/test_shape_base.py +0 -368
  685. numpy-1.9.2/numpy/lib/tests/test_stride_tricks.py +0 -238
  686. numpy-1.9.2/numpy/lib/tests/test_twodim_base.py +0 -504
  687. numpy-1.9.2/numpy/lib/tests/test_type_check.py +0 -328
  688. numpy-1.9.2/numpy/lib/twodim_base.py +0 -1003
  689. numpy-1.9.2/numpy/lib/type_check.py +0 -605
  690. numpy-1.9.2/numpy/lib/utils.py +0 -1176
  691. numpy-1.9.2/numpy/linalg/lapack_lite/python_xerbla.c +0 -47
  692. numpy-1.9.2/numpy/linalg/lapack_litemodule.c +0 -362
  693. numpy-1.9.2/numpy/linalg/linalg.py +0 -2136
  694. numpy-1.9.2/numpy/linalg/tests/test_build.py +0 -53
  695. numpy-1.9.2/numpy/linalg/tests/test_linalg.py +0 -1156
  696. numpy-1.9.2/numpy/linalg/tests/test_regression.py +0 -90
  697. numpy-1.9.2/numpy/linalg/umath_linalg.c.src +0 -3210
  698. numpy-1.9.2/numpy/ma/__init__.py +0 -58
  699. numpy-1.9.2/numpy/ma/bench.py +0 -166
  700. numpy-1.9.2/numpy/ma/core.py +0 -7374
  701. numpy-1.9.2/numpy/ma/extras.py +0 -1932
  702. numpy-1.9.2/numpy/ma/mrecords.py +0 -734
  703. numpy-1.9.2/numpy/ma/setup.py +0 -20
  704. numpy-1.9.2/numpy/ma/tests/test_core.py +0 -3706
  705. numpy-1.9.2/numpy/ma/tests/test_extras.py +0 -954
  706. numpy-1.9.2/numpy/ma/tests/test_mrecords.py +0 -521
  707. numpy-1.9.2/numpy/ma/tests/test_old_ma.py +0 -869
  708. numpy-1.9.2/numpy/ma/tests/test_regression.py +0 -75
  709. numpy-1.9.2/numpy/ma/tests/test_subclassing.py +0 -236
  710. numpy-1.9.2/numpy/ma/testutils.py +0 -240
  711. numpy-1.9.2/numpy/ma/timer_comparison.py +0 -459
  712. numpy-1.9.2/numpy/matlib.py +0 -358
  713. numpy-1.9.2/numpy/matrixlib/defmatrix.py +0 -1094
  714. numpy-1.9.2/numpy/matrixlib/tests/test_defmatrix.py +0 -400
  715. numpy-1.9.2/numpy/matrixlib/tests/test_multiarray.py +0 -18
  716. numpy-1.9.2/numpy/matrixlib/tests/test_numeric.py +0 -10
  717. numpy-1.9.2/numpy/matrixlib/tests/test_regression.py +0 -34
  718. numpy-1.9.2/numpy/polynomial/_polybase.py +0 -962
  719. numpy-1.9.2/numpy/polynomial/chebyshev.py +0 -2056
  720. numpy-1.9.2/numpy/polynomial/hermite.py +0 -1789
  721. numpy-1.9.2/numpy/polynomial/hermite_e.py +0 -1786
  722. numpy-1.9.2/numpy/polynomial/laguerre.py +0 -1781
  723. numpy-1.9.2/numpy/polynomial/legendre.py +0 -1809
  724. numpy-1.9.2/numpy/polynomial/polytemplate.py +0 -927
  725. numpy-1.9.2/numpy/polynomial/polyutils.py +0 -403
  726. numpy-1.9.2/numpy/random/mtrand/distributions.c +0 -892
  727. numpy-1.9.2/numpy/random/mtrand/mtrand.c +0 -31204
  728. numpy-1.9.2/numpy/random/mtrand/mtrand.pyx +0 -4706
  729. numpy-1.9.2/numpy/random/setup.py +0 -74
  730. numpy-1.9.2/numpy/random/tests/test_random.py +0 -707
  731. numpy-1.9.2/numpy/random/tests/test_regression.py +0 -86
  732. numpy-1.9.2/numpy/setup.py +0 -27
  733. numpy-1.9.2/numpy/testing/__init__.py +0 -16
  734. numpy-1.9.2/numpy/testing/decorators.py +0 -271
  735. numpy-1.9.2/numpy/testing/noseclasses.py +0 -353
  736. numpy-1.9.2/numpy/testing/nosetester.py +0 -504
  737. numpy-1.9.2/numpy/testing/print_coercion_tables.py +0 -89
  738. numpy-1.9.2/numpy/testing/setup.py +0 -20
  739. numpy-1.9.2/numpy/testing/tests/test_decorators.py +0 -185
  740. numpy-1.9.2/numpy/testing/tests/test_utils.py +0 -558
  741. numpy-1.9.2/numpy/testing/utils.py +0 -1715
  742. numpy-1.9.2/numpy/tests/test_ctypeslib.py +0 -102
  743. numpy-1.9.2/numpy/tests/test_matlib.py +0 -55
  744. numpy-1.9.2/numpy/version.py +0 -10
  745. numpy-1.9.2/setup.py +0 -251
  746. numpy-1.9.2/site.cfg.example +0 -157
  747. numpy-1.9.2/tools/swig/README +0 -135
  748. numpy-1.9.2/tools/swig/numpy.i +0 -3085
  749. numpy-1.9.2/tools/swig/test/Array.i +0 -102
  750. numpy-1.9.2/tools/swig/test/Makefile +0 -34
  751. numpy-1.9.2/tools/swig/test/setup.py +0 -64
  752. numpy-1.9.2/tools/swig/test/testArray.py +0 -284
  753. numpy-1.9.2/tools/swig/test/testFarray.py +0 -159
  754. numpy-1.9.2/tools/swig/test/testFortran.py +0 -173
  755. numpy-1.9.2/tools/swig/test/testMatrix.py +0 -362
  756. numpy-1.9.2/tools/swig/test/testSuperTensor.py +0 -388
  757. numpy-1.9.2/tools/swig/test/testTensor.py +0 -402
  758. numpy-1.9.2/tools/swig/test/testVector.py +0 -381
  759. {numpy-1.9.2 → numpy-1.10.0.post2}/BENTO_BUILD.txt +0 -0
  760. {numpy-1.9.2 → numpy-1.10.0.post2}/COMPATIBILITY +0 -0
  761. {numpy-1.9.2 → numpy-1.10.0.post2}/DEV_README.txt +0 -0
  762. {numpy-1.9.2 → numpy-1.10.0.post2}/README.txt +0 -0
  763. {numpy-1.9.2 → numpy-1.10.0.post2}/THANKS.txt +0 -0
  764. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/Makefile +0 -0
  765. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/BUGS.txt +0 -0
  766. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/FAQ.txt +0 -0
  767. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/HISTORY.txt +0 -0
  768. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Makefile +0 -0
  769. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/OLDNEWS.txt +0 -0
  770. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/README.txt +0 -0
  771. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-1.x.txt +0 -0
  772. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-2.x.txt +0 -0
  773. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-3.x.txt +0 -0
  774. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/Release-4.x.txt +0 -0
  775. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/TESTING.txt +0 -0
  776. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/THANKS.txt +0 -0
  777. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/TODO.txt +0 -0
  778. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/apps.tex +0 -0
  779. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/bugs.tex +0 -0
  780. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/collectinput.py +0 -0
  781. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/commands.tex +0 -0
  782. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/default.css +0 -0
  783. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/docutils.conf +0 -0
  784. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/arr.f +0 -0
  785. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/bar.f +0 -0
  786. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foo.f +0 -0
  787. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar-smart.f90 +0 -0
  788. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foobar.f90 +0 -0
  789. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/foobarmodule.tex +0 -0
  790. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/ex1/runme +0 -0
  791. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2py.1 +0 -0
  792. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2py2e.tex +0 -0
  793. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/README.txt +0 -0
  794. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/aerostructure.jpg +0 -0
  795. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/flow.jpg +0 -0
  796. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_html.sh +0 -0
  797. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_pdf.sh +0 -0
  798. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/mk_ps.sh +0 -0
  799. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1.f +0 -0
  800. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1mess.txt +0 -0
  801. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/exp1session.txt +0 -0
  802. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foo.pyf +0 -0
  803. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/src/examples/foom.pyf +0 -0
  804. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/f2python9-final/structure.jpg +0 -0
  805. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/fortranobject.tex +0 -0
  806. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/hello.f +0 -0
  807. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/index.html +0 -0
  808. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/intro.tex +0 -0
  809. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/array_from_pyobj.c +0 -0
  810. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/bar.c +0 -0
  811. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/foo.f +0 -0
  812. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/fortran_array_from_pyobj.txt +0 -0
  813. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/fun.pyf +0 -0
  814. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/run.pyf +0 -0
  815. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarray/transpose.txt +0 -0
  816. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/multiarrays.txt +0 -0
  817. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/notes.tex +0 -0
  818. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/oldnews.html +0 -0
  819. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/options.tex +0 -0
  820. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/pyforttest.pyf +0 -0
  821. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/pytest.py +0 -0
  822. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/python9.tex +0 -0
  823. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/signaturefile.tex +0 -0
  824. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/simple.f +0 -0
  825. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/simple_session.dat +0 -0
  826. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/using_F_compiler.txt +0 -0
  827. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/f2py/win32_notes.txt +0 -0
  828. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/postprocess.py +0 -0
  829. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.3.0-notes.rst +0 -0
  830. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.4.0-notes.rst +0 -0
  831. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.5.0-notes.rst +0 -0
  832. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.6.0-notes.rst +0 -0
  833. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.6.1-notes.rst +0 -0
  834. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.6.2-notes.rst +0 -0
  835. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.7.0-notes.rst +0 -0
  836. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.7.1-notes.rst +0 -0
  837. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.7.2-notes.rst +0 -0
  838. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.8.0-notes.rst +0 -0
  839. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.8.1-notes.rst +0 -0
  840. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.8.2-notes.rst +0 -0
  841. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.9.0-notes.rst +0 -0
  842. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.9.1-notes.rst +0 -0
  843. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/1.9.2-notes.rst +0 -0
  844. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/release/time_based_proposal.rst +0 -0
  845. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/.gitignore +0 -0
  846. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/Makefile +0 -0
  847. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/README.rst +0 -0
  848. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_static/scipyshiny_small.png +0 -0
  849. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/layout.html +0 -0
  850. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/searchbox.html +0 -0
  851. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/sourcelink.html +0 -0
  852. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/extend.css +0 -0
  853. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/pygments.css +0 -0
  854. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/scipy-central.css +0 -0
  855. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-bootstrap.css +0 -0
  856. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/css/spc-extend.css +0 -0
  857. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/all-icons.svg +0 -0
  858. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/contents.png +0 -0
  859. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/create-new-account-icon.png +0 -0
  860. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon-shrunk.png +0 -0
  861. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.png +0 -0
  862. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-icon.svg +0 -0
  863. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiniest.png +0 -0
  864. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon-tiny.png +0 -0
  865. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/external-link-list-icon.png +0 -0
  866. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ad.png +0 -0
  867. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ae.png +0 -0
  868. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-af.png +0 -0
  869. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ag.png +0 -0
  870. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ai.png +0 -0
  871. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-al.png +0 -0
  872. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-am.png +0 -0
  873. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ao.png +0 -0
  874. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aq.png +0 -0
  875. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ar.png +0 -0
  876. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-as.png +0 -0
  877. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-at.png +0 -0
  878. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-au.png +0 -0
  879. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-aw.png +0 -0
  880. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-az.png +0 -0
  881. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ba.png +0 -0
  882. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bb.png +0 -0
  883. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bd.png +0 -0
  884. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-be.png +0 -0
  885. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bf.png +0 -0
  886. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bg.png +0 -0
  887. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bh.png +0 -0
  888. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bi.png +0 -0
  889. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bj.png +0 -0
  890. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bl.png +0 -0
  891. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bm.png +0 -0
  892. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bn.png +0 -0
  893. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bo.png +0 -0
  894. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-br.png +0 -0
  895. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bs.png +0 -0
  896. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bt.png +0 -0
  897. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bw.png +0 -0
  898. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-by.png +0 -0
  899. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-bz.png +0 -0
  900. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ca.png +0 -0
  901. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cc.png +0 -0
  902. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cd.png +0 -0
  903. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cf.png +0 -0
  904. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cg.png +0 -0
  905. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ch.png +0 -0
  906. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ci.png +0 -0
  907. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ck.png +0 -0
  908. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cl.png +0 -0
  909. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cm.png +0 -0
  910. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cn.png +0 -0
  911. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-co.png +0 -0
  912. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cr.png +0 -0
  913. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cu.png +0 -0
  914. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cv.png +0 -0
  915. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cw.png +0 -0
  916. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cx.png +0 -0
  917. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cy.png +0 -0
  918. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-cz.png +0 -0
  919. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-de.png +0 -0
  920. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dj.png +0 -0
  921. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dk.png +0 -0
  922. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dm.png +0 -0
  923. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-do.png +0 -0
  924. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-dz.png +0 -0
  925. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ec.png +0 -0
  926. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ee.png +0 -0
  927. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-eg.png +0 -0
  928. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-er.png +0 -0
  929. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-es.png +0 -0
  930. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-et.png +0 -0
  931. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fi.png +0 -0
  932. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fj.png +0 -0
  933. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fk.png +0 -0
  934. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fm.png +0 -0
  935. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fo.png +0 -0
  936. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-fr.png +0 -0
  937. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ga.png +0 -0
  938. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gb.png +0 -0
  939. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gd.png +0 -0
  940. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ge.png +0 -0
  941. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gf.png +0 -0
  942. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gg.png +0 -0
  943. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gh.png +0 -0
  944. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gi.png +0 -0
  945. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gl.png +0 -0
  946. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gm.png +0 -0
  947. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gn.png +0 -0
  948. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gq.png +0 -0
  949. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gr.png +0 -0
  950. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gs.png +0 -0
  951. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gt.png +0 -0
  952. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gu.png +0 -0
  953. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gw.png +0 -0
  954. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-gy.png +0 -0
  955. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hk.png +0 -0
  956. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hm.png +0 -0
  957. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hn.png +0 -0
  958. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hr.png +0 -0
  959. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ht.png +0 -0
  960. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-hu.png +0 -0
  961. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-id.png +0 -0
  962. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ie.png +0 -0
  963. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-il.png +0 -0
  964. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-im.png +0 -0
  965. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-in.png +0 -0
  966. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-io.png +0 -0
  967. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-iq.png +0 -0
  968. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ir.png +0 -0
  969. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-is.png +0 -0
  970. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-it.png +0 -0
  971. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-je.png +0 -0
  972. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jm.png +0 -0
  973. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jo.png +0 -0
  974. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-jp.png +0 -0
  975. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ke.png +0 -0
  976. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kg.png +0 -0
  977. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kh.png +0 -0
  978. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ki.png +0 -0
  979. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-km.png +0 -0
  980. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kn.png +0 -0
  981. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kp.png +0 -0
  982. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kr.png +0 -0
  983. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kw.png +0 -0
  984. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ky.png +0 -0
  985. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-kz.png +0 -0
  986. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-la.png +0 -0
  987. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lb.png +0 -0
  988. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lc.png +0 -0
  989. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-li.png +0 -0
  990. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lk.png +0 -0
  991. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lr.png +0 -0
  992. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ls.png +0 -0
  993. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lt.png +0 -0
  994. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lu.png +0 -0
  995. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-lv.png +0 -0
  996. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ly.png +0 -0
  997. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ma.png +0 -0
  998. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mc.png +0 -0
  999. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-md.png +0 -0
  1000. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-me.png +0 -0
  1001. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mf.png +0 -0
  1002. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mg.png +0 -0
  1003. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mh.png +0 -0
  1004. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mk.png +0 -0
  1005. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ml.png +0 -0
  1006. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mm.png +0 -0
  1007. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mn.png +0 -0
  1008. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mo.png +0 -0
  1009. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mp.png +0 -0
  1010. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mq.png +0 -0
  1011. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mr.png +0 -0
  1012. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ms.png +0 -0
  1013. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mt.png +0 -0
  1014. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mu.png +0 -0
  1015. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mv.png +0 -0
  1016. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mw.png +0 -0
  1017. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mx.png +0 -0
  1018. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-my.png +0 -0
  1019. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-mz.png +0 -0
  1020. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-na.png +0 -0
  1021. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nc.png +0 -0
  1022. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ne.png +0 -0
  1023. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nf.png +0 -0
  1024. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ng.png +0 -0
  1025. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ni.png +0 -0
  1026. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nl.png +0 -0
  1027. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-no.png +0 -0
  1028. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-np.png +0 -0
  1029. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nr.png +0 -0
  1030. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nu.png +0 -0
  1031. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-nz.png +0 -0
  1032. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-om.png +0 -0
  1033. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pa.png +0 -0
  1034. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pe.png +0 -0
  1035. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pf.png +0 -0
  1036. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pg.png +0 -0
  1037. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ph.png +0 -0
  1038. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pk.png +0 -0
  1039. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pl.png +0 -0
  1040. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pm.png +0 -0
  1041. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pn.png +0 -0
  1042. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pr.png +0 -0
  1043. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ps.png +0 -0
  1044. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pt.png +0 -0
  1045. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-pw.png +0 -0
  1046. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-py.png +0 -0
  1047. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-qa.png +0 -0
  1048. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-re.png +0 -0
  1049. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ro.png +0 -0
  1050. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rs.png +0 -0
  1051. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ru.png +0 -0
  1052. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-rw.png +0 -0
  1053. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sa.png +0 -0
  1054. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sb.png +0 -0
  1055. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sc.png +0 -0
  1056. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sd.png +0 -0
  1057. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-se.png +0 -0
  1058. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sg.png +0 -0
  1059. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sh.png +0 -0
  1060. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-si.png +0 -0
  1061. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sj.png +0 -0
  1062. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sk.png +0 -0
  1063. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sl.png +0 -0
  1064. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sm.png +0 -0
  1065. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sn.png +0 -0
  1066. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-so.png +0 -0
  1067. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sr.png +0 -0
  1068. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-st.png +0 -0
  1069. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sv.png +0 -0
  1070. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sy.png +0 -0
  1071. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-sz.png +0 -0
  1072. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tc.png +0 -0
  1073. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-td.png +0 -0
  1074. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tf.png +0 -0
  1075. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tg.png +0 -0
  1076. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-th.png +0 -0
  1077. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tj.png +0 -0
  1078. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tk.png +0 -0
  1079. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tl.png +0 -0
  1080. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tm.png +0 -0
  1081. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tn.png +0 -0
  1082. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-to.png +0 -0
  1083. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tr.png +0 -0
  1084. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tt.png +0 -0
  1085. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tv.png +0 -0
  1086. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tw.png +0 -0
  1087. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-tz.png +0 -0
  1088. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ua.png +0 -0
  1089. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ug.png +0 -0
  1090. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-um.png +0 -0
  1091. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-us.png +0 -0
  1092. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uy.png +0 -0
  1093. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-uz.png +0 -0
  1094. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-va.png +0 -0
  1095. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vc.png +0 -0
  1096. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ve.png +0 -0
  1097. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vg.png +0 -0
  1098. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vi.png +0 -0
  1099. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vn.png +0 -0
  1100. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-vu.png +0 -0
  1101. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-wf.png +0 -0
  1102. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ws.png +0 -0
  1103. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-ye.png +0 -0
  1104. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-za.png +0 -0
  1105. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zm.png +0 -0
  1106. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/flags/flag-zw.png +0 -0
  1107. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings-white.png +0 -0
  1108. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/glyphicons-halflings.png +0 -0
  1109. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/important-icon.png +0 -0
  1110. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/information-icon.png +0 -0
  1111. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/internet-web-browser.png +0 -0
  1112. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon-shrunk.png +0 -0
  1113. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.png +0 -0
  1114. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-icon.svg +0 -0
  1115. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon-tiny.png +0 -0
  1116. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/multiple-file-list-icon.png +0 -0
  1117. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/navigation.png +0 -0
  1118. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon-tiny.png +0 -0
  1119. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/person-list-icon.png +0 -0
  1120. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy-logo.png +0 -0
  1121. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipy_org_logo.gif +0 -0
  1122. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipycentral_logo.png +0 -0
  1123. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/scipyshiny_small.png +0 -0
  1124. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/send-email-icon.png +0 -0
  1125. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon-shrunk.png +0 -0
  1126. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.png +0 -0
  1127. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-icon.svg +0 -0
  1128. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiniest.png +0 -0
  1129. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon-tiny.png +0 -0
  1130. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/single-file-list-icon.png +0 -0
  1131. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/transparent-pixel.gif +0 -0
  1132. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/img/ui-anim_basic_16x16.gif +0 -0
  1133. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/js/copybutton.js +0 -0
  1134. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/accordion.less +0 -0
  1135. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/alerts.less +0 -0
  1136. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/bootstrap.less +0 -0
  1137. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/breadcrumbs.less +0 -0
  1138. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/button-groups.less +0 -0
  1139. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/buttons.less +0 -0
  1140. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/carousel.less +0 -0
  1141. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/close.less +0 -0
  1142. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/code.less +0 -0
  1143. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/component-animations.less +0 -0
  1144. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/dropdowns.less +0 -0
  1145. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/forms.less +0 -0
  1146. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/grid.less +0 -0
  1147. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/hero-unit.less +0 -0
  1148. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/labels-badges.less +0 -0
  1149. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/layouts.less +0 -0
  1150. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/media.less +0 -0
  1151. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/mixins.less +0 -0
  1152. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/modals.less +0 -0
  1153. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navbar.less +0 -0
  1154. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/navs.less +0 -0
  1155. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pager.less +0 -0
  1156. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/pagination.less +0 -0
  1157. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/popovers.less +0 -0
  1158. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/progress-bars.less +0 -0
  1159. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/reset.less +0 -0
  1160. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-1200px-min.less +0 -0
  1161. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-767px-max.less +0 -0
  1162. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-768px-979px.less +0 -0
  1163. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-navbar.less +0 -0
  1164. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive-utilities.less +0 -0
  1165. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/responsive.less +0 -0
  1166. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/scaffolding.less +0 -0
  1167. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/sprites.less +0 -0
  1168. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tables.less +0 -0
  1169. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/thumbnails.less +0 -0
  1170. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/tooltip.less +0 -0
  1171. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/type.less +0 -0
  1172. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/utilities.less +0 -0
  1173. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/variables.less +0 -0
  1174. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/bootstrap/wells.less +0 -0
  1175. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-bootstrap.less +0 -0
  1176. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-content.less +0 -0
  1177. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-extend.less +0 -0
  1178. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-footer.less +0 -0
  1179. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-header.less +0 -0
  1180. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-rightsidebar.less +0 -0
  1181. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/less/spc-utils.less +0 -0
  1182. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/static/scipy.css_t +0 -0
  1183. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/_theme/scipy/theme.conf +0 -0
  1184. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/conf.py +0 -0
  1185. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/index.rst +0 -0
  1186. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc.rst +0 -0
  1187. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_2.rst +0 -0
  1188. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_3.rst +0 -0
  1189. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_autodoc_4.rst +0 -0
  1190. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/scipy-sphinx-theme/test_optimize.rst +0 -0
  1191. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/autosummary/class.rst +0 -0
  1192. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/indexcontent.html +0 -0
  1193. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/indexsidebar.html +0 -0
  1194. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/_templates/layout.html +0 -0
  1195. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/about.rst +0 -0
  1196. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/bugs.rst +0 -0
  1197. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/contents.rst +0 -0
  1198. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/configure_git.rst +0 -0
  1199. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/development_setup.rst +0 -0
  1200. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/dot2_dot3.rst +0 -0
  1201. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/following_latest.rst +0 -0
  1202. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/forking_button.png +0 -0
  1203. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_development.rst +0 -0
  1204. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_intro.rst +0 -0
  1205. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/git_resources.rst +0 -0
  1206. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash/pull_button.png +0 -0
  1207. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/dev/gitwash_links.txt +0 -0
  1208. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/advanced.rst +0 -0
  1209. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/allocarr.f90 +0 -0
  1210. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/allocarr_session.dat +0 -0
  1211. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/array.f +0 -0
  1212. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/array_session.dat +0 -0
  1213. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/calculate.f +0 -0
  1214. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/calculate_session.dat +0 -0
  1215. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/callback.f +0 -0
  1216. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/callback2.pyf +0 -0
  1217. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/callback_session.dat +0 -0
  1218. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/common.f +0 -0
  1219. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/common_session.dat +0 -0
  1220. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/compile_session.dat +0 -0
  1221. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/distutils.rst +0 -0
  1222. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/extcallback.f +0 -0
  1223. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/extcallback_session.dat +0 -0
  1224. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib1.f +0 -0
  1225. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib1.pyf +0 -0
  1226. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib2.pyf +0 -0
  1227. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/fib3.f +0 -0
  1228. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/ftype.f +0 -0
  1229. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/ftype_session.dat +0 -0
  1230. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/getting-started.rst +0 -0
  1231. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/index.rst +0 -0
  1232. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/moddata.f90 +0 -0
  1233. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/moddata_session.dat +0 -0
  1234. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/python-usage.rst +0 -0
  1235. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/run_main_session.dat +0 -0
  1236. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/scalar.f +0 -0
  1237. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/scalar_session.dat +0 -0
  1238. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/setup_example.py +0 -0
  1239. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/signature-file.rst +0 -0
  1240. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/spam.pyf +0 -0
  1241. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/spam_session.dat +0 -0
  1242. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/string.f +0 -0
  1243. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/string_session.dat +0 -0
  1244. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/usage.rst +0 -0
  1245. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/var.pyf +0 -0
  1246. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/f2py/var_session.dat +0 -0
  1247. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/glossary.rst +0 -0
  1248. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/license.rst +0 -0
  1249. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal.rst +0 -0
  1250. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/datetime-proposal3.rst +0 -0
  1251. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/deferred-ufunc-evaluation.rst +0 -0
  1252. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/generalized-ufuncs.rst +0 -0
  1253. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/groupby_additions.rst +0 -0
  1254. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/index.rst +0 -0
  1255. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/math_config_clean.rst +0 -0
  1256. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/missing-data.rst +0 -0
  1257. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/new-iterator-ufunc.rst +0 -0
  1258. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/newbugtracker.rst +0 -0
  1259. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/npy-format.rst +0 -0
  1260. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/structured_array_extensions.rst +0 -0
  1261. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/ufunc-overrides.rst +0 -0
  1262. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/neps/warnfix.rst +0 -0
  1263. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/arrays.datetime.rst +0 -0
  1264. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/arrays.nditer.rst +0 -0
  1265. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/arrays.rst +0 -0
  1266. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/c-api.deprecations.rst +0 -0
  1267. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/c-api.rst +0 -0
  1268. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/distutils.rst +0 -0
  1269. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.dia +0 -0
  1270. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.pdf +0 -0
  1271. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/dtype-hierarchy.png +0 -0
  1272. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.fig +0 -0
  1273. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.pdf +0 -0
  1274. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/figures/threefundamental.png +0 -0
  1275. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/internals.rst +0 -0
  1276. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.baseclass.rst +0 -0
  1277. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.generic.rst +0 -0
  1278. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/maskedarray.rst +0 -0
  1279. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.array-creation.rst +0 -0
  1280. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.bitwise.rst +0 -0
  1281. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.char.rst +0 -0
  1282. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.ctypeslib.rst +0 -0
  1283. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.datetime.rst +0 -0
  1284. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.dtype.rst +0 -0
  1285. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.dual.rst +0 -0
  1286. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.emath.rst +0 -0
  1287. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.err.rst +0 -0
  1288. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.fft.rst +0 -0
  1289. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.financial.rst +0 -0
  1290. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.functional.rst +0 -0
  1291. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.help.rst +0 -0
  1292. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.indexing.rst +0 -0
  1293. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.logic.rst +0 -0
  1294. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.math.rst +0 -0
  1295. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.matlib.rst +0 -0
  1296. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.numarray.rst +0 -0
  1297. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.oldnumeric.rst +0 -0
  1298. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.other.rst +0 -0
  1299. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.padding.rst +0 -0
  1300. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.chebyshev.rst +0 -0
  1301. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.classes.rst +0 -0
  1302. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite.rst +0 -0
  1303. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.hermite_e.rst +0 -0
  1304. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.laguerre.rst +0 -0
  1305. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.legendre.rst +0 -0
  1306. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.package.rst +0 -0
  1307. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.poly1d.rst +0 -0
  1308. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.polynomial.rst +0 -0
  1309. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.polynomials.rst +0 -0
  1310. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.random.rst +0 -0
  1311. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.rst +0 -0
  1312. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.set.rst +0 -0
  1313. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.testing.rst +0 -0
  1314. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/routines.window.rst +0 -0
  1315. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/reference/swig.rst +0 -0
  1316. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.broadcasting.rst +0 -0
  1317. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.byteswapping.rst +0 -0
  1318. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.creation.rst +0 -0
  1319. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.indexing.rst +0 -0
  1320. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.io.rst +0 -0
  1321. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.rst +0 -0
  1322. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.subclassing.rst +0 -0
  1323. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/basics.types.rst +0 -0
  1324. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/c-info.rst +0 -0
  1325. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/howtofind.rst +0 -0
  1326. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/index.rst +0 -0
  1327. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/introduction.rst +0 -0
  1328. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/misc.rst +0 -0
  1329. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/performance.rst +0 -0
  1330. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/source/user/whatisnumpy.rst +0 -0
  1331. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/.gitignore +0 -0
  1332. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/.travis.yml +0 -0
  1333. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/LICENSE.txt +0 -0
  1334. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/MANIFEST.in +0 -0
  1335. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/README.rst +0 -0
  1336. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/__init__.py +0 -0
  1337. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/comment_eater.py +0 -0
  1338. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/compiler_unparse.py +0 -0
  1339. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape.py +0 -0
  1340. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/docscrape_sphinx.py +0 -0
  1341. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/linkcode.py +0 -0
  1342. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/numpydoc.py +0 -0
  1343. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/phantom_import.py +0 -0
  1344. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/plot_directive.py +0 -0
  1345. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_docscrape.py +0 -0
  1346. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_linkcode.py +0 -0
  1347. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_phantom_import.py +0 -0
  1348. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_plot_directive.py +0 -0
  1349. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/tests/test_traitsdoc.py +0 -0
  1350. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/numpydoc/traitsdoc.py +0 -0
  1351. {numpy-1.9.2 → numpy-1.10.0.post2}/doc/sphinxext/setup.py +0 -0
  1352. {numpy-1.9.2/numpy/core/code_generators → numpy-1.10.0.post2/numpy/_build_utils}/__init__.py +0 -0
  1353. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/compat/__init__.py +0 -0
  1354. {numpy-1.9.2/numpy/distutils/tests/f2py_ext → numpy-1.10.0.post2/numpy/core/code_generators}/__init__.py +0 -0
  1355. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/code_generators/genapi.py +0 -0
  1356. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/code_generators/generate_numpy_api.py +0 -0
  1357. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/cversions.py +0 -0
  1358. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/_neighborhood_iterator_imp.h +0 -0
  1359. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/_numpyconfig.h.in +0 -0
  1360. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayobject.h +0 -0
  1361. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/arrayscalars.h +0 -0
  1362. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/halffloat.h +0 -0
  1363. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/noprefix.h +0 -0
  1364. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_1_7_deprecated_api.h +0 -0
  1365. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_interrupt.h +0 -0
  1366. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_no_deprecated_api.h +0 -0
  1367. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/npy_os.h +0 -0
  1368. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/old_defines.h +0 -0
  1369. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/oldnumeric.h +0 -0
  1370. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/ufuncobject.h +0 -0
  1371. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/include/numpy/utils.h +0 -0
  1372. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/info.py +0 -0
  1373. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/mlib.ini.in +0 -0
  1374. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/npymath.ini.in +0 -0
  1375. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/dummymodule.c +0 -0
  1376. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/_datetime.h +0 -0
  1377. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/alloc.h +0 -0
  1378. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.c +0 -0
  1379. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign.h +0 -0
  1380. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_array.c +0 -0
  1381. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/array_assign_scalar.c +0 -0
  1382. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/arrayobject.h +0 -0
  1383. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/buffer.h +0 -0
  1384. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/calculation.h +0 -0
  1385. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/conversion_utils.h +0 -0
  1386. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert.h +0 -0
  1387. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/convert_datatype.h +0 -0
  1388. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ctors.h +0 -0
  1389. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busday.h +0 -0
  1390. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_busdaycal.h +0 -0
  1391. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/datetime_strings.h +0 -0
  1392. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/descriptor.h +0 -0
  1393. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/flagsobject.c +0 -0
  1394. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/getset.h +0 -0
  1395. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/hashdescr.h +0 -0
  1396. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/item_selection.h +0 -0
  1397. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/iterators.h +0 -0
  1398. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/methods.h +0 -0
  1399. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_impl.h +0 -0
  1400. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_pywrap.h +0 -0
  1401. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/nditer_templ.c.src +0 -0
  1402. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpymemoryview.h +0 -0
  1403. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/numpyos.h +0 -0
  1404. {numpy-1.9.2/numpy/core/blasdot → numpy-1.10.0.post2/numpy/core/src/multiarray}/python_xerbla.c +0 -0
  1405. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.c +0 -0
  1406. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/refcount.h +0 -0
  1407. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.c +0 -0
  1408. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/sequence.h +0 -0
  1409. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/shape.h +0 -0
  1410. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/ucsnarrow.h +0 -0
  1411. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.c +0 -0
  1412. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/multiarray/usertypes.h +0 -0
  1413. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npymath/_signbit.c +0 -0
  1414. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npymath/halffloat.c +0 -0
  1415. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npymath/npy_math_common.h +0 -0
  1416. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/npysort/binsearch.c.src +0 -0
  1417. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/lowlevel_strided_loops.h +0 -0
  1418. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/npy_binsearch.h.src +0 -0
  1419. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/npy_fpmath.h +0 -0
  1420. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/private/npy_pycompat.h +0 -0
  1421. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.c +0 -0
  1422. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/reduction.h +0 -0
  1423. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/struct_ufunc_test.c.src +0 -0
  1424. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_object.h +0 -0
  1425. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/src/umath/ufunc_type_resolution.h +0 -0
  1426. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/tests/data/astype_copy.pkl +0 -0
  1427. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/tests/data/recarray_from_file.fits +0 -0
  1428. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/core/tests/test_scalarprint.py +0 -0
  1429. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/ctypeslib.py +0 -0
  1430. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/__version__.py +0 -0
  1431. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/__init__.py +0 -0
  1432. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/bdist_rpm.py +0 -0
  1433. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/build_py.py +0 -0
  1434. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/build_scripts.py +0 -0
  1435. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/build_src.py +0 -0
  1436. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/config_compiler.py +0 -0
  1437. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/develop.py +0 -0
  1438. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/egg_info.py +0 -0
  1439. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install.py +0 -0
  1440. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install_clib.py +0 -0
  1441. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install_data.py +0 -0
  1442. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/install_headers.py +0 -0
  1443. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/command/sdist.py +0 -0
  1444. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/compat.py +0 -0
  1445. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/conv_template.py +0 -0
  1446. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/core.py +0 -0
  1447. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/cpuinfo.py +0 -0
  1448. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/environment.py +0 -0
  1449. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/extension.py +0 -0
  1450. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/__init__.py +0 -0
  1451. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/absoft.py +0 -0
  1452. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/g95.py +0 -0
  1453. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/hpux.py +0 -0
  1454. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/ibm.py +0 -0
  1455. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/lahey.py +0 -0
  1456. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/mips.py +0 -0
  1457. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/nag.py +0 -0
  1458. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/none.py +0 -0
  1459. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/pathf95.py +0 -0
  1460. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/fcompiler/vast.py +0 -0
  1461. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/from_template.py +0 -0
  1462. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/info.py +0 -0
  1463. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/line_endings.py +0 -0
  1464. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/log.py +0 -0
  1465. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/mingw/gfortran_vs2003_hack.c +0 -0
  1466. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/numpy_distribution.py +0 -0
  1467. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/pathccompiler.py +0 -0
  1468. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/setup.py +0 -0
  1469. {numpy-1.9.2/numpy/distutils/tests/f2py_f90_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_ext}/__init__.py +0 -0
  1470. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/setup.py +0 -0
  1471. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib1.f +0 -0
  1472. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_ext/src/fib2.pyf +0 -0
  1473. {numpy-1.9.2/numpy/distutils/tests/gen_ext → numpy-1.10.0.post2/numpy/distutils/tests/f2py_f90_ext}/__init__.py +0 -0
  1474. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/include/body.f90 +0 -0
  1475. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/setup.py +0 -0
  1476. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/f2py_f90_ext/src/foo_free.f90 +0 -0
  1477. {numpy-1.9.2/numpy/distutils/tests/pyrex_ext → numpy-1.10.0.post2/numpy/distutils/tests/gen_ext}/__init__.py +0 -0
  1478. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/gen_ext/setup.py +0 -0
  1479. {numpy-1.9.2/numpy/distutils/tests/swig_ext → numpy-1.10.0.post2/numpy/distutils/tests/pyrex_ext}/__init__.py +0 -0
  1480. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/primes.pyx +0 -0
  1481. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/pyrex_ext/setup.py +0 -0
  1482. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/setup.py +0 -0
  1483. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/setup.py +0 -0
  1484. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.c +0 -0
  1485. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/example.i +0 -0
  1486. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.cc +0 -0
  1487. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.h +0 -0
  1488. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/swig_ext/src/zoo.i +0 -0
  1489. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/distutils/tests/test_exec_command.py +0 -0
  1490. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/__init__.py +0 -0
  1491. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/basics.py +0 -0
  1492. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/broadcasting.py +0 -0
  1493. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/constants.py +0 -0
  1494. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/howtofind.py +0 -0
  1495. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/internals.py +0 -0
  1496. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/io.py +0 -0
  1497. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/jargon.py +0 -0
  1498. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/methods_vs_functions.py +0 -0
  1499. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/misc.py +0 -0
  1500. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/performance.py +0 -0
  1501. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/subclassing.py +0 -0
  1502. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/doc/ufuncs.py +0 -0
  1503. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/dual.py +0 -0
  1504. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/__version__.py +0 -0
  1505. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/info.py +0 -0
  1506. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/.f2py_f2cmap +0 -0
  1507. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_free.f90 +0 -0
  1508. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_mod.f90 +0 -0
  1509. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/foo_use.f90 +0 -0
  1510. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/assumed_shape/precision.f90 +0 -0
  1511. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/kind/foo.f90 +0 -0
  1512. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo.f +0 -0
  1513. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_fixed.f90 +0 -0
  1514. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/mixed/foo_free.f90 +0 -0
  1515. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/regression/inout.f90 +0 -0
  1516. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/f2py/tests/src/size/foo.f90 +0 -0
  1517. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/fft/__init__.py +0 -0
  1518. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/fft/helper.py +0 -0
  1519. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/__init__.py +0 -0
  1520. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/_datasource.py +0 -0
  1521. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/_version.py +0 -0
  1522. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/scimath.py +0 -0
  1523. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/data/python3.npy +0 -0
  1524. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/data/win64python2.npy +0 -0
  1525. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test__datasource.py +0 -0
  1526. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_arrayterator.py +0 -0
  1527. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_regression.py +0 -0
  1528. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_ufunclike.py +0 -0
  1529. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/tests/test_utils.py +0 -0
  1530. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/ufunclike.py +0 -0
  1531. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/lib/user_array.py +0 -0
  1532. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/__init__.py +0 -0
  1533. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/info.py +0 -0
  1534. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/blas_lite.c +0 -0
  1535. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlamch.c +0 -0
  1536. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/dlapack_lite.c +0 -0
  1537. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c.h +0 -0
  1538. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/f2c_lite.c +0 -0
  1539. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/lapack_lite/zlapack_lite.c +0 -0
  1540. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/setup.py +0 -0
  1541. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/linalg/tests/test_deprecations.py +0 -0
  1542. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/ma/version.py +0 -0
  1543. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/matrixlib/__init__.py +0 -0
  1544. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/matrixlib/setup.py +0 -0
  1545. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/__init__.py +0 -0
  1546. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/polynomial.py +0 -0
  1547. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/setup.py +0 -0
  1548. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_chebyshev.py +0 -0
  1549. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_classes.py +0 -0
  1550. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite.py +0 -0
  1551. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_hermite_e.py +0 -0
  1552. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_laguerre.py +0 -0
  1553. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_legendre.py +0 -0
  1554. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polynomial.py +0 -0
  1555. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_polyutils.py +0 -0
  1556. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/polynomial/tests/test_printing.py +0 -0
  1557. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/__init__.py +0 -0
  1558. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/info.py +0 -0
  1559. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/Python.pxi +0 -0
  1560. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/distributions.h +0 -0
  1561. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/generate_mtrand_c.py +0 -0
  1562. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.c +0 -0
  1563. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/initarray.h +0 -0
  1564. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/mtrand_py_helper.h +0 -0
  1565. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/numpy.pxd +0 -0
  1566. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.c +0 -0
  1567. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/random/mtrand/randomkit.h +0 -0
  1568. {numpy-1.9.2 → numpy-1.10.0.post2}/numpy/testing/tests/test_doctesting.py +0 -0
  1569. {numpy-1.9.2 → numpy-1.10.0.post2}/setupegg.py +0 -0
  1570. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/Makefile +0 -0
  1571. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/pyfragments.swg +0 -0
  1572. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array1.cxx +0 -0
  1573. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array1.h +0 -0
  1574. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array2.cxx +0 -0
  1575. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Array2.h +0 -0
  1576. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Farray.cxx +0 -0
  1577. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Farray.h +0 -0
  1578. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Farray.i +0 -0
  1579. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Fortran.cxx +0 -0
  1580. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Fortran.h +0 -0
  1581. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Fortran.i +0 -0
  1582. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Matrix.cxx +0 -0
  1583. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Matrix.h +0 -0
  1584. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Matrix.i +0 -0
  1585. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.cxx +0 -0
  1586. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.h +0 -0
  1587. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/SuperTensor.i +0 -0
  1588. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Tensor.cxx +0 -0
  1589. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Tensor.h +0 -0
  1590. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Tensor.i +0 -0
  1591. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Vector.cxx +0 -0
  1592. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Vector.h +0 -0
  1593. {numpy-1.9.2 → numpy-1.10.0.post2}/tools/swig/test/Vector.i +0 -0
@@ -0,0 +1,2555 @@
1
+ from __future__ import division, absolute_import, print_function
2
+
3
+ import warnings
4
+ import sys
5
+
6
+ import numpy as np
7
+ from numpy.testing import (
8
+ run_module_suite, TestCase, assert_, assert_equal, assert_array_equal,
9
+ assert_almost_equal, assert_array_almost_equal, assert_raises,
10
+ assert_allclose, assert_array_max_ulp, assert_warns,
11
+ assert_raises_regex, dec, clear_and_catch_warnings
12
+ )
13
+ import numpy.lib.function_base as nfb
14
+ from numpy.random import rand
15
+ from numpy.lib import (
16
+ add_newdoc_ufunc, angle, average, bartlett, blackman, corrcoef, cov,
17
+ delete, diff, digitize, extract, flipud, gradient, hamming, hanning,
18
+ histogram, histogramdd, i0, insert, interp, kaiser, meshgrid, msort,
19
+ piecewise, place, select, setxor1d, sinc, split, trapz, trim_zeros,
20
+ unwrap, unique, vectorize,
21
+ )
22
+
23
+ from numpy.compat import long
24
+
25
+
26
+ class TestAny(TestCase):
27
+
28
+ def test_basic(self):
29
+ y1 = [0, 0, 1, 0]
30
+ y2 = [0, 0, 0, 0]
31
+ y3 = [1, 0, 1, 0]
32
+ assert_(np.any(y1))
33
+ assert_(np.any(y3))
34
+ assert_(not np.any(y2))
35
+
36
+ def test_nd(self):
37
+ y1 = [[0, 0, 0], [0, 1, 0], [1, 1, 0]]
38
+ assert_(np.any(y1))
39
+ assert_array_equal(np.sometrue(y1, axis=0), [1, 1, 0])
40
+ assert_array_equal(np.sometrue(y1, axis=1), [0, 1, 1])
41
+
42
+
43
+ class TestAll(TestCase):
44
+
45
+ def test_basic(self):
46
+ y1 = [0, 1, 1, 0]
47
+ y2 = [0, 0, 0, 0]
48
+ y3 = [1, 1, 1, 1]
49
+ assert_(not np.all(y1))
50
+ assert_(np.all(y3))
51
+ assert_(not np.all(y2))
52
+ assert_(np.all(~np.array(y2)))
53
+
54
+ def test_nd(self):
55
+ y1 = [[0, 0, 1], [0, 1, 1], [1, 1, 1]]
56
+ assert_(not np.all(y1))
57
+ assert_array_equal(np.alltrue(y1, axis=0), [0, 0, 1])
58
+ assert_array_equal(np.alltrue(y1, axis=1), [0, 0, 1])
59
+
60
+
61
+ class TestCopy(TestCase):
62
+
63
+ def test_basic(self):
64
+ a = np.array([[1, 2], [3, 4]])
65
+ a_copy = np.copy(a)
66
+ assert_array_equal(a, a_copy)
67
+ a_copy[0, 0] = 10
68
+ assert_equal(a[0, 0], 1)
69
+ assert_equal(a_copy[0, 0], 10)
70
+
71
+ def test_order(self):
72
+ # It turns out that people rely on np.copy() preserving order by
73
+ # default; changing this broke scikit-learn:
74
+ # https://github.com/scikit-learn/scikit-learn/commit/7842748cf777412c506a8c0ed28090711d3a3783
75
+ a = np.array([[1, 2], [3, 4]])
76
+ assert_(a.flags.c_contiguous)
77
+ assert_(not a.flags.f_contiguous)
78
+ a_fort = np.array([[1, 2], [3, 4]], order="F")
79
+ assert_(not a_fort.flags.c_contiguous)
80
+ assert_(a_fort.flags.f_contiguous)
81
+ a_copy = np.copy(a)
82
+ assert_(a_copy.flags.c_contiguous)
83
+ assert_(not a_copy.flags.f_contiguous)
84
+ a_fort_copy = np.copy(a_fort)
85
+ assert_(not a_fort_copy.flags.c_contiguous)
86
+ assert_(a_fort_copy.flags.f_contiguous)
87
+
88
+
89
+ class TestAverage(TestCase):
90
+
91
+ def test_basic(self):
92
+ y1 = np.array([1, 2, 3])
93
+ assert_(average(y1, axis=0) == 2.)
94
+ y2 = np.array([1., 2., 3.])
95
+ assert_(average(y2, axis=0) == 2.)
96
+ y3 = [0., 0., 0.]
97
+ assert_(average(y3, axis=0) == 0.)
98
+
99
+ y4 = np.ones((4, 4))
100
+ y4[0, 1] = 0
101
+ y4[1, 0] = 2
102
+ assert_almost_equal(y4.mean(0), average(y4, 0))
103
+ assert_almost_equal(y4.mean(1), average(y4, 1))
104
+
105
+ y5 = rand(5, 5)
106
+ assert_almost_equal(y5.mean(0), average(y5, 0))
107
+ assert_almost_equal(y5.mean(1), average(y5, 1))
108
+
109
+ y6 = np.matrix(rand(5, 5))
110
+ assert_array_equal(y6.mean(0), average(y6, 0))
111
+
112
+ def test_weights(self):
113
+ y = np.arange(10)
114
+ w = np.arange(10)
115
+ actual = average(y, weights=w)
116
+ desired = (np.arange(10) ** 2).sum() * 1. / np.arange(10).sum()
117
+ assert_almost_equal(actual, desired)
118
+
119
+ y1 = np.array([[1, 2, 3], [4, 5, 6]])
120
+ w0 = [1, 2]
121
+ actual = average(y1, weights=w0, axis=0)
122
+ desired = np.array([3., 4., 5.])
123
+ assert_almost_equal(actual, desired)
124
+
125
+ w1 = [0, 0, 1]
126
+ actual = average(y1, weights=w1, axis=1)
127
+ desired = np.array([3., 6.])
128
+ assert_almost_equal(actual, desired)
129
+
130
+ # This should raise an error. Can we test for that ?
131
+ # assert_equal(average(y1, weights=w1), 9./2.)
132
+
133
+ # 2D Case
134
+ w2 = [[0, 0, 1], [0, 0, 2]]
135
+ desired = np.array([3., 6.])
136
+ assert_array_equal(average(y1, weights=w2, axis=1), desired)
137
+ assert_equal(average(y1, weights=w2), 5.)
138
+
139
+ y3 = rand(5).astype(np.float32)
140
+ w3 = rand(5).astype(np.float64)
141
+
142
+ assert_(np.average(y3, weights=w3).dtype == np.result_type(y3, w3))
143
+
144
+ def test_returned(self):
145
+ y = np.array([[1, 2, 3], [4, 5, 6]])
146
+
147
+ # No weights
148
+ avg, scl = average(y, returned=True)
149
+ assert_equal(scl, 6.)
150
+
151
+ avg, scl = average(y, 0, returned=True)
152
+ assert_array_equal(scl, np.array([2., 2., 2.]))
153
+
154
+ avg, scl = average(y, 1, returned=True)
155
+ assert_array_equal(scl, np.array([3., 3.]))
156
+
157
+ # With weights
158
+ w0 = [1, 2]
159
+ avg, scl = average(y, weights=w0, axis=0, returned=True)
160
+ assert_array_equal(scl, np.array([3., 3., 3.]))
161
+
162
+ w1 = [1, 2, 3]
163
+ avg, scl = average(y, weights=w1, axis=1, returned=True)
164
+ assert_array_equal(scl, np.array([6., 6.]))
165
+
166
+ w2 = [[0, 0, 1], [1, 2, 3]]
167
+ avg, scl = average(y, weights=w2, axis=1, returned=True)
168
+ assert_array_equal(scl, np.array([1., 6.]))
169
+
170
+
171
+ class TestSelect(TestCase):
172
+ choices = [np.array([1, 2, 3]),
173
+ np.array([4, 5, 6]),
174
+ np.array([7, 8, 9])]
175
+ conditions = [np.array([False, False, False]),
176
+ np.array([False, True, False]),
177
+ np.array([False, False, True])]
178
+
179
+ def _select(self, cond, values, default=0):
180
+ output = []
181
+ for m in range(len(cond)):
182
+ output += [V[m] for V, C in zip(values, cond) if C[m]] or [default]
183
+ return output
184
+
185
+ def test_basic(self):
186
+ choices = self.choices
187
+ conditions = self.conditions
188
+ assert_array_equal(select(conditions, choices, default=15),
189
+ self._select(conditions, choices, default=15))
190
+
191
+ assert_equal(len(choices), 3)
192
+ assert_equal(len(conditions), 3)
193
+
194
+ def test_broadcasting(self):
195
+ conditions = [np.array(True), np.array([False, True, False])]
196
+ choices = [1, np.arange(12).reshape(4, 3)]
197
+ assert_array_equal(select(conditions, choices), np.ones((4, 3)))
198
+ # default can broadcast too:
199
+ assert_equal(select([True], [0], default=[0]).shape, (1,))
200
+
201
+ def test_return_dtype(self):
202
+ assert_equal(select(self.conditions, self.choices, 1j).dtype,
203
+ np.complex_)
204
+ # But the conditions need to be stronger then the scalar default
205
+ # if it is scalar.
206
+ choices = [choice.astype(np.int8) for choice in self.choices]
207
+ assert_equal(select(self.conditions, choices).dtype, np.int8)
208
+
209
+ d = np.array([1, 2, 3, np.nan, 5, 7])
210
+ m = np.isnan(d)
211
+ assert_equal(select([m], [d]), [0, 0, 0, np.nan, 0, 0])
212
+
213
+ def test_deprecated_empty(self):
214
+ with warnings.catch_warnings(record=True):
215
+ warnings.simplefilter("always")
216
+ assert_equal(select([], [], 3j), 3j)
217
+
218
+ with warnings.catch_warnings():
219
+ warnings.simplefilter("always")
220
+ assert_warns(DeprecationWarning, select, [], [])
221
+ warnings.simplefilter("error")
222
+ assert_raises(DeprecationWarning, select, [], [])
223
+
224
+ def test_non_bool_deprecation(self):
225
+ choices = self.choices
226
+ conditions = self.conditions[:]
227
+ with warnings.catch_warnings():
228
+ warnings.filterwarnings("always")
229
+ conditions[0] = conditions[0].astype(np.int_)
230
+ assert_warns(DeprecationWarning, select, conditions, choices)
231
+ conditions[0] = conditions[0].astype(np.uint8)
232
+ assert_warns(DeprecationWarning, select, conditions, choices)
233
+ warnings.filterwarnings("error")
234
+ assert_raises(DeprecationWarning, select, conditions, choices)
235
+
236
+ def test_many_arguments(self):
237
+ # This used to be limited by NPY_MAXARGS == 32
238
+ conditions = [np.array([False])] * 100
239
+ choices = [np.array([1])] * 100
240
+ select(conditions, choices)
241
+
242
+
243
+ class TestInsert(TestCase):
244
+
245
+ def test_basic(self):
246
+ a = [1, 2, 3]
247
+ assert_equal(insert(a, 0, 1), [1, 1, 2, 3])
248
+ assert_equal(insert(a, 3, 1), [1, 2, 3, 1])
249
+ assert_equal(insert(a, [1, 1, 1], [1, 2, 3]), [1, 1, 2, 3, 2, 3])
250
+ assert_equal(insert(a, 1, [1, 2, 3]), [1, 1, 2, 3, 2, 3])
251
+ assert_equal(insert(a, [1, -1, 3], 9), [1, 9, 2, 9, 3, 9])
252
+ assert_equal(insert(a, slice(-1, None, -1), 9), [9, 1, 9, 2, 9, 3])
253
+ assert_equal(insert(a, [-1, 1, 3], [7, 8, 9]), [1, 8, 2, 7, 3, 9])
254
+ b = np.array([0, 1], dtype=np.float64)
255
+ assert_equal(insert(b, 0, b[0]), [0., 0., 1.])
256
+ assert_equal(insert(b, [], []), b)
257
+ # Bools will be treated differently in the future:
258
+ #assert_equal(insert(a, np.array([True]*4), 9), [9,1,9,2,9,3,9])
259
+ with warnings.catch_warnings(record=True) as w:
260
+ warnings.filterwarnings('always', '', FutureWarning)
261
+ assert_equal(
262
+ insert(a, np.array([True] * 4), 9), [1, 9, 9, 9, 9, 2, 3])
263
+ assert_(w[0].category is FutureWarning)
264
+
265
+ def test_multidim(self):
266
+ a = [[1, 1, 1]]
267
+ r = [[2, 2, 2],
268
+ [1, 1, 1]]
269
+ assert_equal(insert(a, 0, [1]), [1, 1, 1, 1])
270
+ assert_equal(insert(a, 0, [2, 2, 2], axis=0), r)
271
+ assert_equal(insert(a, 0, 2, axis=0), r)
272
+ assert_equal(insert(a, 2, 2, axis=1), [[1, 1, 2, 1]])
273
+
274
+ a = np.array([[1, 1], [2, 2], [3, 3]])
275
+ b = np.arange(1, 4).repeat(3).reshape(3, 3)
276
+ c = np.concatenate(
277
+ (a[:, 0:1], np.arange(1, 4).repeat(3).reshape(3, 3).T,
278
+ a[:, 1:2]), axis=1)
279
+ assert_equal(insert(a, [1], [[1], [2], [3]], axis=1), b)
280
+ assert_equal(insert(a, [1], [1, 2, 3], axis=1), c)
281
+ # scalars behave differently, in this case exactly opposite:
282
+ assert_equal(insert(a, 1, [1, 2, 3], axis=1), b)
283
+ assert_equal(insert(a, 1, [[1], [2], [3]], axis=1), c)
284
+
285
+ a = np.arange(4).reshape(2, 2)
286
+ assert_equal(insert(a[:, :1], 1, a[:, 1], axis=1), a)
287
+ assert_equal(insert(a[:1,:], 1, a[1,:], axis=0), a)
288
+
289
+ # negative axis value
290
+ a = np.arange(24).reshape((2, 3, 4))
291
+ assert_equal(insert(a, 1, a[:,:, 3], axis=-1),
292
+ insert(a, 1, a[:,:, 3], axis=2))
293
+ assert_equal(insert(a, 1, a[:, 2,:], axis=-2),
294
+ insert(a, 1, a[:, 2,:], axis=1))
295
+
296
+ # invalid axis value
297
+ assert_raises(IndexError, insert, a, 1, a[:, 2,:], axis=3)
298
+ assert_raises(IndexError, insert, a, 1, a[:, 2,:], axis=-4)
299
+
300
+ # negative axis value
301
+ a = np.arange(24).reshape((2, 3, 4))
302
+ assert_equal(insert(a, 1, a[:,:, 3], axis=-1),
303
+ insert(a, 1, a[:,:, 3], axis=2))
304
+ assert_equal(insert(a, 1, a[:, 2,:], axis=-2),
305
+ insert(a, 1, a[:, 2,:], axis=1))
306
+
307
+ def test_0d(self):
308
+ # This is an error in the future
309
+ a = np.array(1)
310
+ with warnings.catch_warnings(record=True) as w:
311
+ warnings.filterwarnings('always', '', DeprecationWarning)
312
+ assert_equal(insert(a, [], 2, axis=0), np.array(2))
313
+ assert_(w[0].category is DeprecationWarning)
314
+
315
+ def test_subclass(self):
316
+ class SubClass(np.ndarray):
317
+ pass
318
+ a = np.arange(10).view(SubClass)
319
+ assert_(isinstance(np.insert(a, 0, [0]), SubClass))
320
+ assert_(isinstance(np.insert(a, [], []), SubClass))
321
+ assert_(isinstance(np.insert(a, [0, 1], [1, 2]), SubClass))
322
+ assert_(isinstance(np.insert(a, slice(1, 2), [1, 2]), SubClass))
323
+ assert_(isinstance(np.insert(a, slice(1, -2, -1), []), SubClass))
324
+ # This is an error in the future:
325
+ a = np.array(1).view(SubClass)
326
+ assert_(isinstance(np.insert(a, 0, [0]), SubClass))
327
+
328
+ def test_index_array_copied(self):
329
+ x = np.array([1, 1, 1])
330
+ np.insert([0, 1, 2], x, [3, 4, 5])
331
+ assert_equal(x, np.array([1, 1, 1]))
332
+
333
+ def test_structured_array(self):
334
+ a = np.array([(1, 'a'), (2, 'b'), (3, 'c')],
335
+ dtype=[('foo', 'i'), ('bar', 'a1')])
336
+ val = (4, 'd')
337
+ b = np.insert(a, 0, val)
338
+ assert_array_equal(b[0], np.array(val, dtype=b.dtype))
339
+ val = [(4, 'd')] * 2
340
+ b = np.insert(a, [0, 2], val)
341
+ assert_array_equal(b[[0, 3]], np.array(val, dtype=b.dtype))
342
+
343
+
344
+ class TestAmax(TestCase):
345
+
346
+ def test_basic(self):
347
+ a = [3, 4, 5, 10, -3, -5, 6.0]
348
+ assert_equal(np.amax(a), 10.0)
349
+ b = [[3, 6.0, 9.0],
350
+ [4, 10.0, 5.0],
351
+ [8, 3.0, 2.0]]
352
+ assert_equal(np.amax(b, axis=0), [8.0, 10.0, 9.0])
353
+ assert_equal(np.amax(b, axis=1), [9.0, 10.0, 8.0])
354
+
355
+
356
+ class TestAmin(TestCase):
357
+
358
+ def test_basic(self):
359
+ a = [3, 4, 5, 10, -3, -5, 6.0]
360
+ assert_equal(np.amin(a), -5.0)
361
+ b = [[3, 6.0, 9.0],
362
+ [4, 10.0, 5.0],
363
+ [8, 3.0, 2.0]]
364
+ assert_equal(np.amin(b, axis=0), [3.0, 3.0, 2.0])
365
+ assert_equal(np.amin(b, axis=1), [3.0, 4.0, 2.0])
366
+
367
+
368
+ class TestPtp(TestCase):
369
+
370
+ def test_basic(self):
371
+ a = [3, 4, 5, 10, -3, -5, 6.0]
372
+ assert_equal(np.ptp(a, axis=0), 15.0)
373
+ b = [[3, 6.0, 9.0],
374
+ [4, 10.0, 5.0],
375
+ [8, 3.0, 2.0]]
376
+ assert_equal(np.ptp(b, axis=0), [5.0, 7.0, 7.0])
377
+ assert_equal(np.ptp(b, axis=-1), [6.0, 6.0, 6.0])
378
+
379
+
380
+ class TestCumsum(TestCase):
381
+
382
+ def test_basic(self):
383
+ ba = [1, 2, 10, 11, 6, 5, 4]
384
+ ba2 = [[1, 2, 3, 4], [5, 6, 7, 9], [10, 3, 4, 5]]
385
+ for ctype in [np.int8, np.uint8, np.int16, np.uint16, np.int32,
386
+ np.uint32, np.float32, np.float64, np.complex64, np.complex128]:
387
+ a = np.array(ba, ctype)
388
+ a2 = np.array(ba2, ctype)
389
+
390
+ tgt = np.array([1, 3, 13, 24, 30, 35, 39], ctype)
391
+ assert_array_equal(np.cumsum(a, axis=0), tgt)
392
+
393
+ tgt = np.array(
394
+ [[1, 2, 3, 4], [6, 8, 10, 13], [16, 11, 14, 18]], ctype)
395
+ assert_array_equal(np.cumsum(a2, axis=0), tgt)
396
+
397
+ tgt = np.array(
398
+ [[1, 3, 6, 10], [5, 11, 18, 27], [10, 13, 17, 22]], ctype)
399
+ assert_array_equal(np.cumsum(a2, axis=1), tgt)
400
+
401
+
402
+ class TestProd(TestCase):
403
+
404
+ def test_basic(self):
405
+ ba = [1, 2, 10, 11, 6, 5, 4]
406
+ ba2 = [[1, 2, 3, 4], [5, 6, 7, 9], [10, 3, 4, 5]]
407
+ for ctype in [np.int16, np.uint16, np.int32, np.uint32,
408
+ np.float32, np.float64, np.complex64, np.complex128]:
409
+ a = np.array(ba, ctype)
410
+ a2 = np.array(ba2, ctype)
411
+ if ctype in ['1', 'b']:
412
+ self.assertRaises(ArithmeticError, np.prod, a)
413
+ self.assertRaises(ArithmeticError, np.prod, a2, 1)
414
+ self.assertRaises(ArithmeticError, np.prod, a)
415
+ else:
416
+ assert_equal(np.prod(a, axis=0), 26400)
417
+ assert_array_equal(np.prod(a2, axis=0),
418
+ np.array([50, 36, 84, 180], ctype))
419
+ assert_array_equal(np.prod(a2, axis=-1),
420
+ np.array([24, 1890, 600], ctype))
421
+
422
+
423
+ class TestCumprod(TestCase):
424
+
425
+ def test_basic(self):
426
+ ba = [1, 2, 10, 11, 6, 5, 4]
427
+ ba2 = [[1, 2, 3, 4], [5, 6, 7, 9], [10, 3, 4, 5]]
428
+ for ctype in [np.int16, np.uint16, np.int32, np.uint32,
429
+ np.float32, np.float64, np.complex64, np.complex128]:
430
+ a = np.array(ba, ctype)
431
+ a2 = np.array(ba2, ctype)
432
+ if ctype in ['1', 'b']:
433
+ self.assertRaises(ArithmeticError, np.cumprod, a)
434
+ self.assertRaises(ArithmeticError, np.cumprod, a2, 1)
435
+ self.assertRaises(ArithmeticError, np.cumprod, a)
436
+ else:
437
+ assert_array_equal(np.cumprod(a, axis=-1),
438
+ np.array([1, 2, 20, 220,
439
+ 1320, 6600, 26400], ctype))
440
+ assert_array_equal(np.cumprod(a2, axis=0),
441
+ np.array([[1, 2, 3, 4],
442
+ [5, 12, 21, 36],
443
+ [50, 36, 84, 180]], ctype))
444
+ assert_array_equal(np.cumprod(a2, axis=-1),
445
+ np.array([[1, 2, 6, 24],
446
+ [5, 30, 210, 1890],
447
+ [10, 30, 120, 600]], ctype))
448
+
449
+
450
+ class TestDiff(TestCase):
451
+
452
+ def test_basic(self):
453
+ x = [1, 4, 6, 7, 12]
454
+ out = np.array([3, 2, 1, 5])
455
+ out2 = np.array([-1, -1, 4])
456
+ out3 = np.array([0, 5])
457
+ assert_array_equal(diff(x), out)
458
+ assert_array_equal(diff(x, n=2), out2)
459
+ assert_array_equal(diff(x, n=3), out3)
460
+
461
+ def test_nd(self):
462
+ x = 20 * rand(10, 20, 30)
463
+ out1 = x[:,:, 1:] - x[:,:, :-1]
464
+ out2 = out1[:,:, 1:] - out1[:,:, :-1]
465
+ out3 = x[1:,:,:] - x[:-1,:,:]
466
+ out4 = out3[1:,:,:] - out3[:-1,:,:]
467
+ assert_array_equal(diff(x), out1)
468
+ assert_array_equal(diff(x, n=2), out2)
469
+ assert_array_equal(diff(x, axis=0), out3)
470
+ assert_array_equal(diff(x, n=2, axis=0), out4)
471
+
472
+
473
+ class TestDelete(TestCase):
474
+
475
+ def setUp(self):
476
+ self.a = np.arange(5)
477
+ self.nd_a = np.arange(5).repeat(2).reshape(1, 5, 2)
478
+
479
+ def _check_inverse_of_slicing(self, indices):
480
+ a_del = delete(self.a, indices)
481
+ nd_a_del = delete(self.nd_a, indices, axis=1)
482
+ msg = 'Delete failed for obj: %r' % indices
483
+ # NOTE: The cast should be removed after warning phase for bools
484
+ if not isinstance(indices, (slice, int, long, np.integer)):
485
+ indices = np.asarray(indices, dtype=np.intp)
486
+ indices = indices[(indices >= 0) & (indices < 5)]
487
+ assert_array_equal(setxor1d(a_del, self.a[indices, ]), self.a,
488
+ err_msg=msg)
489
+ xor = setxor1d(nd_a_del[0,:, 0], self.nd_a[0, indices, 0])
490
+ assert_array_equal(xor, self.nd_a[0,:, 0], err_msg=msg)
491
+
492
+ def test_slices(self):
493
+ lims = [-6, -2, 0, 1, 2, 4, 5]
494
+ steps = [-3, -1, 1, 3]
495
+ for start in lims:
496
+ for stop in lims:
497
+ for step in steps:
498
+ s = slice(start, stop, step)
499
+ self._check_inverse_of_slicing(s)
500
+
501
+ def test_fancy(self):
502
+ # Deprecation/FutureWarning tests should be kept after change.
503
+ self._check_inverse_of_slicing(np.array([[0, 1], [2, 1]]))
504
+ with warnings.catch_warnings():
505
+ warnings.filterwarnings('error', category=DeprecationWarning)
506
+ assert_raises(DeprecationWarning, delete, self.a, [100])
507
+ assert_raises(DeprecationWarning, delete, self.a, [-100])
508
+ with warnings.catch_warnings(record=True) as w:
509
+ warnings.filterwarnings('always', category=FutureWarning)
510
+ self._check_inverse_of_slicing([0, -1, 2, 2])
511
+ obj = np.array([True, False, False], dtype=bool)
512
+ self._check_inverse_of_slicing(obj)
513
+ assert_(w[0].category is FutureWarning)
514
+ assert_(w[1].category is FutureWarning)
515
+
516
+ def test_single(self):
517
+ self._check_inverse_of_slicing(0)
518
+ self._check_inverse_of_slicing(-4)
519
+
520
+ def test_0d(self):
521
+ a = np.array(1)
522
+ with warnings.catch_warnings(record=True) as w:
523
+ warnings.filterwarnings('always', '', DeprecationWarning)
524
+ assert_equal(delete(a, [], axis=0), a)
525
+ assert_(w[0].category is DeprecationWarning)
526
+
527
+ def test_subclass(self):
528
+ class SubClass(np.ndarray):
529
+ pass
530
+ a = self.a.view(SubClass)
531
+ assert_(isinstance(delete(a, 0), SubClass))
532
+ assert_(isinstance(delete(a, []), SubClass))
533
+ assert_(isinstance(delete(a, [0, 1]), SubClass))
534
+ assert_(isinstance(delete(a, slice(1, 2)), SubClass))
535
+ assert_(isinstance(delete(a, slice(1, -2)), SubClass))
536
+
537
+
538
+ class TestGradient(TestCase):
539
+
540
+ def test_basic(self):
541
+ v = [[1, 1], [3, 4]]
542
+ x = np.array(v)
543
+ dx = [np.array([[2., 3.], [2., 3.]]),
544
+ np.array([[0., 0.], [1., 1.]])]
545
+ assert_array_equal(gradient(x), dx)
546
+ assert_array_equal(gradient(v), dx)
547
+
548
+ def test_badargs(self):
549
+ # for 2D array, gradient can take 0, 1, or 2 extra args
550
+ x = np.array([[1, 1], [3, 4]])
551
+ assert_raises(SyntaxError, gradient, x, np.array([1., 1.]),
552
+ np.array([1., 1.]), np.array([1., 1.]))
553
+
554
+ def test_masked(self):
555
+ # Make sure that gradient supports subclasses like masked arrays
556
+ x = np.ma.array([[1, 1], [3, 4]],
557
+ mask=[[False, False], [False, False]])
558
+ out = gradient(x)[0]
559
+ assert_equal(type(out), type(x))
560
+ # And make sure that the output and input don't have aliased mask
561
+ # arrays
562
+ assert_(x.mask is not out.mask)
563
+ # Also check that edge_order=2 doesn't alter the original mask
564
+ x2 = np.ma.arange(5)
565
+ x2[2] = np.ma.masked
566
+ np.gradient(x2, edge_order=2)
567
+ assert_array_equal(x2.mask, [False, False, True, False, False])
568
+
569
+ def test_datetime64(self):
570
+ # Make sure gradient() can handle special types like datetime64
571
+ x = np.array(
572
+ ['1910-08-16', '1910-08-11', '1910-08-10', '1910-08-12',
573
+ '1910-10-12', '1910-12-12', '1912-12-12'],
574
+ dtype='datetime64[D]')
575
+ dx = np.array(
576
+ [-5, -3, 0, 31, 61, 396, 731],
577
+ dtype='timedelta64[D]')
578
+ assert_array_equal(gradient(x), dx)
579
+ assert_(dx.dtype == np.dtype('timedelta64[D]'))
580
+
581
+ def test_timedelta64(self):
582
+ # Make sure gradient() can handle special types like timedelta64
583
+ x = np.array(
584
+ [-5, -3, 10, 12, 61, 321, 300],
585
+ dtype='timedelta64[D]')
586
+ dx = np.array(
587
+ [2, 7, 7, 25, 154, 119, -21],
588
+ dtype='timedelta64[D]')
589
+ assert_array_equal(gradient(x), dx)
590
+ assert_(dx.dtype == np.dtype('timedelta64[D]'))
591
+
592
+ def test_second_order_accurate(self):
593
+ # Testing that the relative numerical error is less that 3% for
594
+ # this example problem. This corresponds to second order
595
+ # accurate finite differences for all interior and boundary
596
+ # points.
597
+ x = np.linspace(0, 1, 10)
598
+ dx = x[1] - x[0]
599
+ y = 2 * x ** 3 + 4 * x ** 2 + 2 * x
600
+ analytical = 6 * x ** 2 + 8 * x + 2
601
+ num_error = np.abs((np.gradient(y, dx, edge_order=2) / analytical) - 1)
602
+ assert_(np.all(num_error < 0.03) == True)
603
+
604
+
605
+ class TestAngle(TestCase):
606
+
607
+ def test_basic(self):
608
+ x = [1 + 3j, np.sqrt(2) / 2.0 + 1j * np.sqrt(2) / 2,
609
+ 1, 1j, -1, -1j, 1 - 3j, -1 + 3j]
610
+ y = angle(x)
611
+ yo = [
612
+ np.arctan(3.0 / 1.0),
613
+ np.arctan(1.0), 0, np.pi / 2, np.pi, -np.pi / 2.0,
614
+ -np.arctan(3.0 / 1.0), np.pi - np.arctan(3.0 / 1.0)]
615
+ z = angle(x, deg=1)
616
+ zo = np.array(yo) * 180 / np.pi
617
+ assert_array_almost_equal(y, yo, 11)
618
+ assert_array_almost_equal(z, zo, 11)
619
+
620
+
621
+ class TestTrimZeros(TestCase):
622
+
623
+ """
624
+ Only testing for integer splits.
625
+
626
+ """
627
+
628
+ def test_basic(self):
629
+ a = np.array([0, 0, 1, 2, 3, 4, 0])
630
+ res = trim_zeros(a)
631
+ assert_array_equal(res, np.array([1, 2, 3, 4]))
632
+
633
+ def test_leading_skip(self):
634
+ a = np.array([0, 0, 1, 0, 2, 3, 4, 0])
635
+ res = trim_zeros(a)
636
+ assert_array_equal(res, np.array([1, 0, 2, 3, 4]))
637
+
638
+ def test_trailing_skip(self):
639
+ a = np.array([0, 0, 1, 0, 2, 3, 0, 4, 0])
640
+ res = trim_zeros(a)
641
+ assert_array_equal(res, np.array([1, 0, 2, 3, 0, 4]))
642
+
643
+
644
+ class TestExtins(TestCase):
645
+
646
+ def test_basic(self):
647
+ a = np.array([1, 3, 2, 1, 2, 3, 3])
648
+ b = extract(a > 1, a)
649
+ assert_array_equal(b, [3, 2, 2, 3, 3])
650
+
651
+ def test_place(self):
652
+ a = np.array([1, 4, 3, 2, 5, 8, 7])
653
+ place(a, [0, 1, 0, 1, 0, 1, 0], [2, 4, 6])
654
+ assert_array_equal(a, [1, 2, 3, 4, 5, 6, 7])
655
+
656
+ place(a, np.zeros(7), [])
657
+ assert_array_equal(a, np.arange(1, 8))
658
+
659
+ place(a, [1, 0, 1, 0, 1, 0, 1], [8, 9])
660
+ assert_array_equal(a, [8, 2, 9, 4, 8, 6, 9])
661
+ assert_raises_regex(ValueError, "Cannot insert from an empty array",
662
+ lambda: place(a, [0, 0, 0, 0, 0, 1, 0], []))
663
+
664
+ def test_both(self):
665
+ a = rand(10)
666
+ mask = a > 0.5
667
+ ac = a.copy()
668
+ c = extract(mask, a)
669
+ place(a, mask, 0)
670
+ place(a, mask, c)
671
+ assert_array_equal(a, ac)
672
+
673
+
674
+ class TestVectorize(TestCase):
675
+
676
+ def test_simple(self):
677
+ def addsubtract(a, b):
678
+ if a > b:
679
+ return a - b
680
+ else:
681
+ return a + b
682
+
683
+ f = vectorize(addsubtract)
684
+ r = f([0, 3, 6, 9], [1, 3, 5, 7])
685
+ assert_array_equal(r, [1, 6, 1, 2])
686
+
687
+ def test_scalar(self):
688
+ def addsubtract(a, b):
689
+ if a > b:
690
+ return a - b
691
+ else:
692
+ return a + b
693
+
694
+ f = vectorize(addsubtract)
695
+ r = f([0, 3, 6, 9], 5)
696
+ assert_array_equal(r, [5, 8, 1, 4])
697
+
698
+ def test_large(self):
699
+ x = np.linspace(-3, 2, 10000)
700
+ f = vectorize(lambda x: x)
701
+ y = f(x)
702
+ assert_array_equal(y, x)
703
+
704
+ def test_ufunc(self):
705
+ import math
706
+ f = vectorize(math.cos)
707
+ args = np.array([0, 0.5 * np.pi, np.pi, 1.5 * np.pi, 2 * np.pi])
708
+ r1 = f(args)
709
+ r2 = np.cos(args)
710
+ assert_array_almost_equal(r1, r2)
711
+
712
+ def test_keywords(self):
713
+
714
+ def foo(a, b=1):
715
+ return a + b
716
+
717
+ f = vectorize(foo)
718
+ args = np.array([1, 2, 3])
719
+ r1 = f(args)
720
+ r2 = np.array([2, 3, 4])
721
+ assert_array_equal(r1, r2)
722
+ r1 = f(args, 2)
723
+ r2 = np.array([3, 4, 5])
724
+ assert_array_equal(r1, r2)
725
+
726
+ def test_keywords_no_func_code(self):
727
+ # This needs to test a function that has keywords but
728
+ # no func_code attribute, since otherwise vectorize will
729
+ # inspect the func_code.
730
+ import random
731
+ try:
732
+ vectorize(random.randrange) # Should succeed
733
+ except:
734
+ raise AssertionError()
735
+
736
+ def test_keywords2_ticket_2100(self):
737
+ # Test kwarg support: enhancement ticket 2100
738
+
739
+ def foo(a, b=1):
740
+ return a + b
741
+
742
+ f = vectorize(foo)
743
+ args = np.array([1, 2, 3])
744
+ r1 = f(a=args)
745
+ r2 = np.array([2, 3, 4])
746
+ assert_array_equal(r1, r2)
747
+ r1 = f(b=1, a=args)
748
+ assert_array_equal(r1, r2)
749
+ r1 = f(args, b=2)
750
+ r2 = np.array([3, 4, 5])
751
+ assert_array_equal(r1, r2)
752
+
753
+ def test_keywords3_ticket_2100(self):
754
+ # Test excluded with mixed positional and kwargs: ticket 2100
755
+ def mypolyval(x, p):
756
+ _p = list(p)
757
+ res = _p.pop(0)
758
+ while _p:
759
+ res = res * x + _p.pop(0)
760
+ return res
761
+
762
+ vpolyval = np.vectorize(mypolyval, excluded=['p', 1])
763
+ ans = [3, 6]
764
+ assert_array_equal(ans, vpolyval(x=[0, 1], p=[1, 2, 3]))
765
+ assert_array_equal(ans, vpolyval([0, 1], p=[1, 2, 3]))
766
+ assert_array_equal(ans, vpolyval([0, 1], [1, 2, 3]))
767
+
768
+ def test_keywords4_ticket_2100(self):
769
+ # Test vectorizing function with no positional args.
770
+ @vectorize
771
+ def f(**kw):
772
+ res = 1.0
773
+ for _k in kw:
774
+ res *= kw[_k]
775
+ return res
776
+
777
+ assert_array_equal(f(a=[1, 2], b=[3, 4]), [3, 8])
778
+
779
+ def test_keywords5_ticket_2100(self):
780
+ # Test vectorizing function with no kwargs args.
781
+ @vectorize
782
+ def f(*v):
783
+ return np.prod(v)
784
+
785
+ assert_array_equal(f([1, 2], [3, 4]), [3, 8])
786
+
787
+ def test_coverage1_ticket_2100(self):
788
+ def foo():
789
+ return 1
790
+
791
+ f = vectorize(foo)
792
+ assert_array_equal(f(), 1)
793
+
794
+ def test_assigning_docstring(self):
795
+ def foo(x):
796
+ return x
797
+
798
+ doc = "Provided documentation"
799
+ f = vectorize(foo, doc=doc)
800
+ assert_equal(f.__doc__, doc)
801
+
802
+ def test_UnboundMethod_ticket_1156(self):
803
+ # Regression test for issue 1156
804
+ class Foo:
805
+ b = 2
806
+
807
+ def bar(self, a):
808
+ return a ** self.b
809
+
810
+ assert_array_equal(vectorize(Foo().bar)(np.arange(9)),
811
+ np.arange(9) ** 2)
812
+ assert_array_equal(vectorize(Foo.bar)(Foo(), np.arange(9)),
813
+ np.arange(9) ** 2)
814
+
815
+ def test_execution_order_ticket_1487(self):
816
+ # Regression test for dependence on execution order: issue 1487
817
+ f1 = vectorize(lambda x: x)
818
+ res1a = f1(np.arange(3))
819
+ res1b = f1(np.arange(0.1, 3))
820
+ f2 = vectorize(lambda x: x)
821
+ res2b = f2(np.arange(0.1, 3))
822
+ res2a = f2(np.arange(3))
823
+ assert_equal(res1a, res2a)
824
+ assert_equal(res1b, res2b)
825
+
826
+ def test_string_ticket_1892(self):
827
+ # Test vectorization over strings: issue 1892.
828
+ f = np.vectorize(lambda x: x)
829
+ s = '0123456789' * 10
830
+ assert_equal(s, f(s))
831
+
832
+ def test_cache(self):
833
+ # Ensure that vectorized func called exactly once per argument.
834
+ _calls = [0]
835
+
836
+ @vectorize
837
+ def f(x):
838
+ _calls[0] += 1
839
+ return x ** 2
840
+
841
+ f.cache = True
842
+ x = np.arange(5)
843
+ assert_array_equal(f(x), x * x)
844
+ assert_equal(_calls[0], len(x))
845
+
846
+ def test_otypes(self):
847
+ f = np.vectorize(lambda x: x)
848
+ f.otypes = 'i'
849
+ x = np.arange(5)
850
+ assert_array_equal(f(x), x)
851
+
852
+
853
+ class TestDigitize(TestCase):
854
+
855
+ def test_forward(self):
856
+ x = np.arange(-6, 5)
857
+ bins = np.arange(-5, 5)
858
+ assert_array_equal(digitize(x, bins), np.arange(11))
859
+
860
+ def test_reverse(self):
861
+ x = np.arange(5, -6, -1)
862
+ bins = np.arange(5, -5, -1)
863
+ assert_array_equal(digitize(x, bins), np.arange(11))
864
+
865
+ def test_random(self):
866
+ x = rand(10)
867
+ bin = np.linspace(x.min(), x.max(), 10)
868
+ assert_(np.all(digitize(x, bin) != 0))
869
+
870
+ def test_right_basic(self):
871
+ x = [1, 5, 4, 10, 8, 11, 0]
872
+ bins = [1, 5, 10]
873
+ default_answer = [1, 2, 1, 3, 2, 3, 0]
874
+ assert_array_equal(digitize(x, bins), default_answer)
875
+ right_answer = [0, 1, 1, 2, 2, 3, 0]
876
+ assert_array_equal(digitize(x, bins, True), right_answer)
877
+
878
+ def test_right_open(self):
879
+ x = np.arange(-6, 5)
880
+ bins = np.arange(-6, 4)
881
+ assert_array_equal(digitize(x, bins, True), np.arange(11))
882
+
883
+ def test_right_open_reverse(self):
884
+ x = np.arange(5, -6, -1)
885
+ bins = np.arange(4, -6, -1)
886
+ assert_array_equal(digitize(x, bins, True), np.arange(11))
887
+
888
+ def test_right_open_random(self):
889
+ x = rand(10)
890
+ bins = np.linspace(x.min(), x.max(), 10)
891
+ assert_(np.all(digitize(x, bins, True) != 10))
892
+
893
+ def test_monotonic(self):
894
+ x = [-1, 0, 1, 2]
895
+ bins = [0, 0, 1]
896
+ assert_array_equal(digitize(x, bins, False), [0, 2, 3, 3])
897
+ assert_array_equal(digitize(x, bins, True), [0, 0, 2, 3])
898
+ bins = [1, 1, 0]
899
+ assert_array_equal(digitize(x, bins, False), [3, 2, 0, 0])
900
+ assert_array_equal(digitize(x, bins, True), [3, 3, 2, 0])
901
+ bins = [1, 1, 1, 1]
902
+ assert_array_equal(digitize(x, bins, False), [0, 0, 4, 4])
903
+ assert_array_equal(digitize(x, bins, True), [0, 0, 0, 4])
904
+ bins = [0, 0, 1, 0]
905
+ assert_raises(ValueError, digitize, x, bins)
906
+ bins = [1, 1, 0, 1]
907
+ assert_raises(ValueError, digitize, x, bins)
908
+
909
+ def test_casting_error(self):
910
+ x = [1, 2, 3 + 1.j]
911
+ bins = [1, 2, 3]
912
+ assert_raises(TypeError, digitize, x, bins)
913
+ x, bins = bins, x
914
+ assert_raises(TypeError, digitize, x, bins)
915
+
916
+ def test_return_type(self):
917
+ # Functions returning indices should always return base ndarrays
918
+ class A(np.ndarray):
919
+ pass
920
+ a = np.arange(5).view(A)
921
+ b = np.arange(1, 3).view(A)
922
+ assert_(not isinstance(digitize(b, a, False), A))
923
+ assert_(not isinstance(digitize(b, a, True), A))
924
+
925
+
926
+ class TestUnwrap(TestCase):
927
+
928
+ def test_simple(self):
929
+ # check that unwrap removes jumps greather that 2*pi
930
+ assert_array_equal(unwrap([1, 1 + 2 * np.pi]), [1, 1])
931
+ # check that unwrap maintans continuity
932
+ assert_(np.all(diff(unwrap(rand(10) * 100)) < np.pi))
933
+
934
+
935
+ class TestFilterwindows(TestCase):
936
+
937
+ def test_hanning(self):
938
+ # check symmetry
939
+ w = hanning(10)
940
+ assert_array_almost_equal(w, flipud(w), 7)
941
+ # check known value
942
+ assert_almost_equal(np.sum(w, axis=0), 4.500, 4)
943
+
944
+ def test_hamming(self):
945
+ # check symmetry
946
+ w = hamming(10)
947
+ assert_array_almost_equal(w, flipud(w), 7)
948
+ # check known value
949
+ assert_almost_equal(np.sum(w, axis=0), 4.9400, 4)
950
+
951
+ def test_bartlett(self):
952
+ # check symmetry
953
+ w = bartlett(10)
954
+ assert_array_almost_equal(w, flipud(w), 7)
955
+ # check known value
956
+ assert_almost_equal(np.sum(w, axis=0), 4.4444, 4)
957
+
958
+ def test_blackman(self):
959
+ # check symmetry
960
+ w = blackman(10)
961
+ assert_array_almost_equal(w, flipud(w), 7)
962
+ # check known value
963
+ assert_almost_equal(np.sum(w, axis=0), 3.7800, 4)
964
+
965
+
966
+ class TestTrapz(TestCase):
967
+
968
+ def test_simple(self):
969
+ x = np.arange(-10, 10, .1)
970
+ r = trapz(np.exp(-.5 * x ** 2) / np.sqrt(2 * np.pi), dx=0.1)
971
+ # check integral of normal equals 1
972
+ assert_almost_equal(r, 1, 7)
973
+
974
+ def test_ndim(self):
975
+ x = np.linspace(0, 1, 3)
976
+ y = np.linspace(0, 2, 8)
977
+ z = np.linspace(0, 3, 13)
978
+
979
+ wx = np.ones_like(x) * (x[1] - x[0])
980
+ wx[0] /= 2
981
+ wx[-1] /= 2
982
+ wy = np.ones_like(y) * (y[1] - y[0])
983
+ wy[0] /= 2
984
+ wy[-1] /= 2
985
+ wz = np.ones_like(z) * (z[1] - z[0])
986
+ wz[0] /= 2
987
+ wz[-1] /= 2
988
+
989
+ q = x[:, None, None] + y[None,:, None] + z[None, None,:]
990
+
991
+ qx = (q * wx[:, None, None]).sum(axis=0)
992
+ qy = (q * wy[None,:, None]).sum(axis=1)
993
+ qz = (q * wz[None, None,:]).sum(axis=2)
994
+
995
+ # n-d `x`
996
+ r = trapz(q, x=x[:, None, None], axis=0)
997
+ assert_almost_equal(r, qx)
998
+ r = trapz(q, x=y[None,:, None], axis=1)
999
+ assert_almost_equal(r, qy)
1000
+ r = trapz(q, x=z[None, None,:], axis=2)
1001
+ assert_almost_equal(r, qz)
1002
+
1003
+ # 1-d `x`
1004
+ r = trapz(q, x=x, axis=0)
1005
+ assert_almost_equal(r, qx)
1006
+ r = trapz(q, x=y, axis=1)
1007
+ assert_almost_equal(r, qy)
1008
+ r = trapz(q, x=z, axis=2)
1009
+ assert_almost_equal(r, qz)
1010
+
1011
+ def test_masked(self):
1012
+ # Testing that masked arrays behave as if the function is 0 where
1013
+ # masked
1014
+ x = np.arange(5)
1015
+ y = x * x
1016
+ mask = x == 2
1017
+ ym = np.ma.array(y, mask=mask)
1018
+ r = 13.0 # sum(0.5 * (0 + 1) * 1.0 + 0.5 * (9 + 16))
1019
+ assert_almost_equal(trapz(ym, x), r)
1020
+
1021
+ xm = np.ma.array(x, mask=mask)
1022
+ assert_almost_equal(trapz(ym, xm), r)
1023
+
1024
+ xm = np.ma.array(x, mask=mask)
1025
+ assert_almost_equal(trapz(y, xm), r)
1026
+
1027
+ def test_matrix(self):
1028
+ # Test to make sure matrices give the same answer as ndarrays
1029
+ x = np.linspace(0, 5)
1030
+ y = x * x
1031
+ r = trapz(y, x)
1032
+ mx = np.matrix(x)
1033
+ my = np.matrix(y)
1034
+ mr = trapz(my, mx)
1035
+ assert_almost_equal(mr, r)
1036
+
1037
+
1038
+ class TestSinc(TestCase):
1039
+
1040
+ def test_simple(self):
1041
+ assert_(sinc(0) == 1)
1042
+ w = sinc(np.linspace(-1, 1, 100))
1043
+ # check symmetry
1044
+ assert_array_almost_equal(w, flipud(w), 7)
1045
+
1046
+ def test_array_like(self):
1047
+ x = [0, 0.5]
1048
+ y1 = sinc(np.array(x))
1049
+ y2 = sinc(list(x))
1050
+ y3 = sinc(tuple(x))
1051
+ assert_array_equal(y1, y2)
1052
+ assert_array_equal(y1, y3)
1053
+
1054
+
1055
+ class TestHistogram(TestCase):
1056
+
1057
+ def setUp(self):
1058
+ pass
1059
+
1060
+ def tearDown(self):
1061
+ pass
1062
+
1063
+ def test_simple(self):
1064
+ n = 100
1065
+ v = rand(n)
1066
+ (a, b) = histogram(v)
1067
+ # check if the sum of the bins equals the number of samples
1068
+ assert_equal(np.sum(a, axis=0), n)
1069
+ # check that the bin counts are evenly spaced when the data is from
1070
+ # a linear function
1071
+ (a, b) = histogram(np.linspace(0, 10, 100))
1072
+ assert_array_equal(a, 10)
1073
+
1074
+ def test_one_bin(self):
1075
+ # Ticket 632
1076
+ hist, edges = histogram([1, 2, 3, 4], [1, 2])
1077
+ assert_array_equal(hist, [2, ])
1078
+ assert_array_equal(edges, [1, 2])
1079
+ assert_raises(ValueError, histogram, [1, 2], bins=0)
1080
+ h, e = histogram([1, 2], bins=1)
1081
+ assert_equal(h, np.array([2]))
1082
+ assert_allclose(e, np.array([1., 2.]))
1083
+
1084
+ def test_normed(self):
1085
+ # Check that the integral of the density equals 1.
1086
+ n = 100
1087
+ v = rand(n)
1088
+ a, b = histogram(v, normed=True)
1089
+ area = np.sum(a * diff(b))
1090
+ assert_almost_equal(area, 1)
1091
+
1092
+ # Check with non-constant bin widths (buggy but backwards
1093
+ # compatible)
1094
+ v = np.arange(10)
1095
+ bins = [0, 1, 5, 9, 10]
1096
+ a, b = histogram(v, bins, normed=True)
1097
+ area = np.sum(a * diff(b))
1098
+ assert_almost_equal(area, 1)
1099
+
1100
+ def test_density(self):
1101
+ # Check that the integral of the density equals 1.
1102
+ n = 100
1103
+ v = rand(n)
1104
+ a, b = histogram(v, density=True)
1105
+ area = np.sum(a * diff(b))
1106
+ assert_almost_equal(area, 1)
1107
+
1108
+ # Check with non-constant bin widths
1109
+ v = np.arange(10)
1110
+ bins = [0, 1, 3, 6, 10]
1111
+ a, b = histogram(v, bins, density=True)
1112
+ assert_array_equal(a, .1)
1113
+ assert_equal(np.sum(a * diff(b)), 1)
1114
+
1115
+ # Variale bin widths are especially useful to deal with
1116
+ # infinities.
1117
+ v = np.arange(10)
1118
+ bins = [0, 1, 3, 6, np.inf]
1119
+ a, b = histogram(v, bins, density=True)
1120
+ assert_array_equal(a, [.1, .1, .1, 0.])
1121
+
1122
+ # Taken from a bug report from N. Becker on the numpy-discussion
1123
+ # mailing list Aug. 6, 2010.
1124
+ counts, dmy = np.histogram(
1125
+ [1, 2, 3, 4], [0.5, 1.5, np.inf], density=True)
1126
+ assert_equal(counts, [.25, 0])
1127
+
1128
+ def test_outliers(self):
1129
+ # Check that outliers are not tallied
1130
+ a = np.arange(10) + .5
1131
+
1132
+ # Lower outliers
1133
+ h, b = histogram(a, range=[0, 9])
1134
+ assert_equal(h.sum(), 9)
1135
+
1136
+ # Upper outliers
1137
+ h, b = histogram(a, range=[1, 10])
1138
+ assert_equal(h.sum(), 9)
1139
+
1140
+ # Normalization
1141
+ h, b = histogram(a, range=[1, 9], normed=True)
1142
+ assert_almost_equal((h * diff(b)).sum(), 1, decimal=15)
1143
+
1144
+ # Weights
1145
+ w = np.arange(10) + .5
1146
+ h, b = histogram(a, range=[1, 9], weights=w, normed=True)
1147
+ assert_equal((h * diff(b)).sum(), 1)
1148
+
1149
+ h, b = histogram(a, bins=8, range=[1, 9], weights=w)
1150
+ assert_equal(h, w[1:-1])
1151
+
1152
+ def test_type(self):
1153
+ # Check the type of the returned histogram
1154
+ a = np.arange(10) + .5
1155
+ h, b = histogram(a)
1156
+ assert_(np.issubdtype(h.dtype, int))
1157
+
1158
+ h, b = histogram(a, normed=True)
1159
+ assert_(np.issubdtype(h.dtype, float))
1160
+
1161
+ h, b = histogram(a, weights=np.ones(10, int))
1162
+ assert_(np.issubdtype(h.dtype, int))
1163
+
1164
+ h, b = histogram(a, weights=np.ones(10, float))
1165
+ assert_(np.issubdtype(h.dtype, float))
1166
+
1167
+ def test_f32_rounding(self):
1168
+ # gh-4799, check that the rounding of the edges works with float32
1169
+ x = np.array([276.318359, -69.593948, 21.329449], dtype=np.float32)
1170
+ y = np.array([5005.689453, 4481.327637, 6010.369629], dtype=np.float32)
1171
+ counts_hist, xedges, yedges = np.histogram2d(x, y, bins=100)
1172
+ assert_equal(counts_hist.sum(), 3.)
1173
+
1174
+ def test_weights(self):
1175
+ v = rand(100)
1176
+ w = np.ones(100) * 5
1177
+ a, b = histogram(v)
1178
+ na, nb = histogram(v, normed=True)
1179
+ wa, wb = histogram(v, weights=w)
1180
+ nwa, nwb = histogram(v, weights=w, normed=True)
1181
+ assert_array_almost_equal(a * 5, wa)
1182
+ assert_array_almost_equal(na, nwa)
1183
+
1184
+ # Check weights are properly applied.
1185
+ v = np.linspace(0, 10, 10)
1186
+ w = np.concatenate((np.zeros(5), np.ones(5)))
1187
+ wa, wb = histogram(v, bins=np.arange(11), weights=w)
1188
+ assert_array_almost_equal(wa, w)
1189
+
1190
+ # Check with integer weights
1191
+ wa, wb = histogram([1, 2, 2, 4], bins=4, weights=[4, 3, 2, 1])
1192
+ assert_array_equal(wa, [4, 5, 0, 1])
1193
+ wa, wb = histogram(
1194
+ [1, 2, 2, 4], bins=4, weights=[4, 3, 2, 1], normed=True)
1195
+ assert_array_almost_equal(wa, np.array([4, 5, 0, 1]) / 10. / 3. * 4)
1196
+
1197
+ # Check weights with non-uniform bin widths
1198
+ a, b = histogram(
1199
+ np.arange(9), [0, 1, 3, 6, 10],
1200
+ weights=[2, 1, 1, 1, 1, 1, 1, 1, 1], density=True)
1201
+ assert_almost_equal(a, [.2, .1, .1, .075])
1202
+
1203
+ def test_exotic_weights(self):
1204
+
1205
+ # Test the use of weights that are not integer or floats, but e.g.
1206
+ # complex numbers or object types.
1207
+
1208
+ # Complex weights
1209
+ values = np.array([1.3, 2.5, 2.3])
1210
+ weights = np.array([1, -1, 2]) + 1j * np.array([2, 1, 2])
1211
+
1212
+ # Check with custom bins
1213
+ wa, wb = histogram(values, bins=[0, 2, 3], weights=weights)
1214
+ assert_array_almost_equal(wa, np.array([1, 1]) + 1j * np.array([2, 3]))
1215
+
1216
+ # Check with even bins
1217
+ wa, wb = histogram(values, bins=2, range=[1, 3], weights=weights)
1218
+ assert_array_almost_equal(wa, np.array([1, 1]) + 1j * np.array([2, 3]))
1219
+
1220
+ # Decimal weights
1221
+ from decimal import Decimal
1222
+ values = np.array([1.3, 2.5, 2.3])
1223
+ weights = np.array([Decimal(1), Decimal(2), Decimal(3)])
1224
+
1225
+ # Check with custom bins
1226
+ wa, wb = histogram(values, bins=[0, 2, 3], weights=weights)
1227
+ assert_array_almost_equal(wa, [Decimal(1), Decimal(5)])
1228
+
1229
+ # Check with even bins
1230
+ wa, wb = histogram(values, bins=2, range=[1, 3], weights=weights)
1231
+ assert_array_almost_equal(wa, [Decimal(1), Decimal(5)])
1232
+
1233
+ def test_no_side_effects(self):
1234
+ # This is a regression test that ensures that values passed to
1235
+ # ``histogram`` are unchanged.
1236
+ values = np.array([1.3, 2.5, 2.3])
1237
+ np.histogram(values, range=[-10, 10], bins=100)
1238
+ assert_array_almost_equal(values, [1.3, 2.5, 2.3])
1239
+
1240
+ def test_empty(self):
1241
+ a, b = histogram([], bins=([0, 1]))
1242
+ assert_array_equal(a, np.array([0]))
1243
+ assert_array_equal(b, np.array([0, 1]))
1244
+
1245
+
1246
+ class TestHistogramdd(TestCase):
1247
+
1248
+ def test_simple(self):
1249
+ x = np.array([[-.5, .5, 1.5], [-.5, 1.5, 2.5], [-.5, 2.5, .5],
1250
+ [.5, .5, 1.5], [.5, 1.5, 2.5], [.5, 2.5, 2.5]])
1251
+ H, edges = histogramdd(x, (2, 3, 3),
1252
+ range=[[-1, 1], [0, 3], [0, 3]])
1253
+ answer = np.array([[[0, 1, 0], [0, 0, 1], [1, 0, 0]],
1254
+ [[0, 1, 0], [0, 0, 1], [0, 0, 1]]])
1255
+ assert_array_equal(H, answer)
1256
+
1257
+ # Check normalization
1258
+ ed = [[-2, 0, 2], [0, 1, 2, 3], [0, 1, 2, 3]]
1259
+ H, edges = histogramdd(x, bins=ed, normed=True)
1260
+ assert_(np.all(H == answer / 12.))
1261
+
1262
+ # Check that H has the correct shape.
1263
+ H, edges = histogramdd(x, (2, 3, 4),
1264
+ range=[[-1, 1], [0, 3], [0, 4]],
1265
+ normed=True)
1266
+ answer = np.array([[[0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 0]],
1267
+ [[0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 0]]])
1268
+ assert_array_almost_equal(H, answer / 6., 4)
1269
+ # Check that a sequence of arrays is accepted and H has the correct
1270
+ # shape.
1271
+ z = [np.squeeze(y) for y in split(x, 3, axis=1)]
1272
+ H, edges = histogramdd(
1273
+ z, bins=(4, 3, 2), range=[[-2, 2], [0, 3], [0, 2]])
1274
+ answer = np.array([[[0, 0], [0, 0], [0, 0]],
1275
+ [[0, 1], [0, 0], [1, 0]],
1276
+ [[0, 1], [0, 0], [0, 0]],
1277
+ [[0, 0], [0, 0], [0, 0]]])
1278
+ assert_array_equal(H, answer)
1279
+
1280
+ Z = np.zeros((5, 5, 5))
1281
+ Z[list(range(5)), list(range(5)), list(range(5))] = 1.
1282
+ H, edges = histogramdd([np.arange(5), np.arange(5), np.arange(5)], 5)
1283
+ assert_array_equal(H, Z)
1284
+
1285
+ def test_shape_3d(self):
1286
+ # All possible permutations for bins of different lengths in 3D.
1287
+ bins = ((5, 4, 6), (6, 4, 5), (5, 6, 4), (4, 6, 5), (6, 5, 4),
1288
+ (4, 5, 6))
1289
+ r = rand(10, 3)
1290
+ for b in bins:
1291
+ H, edges = histogramdd(r, b)
1292
+ assert_(H.shape == b)
1293
+
1294
+ def test_shape_4d(self):
1295
+ # All possible permutations for bins of different lengths in 4D.
1296
+ bins = ((7, 4, 5, 6), (4, 5, 7, 6), (5, 6, 4, 7), (7, 6, 5, 4),
1297
+ (5, 7, 6, 4), (4, 6, 7, 5), (6, 5, 7, 4), (7, 5, 4, 6),
1298
+ (7, 4, 6, 5), (6, 4, 7, 5), (6, 7, 5, 4), (4, 6, 5, 7),
1299
+ (4, 7, 5, 6), (5, 4, 6, 7), (5, 7, 4, 6), (6, 7, 4, 5),
1300
+ (6, 5, 4, 7), (4, 7, 6, 5), (4, 5, 6, 7), (7, 6, 4, 5),
1301
+ (5, 4, 7, 6), (5, 6, 7, 4), (6, 4, 5, 7), (7, 5, 6, 4))
1302
+
1303
+ r = rand(10, 4)
1304
+ for b in bins:
1305
+ H, edges = histogramdd(r, b)
1306
+ assert_(H.shape == b)
1307
+
1308
+ def test_weights(self):
1309
+ v = rand(100, 2)
1310
+ hist, edges = histogramdd(v)
1311
+ n_hist, edges = histogramdd(v, normed=True)
1312
+ w_hist, edges = histogramdd(v, weights=np.ones(100))
1313
+ assert_array_equal(w_hist, hist)
1314
+ w_hist, edges = histogramdd(v, weights=np.ones(100) * 2, normed=True)
1315
+ assert_array_equal(w_hist, n_hist)
1316
+ w_hist, edges = histogramdd(v, weights=np.ones(100, int) * 2)
1317
+ assert_array_equal(w_hist, 2 * hist)
1318
+
1319
+ def test_identical_samples(self):
1320
+ x = np.zeros((10, 2), int)
1321
+ hist, edges = histogramdd(x, bins=2)
1322
+ assert_array_equal(edges[0], np.array([-0.5, 0., 0.5]))
1323
+
1324
+ def test_empty(self):
1325
+ a, b = histogramdd([[], []], bins=([0, 1], [0, 1]))
1326
+ assert_array_max_ulp(a, np.array([[0.]]))
1327
+ a, b = np.histogramdd([[], [], []], bins=2)
1328
+ assert_array_max_ulp(a, np.zeros((2, 2, 2)))
1329
+
1330
+ def test_bins_errors(self):
1331
+ # There are two ways to specify bins. Check for the right errors
1332
+ # when mixing those.
1333
+ x = np.arange(8).reshape(2, 4)
1334
+ assert_raises(ValueError, np.histogramdd, x, bins=[-1, 2, 4, 5])
1335
+ assert_raises(ValueError, np.histogramdd, x, bins=[1, 0.99, 1, 1])
1336
+ assert_raises(
1337
+ ValueError, np.histogramdd, x, bins=[1, 1, 1, [1, 2, 2, 3]])
1338
+ assert_raises(
1339
+ ValueError, np.histogramdd, x, bins=[1, 1, 1, [1, 2, 3, -3]])
1340
+ assert_(np.histogramdd(x, bins=[1, 1, 1, [1, 2, 3, 4]]))
1341
+
1342
+ def test_inf_edges(self):
1343
+ # Test using +/-inf bin edges works. See #1788.
1344
+ with np.errstate(invalid='ignore'):
1345
+ x = np.arange(6).reshape(3, 2)
1346
+ expected = np.array([[1, 0], [0, 1], [0, 1]])
1347
+ h, e = np.histogramdd(x, bins=[3, [-np.inf, 2, 10]])
1348
+ assert_allclose(h, expected)
1349
+ h, e = np.histogramdd(x, bins=[3, np.array([-1, 2, np.inf])])
1350
+ assert_allclose(h, expected)
1351
+ h, e = np.histogramdd(x, bins=[3, [-np.inf, 3, np.inf]])
1352
+ assert_allclose(h, expected)
1353
+
1354
+ def test_rightmost_binedge(self):
1355
+ # Test event very close to rightmost binedge. See Github issue #4266
1356
+ x = [0.9999999995]
1357
+ bins = [[0., 0.5, 1.0]]
1358
+ hist, _ = histogramdd(x, bins=bins)
1359
+ assert_(hist[0] == 0.0)
1360
+ assert_(hist[1] == 1.)
1361
+ x = [1.0]
1362
+ bins = [[0., 0.5, 1.0]]
1363
+ hist, _ = histogramdd(x, bins=bins)
1364
+ assert_(hist[0] == 0.0)
1365
+ assert_(hist[1] == 1.)
1366
+ x = [1.0000000001]
1367
+ bins = [[0., 0.5, 1.0]]
1368
+ hist, _ = histogramdd(x, bins=bins)
1369
+ assert_(hist[0] == 0.0)
1370
+ assert_(hist[1] == 1.)
1371
+ x = [1.0001]
1372
+ bins = [[0., 0.5, 1.0]]
1373
+ hist, _ = histogramdd(x, bins=bins)
1374
+ assert_(hist[0] == 0.0)
1375
+ assert_(hist[1] == 0.0)
1376
+
1377
+
1378
+ class TestUnique(TestCase):
1379
+
1380
+ def test_simple(self):
1381
+ x = np.array([4, 3, 2, 1, 1, 2, 3, 4, 0])
1382
+ assert_(np.all(unique(x) == [0, 1, 2, 3, 4]))
1383
+ assert_(unique(np.array([1, 1, 1, 1, 1])) == np.array([1]))
1384
+ x = ['widget', 'ham', 'foo', 'bar', 'foo', 'ham']
1385
+ assert_(np.all(unique(x) == ['bar', 'foo', 'ham', 'widget']))
1386
+ x = np.array([5 + 6j, 1 + 1j, 1 + 10j, 10, 5 + 6j])
1387
+ assert_(np.all(unique(x) == [1 + 1j, 1 + 10j, 5 + 6j, 10]))
1388
+
1389
+
1390
+ class TestCheckFinite(TestCase):
1391
+
1392
+ def test_simple(self):
1393
+ a = [1, 2, 3]
1394
+ b = [1, 2, np.inf]
1395
+ c = [1, 2, np.nan]
1396
+ np.lib.asarray_chkfinite(a)
1397
+ assert_raises(ValueError, np.lib.asarray_chkfinite, b)
1398
+ assert_raises(ValueError, np.lib.asarray_chkfinite, c)
1399
+
1400
+ def test_dtype_order(self):
1401
+ # Regression test for missing dtype and order arguments
1402
+ a = [1, 2, 3]
1403
+ a = np.lib.asarray_chkfinite(a, order='F', dtype=np.float64)
1404
+ assert_(a.dtype == np.float64)
1405
+
1406
+
1407
+ class catch_warn_nfb(clear_and_catch_warnings):
1408
+
1409
+ """
1410
+ Context manager to catch, reset warnings in function_base module
1411
+
1412
+ """
1413
+ class_modules = (nfb,)
1414
+
1415
+
1416
+ class TestCorrCoef(TestCase):
1417
+ A = np.array(
1418
+ [[0.15391142, 0.18045767, 0.14197213],
1419
+ [0.70461506, 0.96474128, 0.27906989],
1420
+ [0.9297531, 0.32296769, 0.19267156]])
1421
+ B = np.array(
1422
+ [[0.10377691, 0.5417086, 0.49807457],
1423
+ [0.82872117, 0.77801674, 0.39226705],
1424
+ [0.9314666, 0.66800209, 0.03538394]])
1425
+ res1 = np.array(
1426
+ [[1., 0.9379533, -0.04931983],
1427
+ [0.9379533, 1., 0.30007991],
1428
+ [-0.04931983, 0.30007991, 1.]])
1429
+ res2 = np.array(
1430
+ [[1., 0.9379533, -0.04931983, 0.30151751, 0.66318558, 0.51532523],
1431
+ [0.9379533, 1., 0.30007991, -0.04781421, 0.88157256, 0.78052386],
1432
+ [-0.04931983, 0.30007991, 1., -0.96717111, 0.71483595, 0.83053601],
1433
+ [0.30151751, -0.04781421, -0.96717111, 1., -0.51366032, -0.66173113],
1434
+ [0.66318558, 0.88157256, 0.71483595, -0.51366032, 1., 0.98317823],
1435
+ [0.51532523, 0.78052386, 0.83053601, -0.66173113, 0.98317823, 1.]])
1436
+
1437
+ def test_non_array(self):
1438
+ assert_almost_equal(np.corrcoef([0, 1, 0], [1, 0, 1]),
1439
+ [[1., -1.], [-1., 1.]])
1440
+
1441
+ def test_simple(self):
1442
+ assert_almost_equal(corrcoef(self.A), self.res1)
1443
+ assert_almost_equal(corrcoef(self.A, self.B), self.res2)
1444
+
1445
+ def test_ddof(self):
1446
+ # ddof raises DeprecationWarning
1447
+ with catch_warn_nfb():
1448
+ warnings.simplefilter("always")
1449
+ assert_warns(DeprecationWarning, corrcoef, self.A, ddof=-1)
1450
+ warnings.simplefilter("ignore")
1451
+ # ddof has no or negligible effect on the function
1452
+ assert_almost_equal(corrcoef(self.A, ddof=-1), self.res1)
1453
+ assert_almost_equal(corrcoef(self.A, self.B, ddof=-1), self.res2)
1454
+ assert_almost_equal(corrcoef(self.A, ddof=3), self.res1)
1455
+ assert_almost_equal(corrcoef(self.A, self.B, ddof=3), self.res2)
1456
+
1457
+ def test_bias(self):
1458
+ # bias raises DeprecationWarning
1459
+ with catch_warn_nfb():
1460
+ warnings.simplefilter("always")
1461
+ assert_warns(DeprecationWarning, corrcoef, self.A, self.B, 1, 0)
1462
+ assert_warns(DeprecationWarning, corrcoef, self.A, bias=0)
1463
+ warnings.simplefilter("ignore")
1464
+ # bias has no or negligible effect on the function
1465
+ assert_almost_equal(corrcoef(self.A, bias=1), self.res1)
1466
+
1467
+ def test_complex(self):
1468
+ x = np.array([[1, 2, 3], [1j, 2j, 3j]])
1469
+ assert_allclose(corrcoef(x), np.array([[1., -1.j], [1.j, 1.]]))
1470
+
1471
+ def test_xy(self):
1472
+ x = np.array([[1, 2, 3]])
1473
+ y = np.array([[1j, 2j, 3j]])
1474
+ assert_allclose(np.corrcoef(x, y), np.array([[1., -1.j], [1.j, 1.]]))
1475
+
1476
+ def test_empty(self):
1477
+ with warnings.catch_warnings(record=True):
1478
+ warnings.simplefilter('always', RuntimeWarning)
1479
+ assert_array_equal(corrcoef(np.array([])), np.nan)
1480
+ assert_array_equal(corrcoef(np.array([]).reshape(0, 2)),
1481
+ np.array([]).reshape(0, 0))
1482
+ assert_array_equal(corrcoef(np.array([]).reshape(2, 0)),
1483
+ np.array([[np.nan, np.nan], [np.nan, np.nan]]))
1484
+
1485
+
1486
+ class TestCov(TestCase):
1487
+ x1 = np.array([[0, 2], [1, 1], [2, 0]]).T
1488
+ res1 = np.array([[1., -1.], [-1., 1.]])
1489
+ x2 = np.array([0.0, 1.0, 2.0], ndmin=2)
1490
+ frequencies = np.array([1, 4, 1])
1491
+ x2_repeats = np.array([[0.0], [1.0], [1.0], [1.0], [1.0], [2.0]]).T
1492
+ res2 = np.array([[0.4, -0.4], [-0.4, 0.4]])
1493
+ unit_frequencies = np.ones(3, dtype=np.integer)
1494
+ weights = np.array([1.0, 4.0, 1.0])
1495
+ res3 = np.array([[2. / 3., -2. / 3.], [-2. / 3., 2. / 3.]])
1496
+ unit_weights = np.ones(3)
1497
+ x3 = np.array([0.3942, 0.5969, 0.7730, 0.9918, 0.7964])
1498
+
1499
+ def test_basic(self):
1500
+ assert_allclose(cov(self.x1), self.res1)
1501
+
1502
+ def test_complex(self):
1503
+ x = np.array([[1, 2, 3], [1j, 2j, 3j]])
1504
+ assert_allclose(cov(x), np.array([[1., -1.j], [1.j, 1.]]))
1505
+
1506
+ def test_xy(self):
1507
+ x = np.array([[1, 2, 3]])
1508
+ y = np.array([[1j, 2j, 3j]])
1509
+ assert_allclose(cov(x, y), np.array([[1., -1.j], [1.j, 1.]]))
1510
+
1511
+ def test_empty(self):
1512
+ with warnings.catch_warnings(record=True):
1513
+ warnings.simplefilter('always', RuntimeWarning)
1514
+ assert_array_equal(cov(np.array([])), np.nan)
1515
+ assert_array_equal(cov(np.array([]).reshape(0, 2)),
1516
+ np.array([]).reshape(0, 0))
1517
+ assert_array_equal(cov(np.array([]).reshape(2, 0)),
1518
+ np.array([[np.nan, np.nan], [np.nan, np.nan]]))
1519
+
1520
+ def test_wrong_ddof(self):
1521
+ with warnings.catch_warnings(record=True):
1522
+ warnings.simplefilter('always', RuntimeWarning)
1523
+ assert_array_equal(cov(self.x1, ddof=5),
1524
+ np.array([[np.inf, -np.inf],
1525
+ [-np.inf, np.inf]]))
1526
+
1527
+ def test_1D_rowvar(self):
1528
+ assert_allclose(cov(self.x3), cov(self.x3, rowvar=0))
1529
+ y = np.array([0.0780, 0.3107, 0.2111, 0.0334, 0.8501])
1530
+ assert_allclose(cov(self.x3, y), cov(self.x3, y, rowvar=0))
1531
+
1532
+ def test_1D_variance(self):
1533
+ assert_allclose(cov(self.x3, ddof=1), np.var(self.x3, ddof=1))
1534
+
1535
+ def test_fweights(self):
1536
+ assert_allclose(cov(self.x2, fweights=self.frequencies),
1537
+ cov(self.x2_repeats))
1538
+ assert_allclose(cov(self.x1, fweights=self.frequencies),
1539
+ self.res2)
1540
+ assert_allclose(cov(self.x1, fweights=self.unit_frequencies),
1541
+ self.res1)
1542
+ nonint = self.frequencies + 0.5
1543
+ assert_raises(TypeError, cov, self.x1, fweights=nonint)
1544
+ f = np.ones((2, 3), dtype=np.integer)
1545
+ assert_raises(RuntimeError, cov, self.x1, fweights=f)
1546
+ f = np.ones(2, dtype=np.integer)
1547
+ assert_raises(RuntimeError, cov, self.x1, fweights=f)
1548
+ f = -1 * np.ones(3, dtype=np.integer)
1549
+ assert_raises(ValueError, cov, self.x1, fweights=f)
1550
+
1551
+ def test_aweights(self):
1552
+ assert_allclose(cov(self.x1, aweights=self.weights), self.res3)
1553
+ assert_allclose(cov(self.x1, aweights=3.0 * self.weights),
1554
+ cov(self.x1, aweights=self.weights))
1555
+ assert_allclose(cov(self.x1, aweights=self.unit_weights), self.res1)
1556
+ w = np.ones((2, 3))
1557
+ assert_raises(RuntimeError, cov, self.x1, aweights=w)
1558
+ w = np.ones(2)
1559
+ assert_raises(RuntimeError, cov, self.x1, aweights=w)
1560
+ w = -1.0 * np.ones(3)
1561
+ assert_raises(ValueError, cov, self.x1, aweights=w)
1562
+
1563
+ def test_unit_fweights_and_aweights(self):
1564
+ assert_allclose(cov(self.x2, fweights=self.frequencies,
1565
+ aweights=self.unit_weights),
1566
+ cov(self.x2_repeats))
1567
+ assert_allclose(cov(self.x1, fweights=self.frequencies,
1568
+ aweights=self.unit_weights),
1569
+ self.res2)
1570
+ assert_allclose(cov(self.x1, fweights=self.unit_frequencies,
1571
+ aweights=self.unit_weights),
1572
+ self.res1)
1573
+ assert_allclose(cov(self.x1, fweights=self.unit_frequencies,
1574
+ aweights=self.weights),
1575
+ self.res3)
1576
+ assert_allclose(cov(self.x1, fweights=self.unit_frequencies,
1577
+ aweights=3.0 * self.weights),
1578
+ cov(self.x1, aweights=self.weights))
1579
+ assert_allclose(cov(self.x1, fweights=self.unit_frequencies,
1580
+ aweights=self.unit_weights),
1581
+ self.res1)
1582
+
1583
+
1584
+ class Test_I0(TestCase):
1585
+
1586
+ def test_simple(self):
1587
+ assert_almost_equal(
1588
+ i0(0.5),
1589
+ np.array(1.0634833707413234))
1590
+
1591
+ A = np.array([0.49842636, 0.6969809, 0.22011976, 0.0155549])
1592
+ assert_almost_equal(
1593
+ i0(A),
1594
+ np.array([1.06307822, 1.12518299, 1.01214991, 1.00006049]))
1595
+
1596
+ B = np.array([[0.827002, 0.99959078],
1597
+ [0.89694769, 0.39298162],
1598
+ [0.37954418, 0.05206293],
1599
+ [0.36465447, 0.72446427],
1600
+ [0.48164949, 0.50324519]])
1601
+ assert_almost_equal(
1602
+ i0(B),
1603
+ np.array([[1.17843223, 1.26583466],
1604
+ [1.21147086, 1.03898290],
1605
+ [1.03633899, 1.00067775],
1606
+ [1.03352052, 1.13557954],
1607
+ [1.05884290, 1.06432317]]))
1608
+
1609
+
1610
+ class TestKaiser(TestCase):
1611
+
1612
+ def test_simple(self):
1613
+ assert_(np.isfinite(kaiser(1, 1.0)))
1614
+ assert_almost_equal(kaiser(0, 1.0),
1615
+ np.array([]))
1616
+ assert_almost_equal(kaiser(2, 1.0),
1617
+ np.array([0.78984831, 0.78984831]))
1618
+ assert_almost_equal(kaiser(5, 1.0),
1619
+ np.array([0.78984831, 0.94503323, 1.,
1620
+ 0.94503323, 0.78984831]))
1621
+ assert_almost_equal(kaiser(5, 1.56789),
1622
+ np.array([0.58285404, 0.88409679, 1.,
1623
+ 0.88409679, 0.58285404]))
1624
+
1625
+ def test_int_beta(self):
1626
+ kaiser(3, 4)
1627
+
1628
+
1629
+ class TestMsort(TestCase):
1630
+
1631
+ def test_simple(self):
1632
+ A = np.array([[0.44567325, 0.79115165, 0.54900530],
1633
+ [0.36844147, 0.37325583, 0.96098397],
1634
+ [0.64864341, 0.52929049, 0.39172155]])
1635
+ assert_almost_equal(
1636
+ msort(A),
1637
+ np.array([[0.36844147, 0.37325583, 0.39172155],
1638
+ [0.44567325, 0.52929049, 0.54900530],
1639
+ [0.64864341, 0.79115165, 0.96098397]]))
1640
+
1641
+
1642
+ class TestMeshgrid(TestCase):
1643
+
1644
+ def test_simple(self):
1645
+ [X, Y] = meshgrid([1, 2, 3], [4, 5, 6, 7])
1646
+ assert_array_equal(X, np.array([[1, 2, 3],
1647
+ [1, 2, 3],
1648
+ [1, 2, 3],
1649
+ [1, 2, 3]]))
1650
+ assert_array_equal(Y, np.array([[4, 4, 4],
1651
+ [5, 5, 5],
1652
+ [6, 6, 6],
1653
+ [7, 7, 7]]))
1654
+
1655
+ def test_single_input(self):
1656
+ [X] = meshgrid([1, 2, 3, 4])
1657
+ assert_array_equal(X, np.array([1, 2, 3, 4]))
1658
+
1659
+ def test_no_input(self):
1660
+ args = []
1661
+ assert_array_equal([], meshgrid(*args))
1662
+
1663
+ def test_indexing(self):
1664
+ x = [1, 2, 3]
1665
+ y = [4, 5, 6, 7]
1666
+ [X, Y] = meshgrid(x, y, indexing='ij')
1667
+ assert_array_equal(X, np.array([[1, 1, 1, 1],
1668
+ [2, 2, 2, 2],
1669
+ [3, 3, 3, 3]]))
1670
+ assert_array_equal(Y, np.array([[4, 5, 6, 7],
1671
+ [4, 5, 6, 7],
1672
+ [4, 5, 6, 7]]))
1673
+
1674
+ # Test expected shapes:
1675
+ z = [8, 9]
1676
+ assert_(meshgrid(x, y)[0].shape == (4, 3))
1677
+ assert_(meshgrid(x, y, indexing='ij')[0].shape == (3, 4))
1678
+ assert_(meshgrid(x, y, z)[0].shape == (4, 3, 2))
1679
+ assert_(meshgrid(x, y, z, indexing='ij')[0].shape == (3, 4, 2))
1680
+
1681
+ assert_raises(ValueError, meshgrid, x, y, indexing='notvalid')
1682
+
1683
+ def test_sparse(self):
1684
+ [X, Y] = meshgrid([1, 2, 3], [4, 5, 6, 7], sparse=True)
1685
+ assert_array_equal(X, np.array([[1, 2, 3]]))
1686
+ assert_array_equal(Y, np.array([[4], [5], [6], [7]]))
1687
+
1688
+ def test_invalid_arguments(self):
1689
+ # Test that meshgrid complains about invalid arguments
1690
+ # Regression test for issue #4755:
1691
+ # https://github.com/numpy/numpy/issues/4755
1692
+ assert_raises(TypeError, meshgrid,
1693
+ [1, 2, 3], [4, 5, 6, 7], indices='ij')
1694
+
1695
+
1696
+ class TestPiecewise(TestCase):
1697
+
1698
+ def test_simple(self):
1699
+ # Condition is single bool list
1700
+ x = piecewise([0, 0], [True, False], [1])
1701
+ assert_array_equal(x, [1, 0])
1702
+
1703
+ # List of conditions: single bool list
1704
+ x = piecewise([0, 0], [[True, False]], [1])
1705
+ assert_array_equal(x, [1, 0])
1706
+
1707
+ # Conditions is single bool array
1708
+ x = piecewise([0, 0], np.array([True, False]), [1])
1709
+ assert_array_equal(x, [1, 0])
1710
+
1711
+ # Condition is single int array
1712
+ x = piecewise([0, 0], np.array([1, 0]), [1])
1713
+ assert_array_equal(x, [1, 0])
1714
+
1715
+ # List of conditions: int array
1716
+ x = piecewise([0, 0], [np.array([1, 0])], [1])
1717
+ assert_array_equal(x, [1, 0])
1718
+
1719
+ x = piecewise([0, 0], [[False, True]], [lambda x:-1])
1720
+ assert_array_equal(x, [0, -1])
1721
+
1722
+ def test_two_conditions(self):
1723
+ x = piecewise([1, 2], [[True, False], [False, True]], [3, 4])
1724
+ assert_array_equal(x, [3, 4])
1725
+
1726
+ def test_default(self):
1727
+ # No value specified for x[1], should be 0
1728
+ x = piecewise([1, 2], [True, False], [2])
1729
+ assert_array_equal(x, [2, 0])
1730
+
1731
+ # Should set x[1] to 3
1732
+ x = piecewise([1, 2], [True, False], [2, 3])
1733
+ assert_array_equal(x, [2, 3])
1734
+
1735
+ def test_0d(self):
1736
+ x = np.array(3)
1737
+ y = piecewise(x, x > 3, [4, 0])
1738
+ assert_(y.ndim == 0)
1739
+ assert_(y == 0)
1740
+
1741
+ x = 5
1742
+ y = piecewise(x, [[True], [False]], [1, 0])
1743
+ assert_(y.ndim == 0)
1744
+ assert_(y == 1)
1745
+
1746
+ def test_0d_comparison(self):
1747
+ x = 3
1748
+ piecewise(x, [x <= 3, x > 3], [4, 0]) # Should succeed.
1749
+
1750
+
1751
+ class TestBincount(TestCase):
1752
+
1753
+ def test_simple(self):
1754
+ y = np.bincount(np.arange(4))
1755
+ assert_array_equal(y, np.ones(4))
1756
+
1757
+ def test_simple2(self):
1758
+ y = np.bincount(np.array([1, 5, 2, 4, 1]))
1759
+ assert_array_equal(y, np.array([0, 2, 1, 0, 1, 1]))
1760
+
1761
+ def test_simple_weight(self):
1762
+ x = np.arange(4)
1763
+ w = np.array([0.2, 0.3, 0.5, 0.1])
1764
+ y = np.bincount(x, w)
1765
+ assert_array_equal(y, w)
1766
+
1767
+ def test_simple_weight2(self):
1768
+ x = np.array([1, 2, 4, 5, 2])
1769
+ w = np.array([0.2, 0.3, 0.5, 0.1, 0.2])
1770
+ y = np.bincount(x, w)
1771
+ assert_array_equal(y, np.array([0, 0.2, 0.5, 0, 0.5, 0.1]))
1772
+
1773
+ def test_with_minlength(self):
1774
+ x = np.array([0, 1, 0, 1, 1])
1775
+ y = np.bincount(x, minlength=3)
1776
+ assert_array_equal(y, np.array([2, 3, 0]))
1777
+
1778
+ def test_with_minlength_smaller_than_maxvalue(self):
1779
+ x = np.array([0, 1, 1, 2, 2, 3, 3])
1780
+ y = np.bincount(x, minlength=2)
1781
+ assert_array_equal(y, np.array([1, 2, 2, 2]))
1782
+
1783
+ def test_with_minlength_and_weights(self):
1784
+ x = np.array([1, 2, 4, 5, 2])
1785
+ w = np.array([0.2, 0.3, 0.5, 0.1, 0.2])
1786
+ y = np.bincount(x, w, 8)
1787
+ assert_array_equal(y, np.array([0, 0.2, 0.5, 0, 0.5, 0.1, 0, 0]))
1788
+
1789
+ def test_empty(self):
1790
+ x = np.array([], dtype=int)
1791
+ y = np.bincount(x)
1792
+ assert_array_equal(x, y)
1793
+
1794
+ def test_empty_with_minlength(self):
1795
+ x = np.array([], dtype=int)
1796
+ y = np.bincount(x, minlength=5)
1797
+ assert_array_equal(y, np.zeros(5, dtype=int))
1798
+
1799
+ def test_with_incorrect_minlength(self):
1800
+ x = np.array([], dtype=int)
1801
+ assert_raises_regex(TypeError, "an integer is required",
1802
+ lambda: np.bincount(x, minlength="foobar"))
1803
+ assert_raises_regex(ValueError, "must be positive",
1804
+ lambda: np.bincount(x, minlength=-1))
1805
+ assert_raises_regex(ValueError, "must be positive",
1806
+ lambda: np.bincount(x, minlength=0))
1807
+
1808
+ x = np.arange(5)
1809
+ assert_raises_regex(TypeError, "an integer is required",
1810
+ lambda: np.bincount(x, minlength="foobar"))
1811
+ assert_raises_regex(ValueError, "minlength must be positive",
1812
+ lambda: np.bincount(x, minlength=-1))
1813
+ assert_raises_regex(ValueError, "minlength must be positive",
1814
+ lambda: np.bincount(x, minlength=0))
1815
+
1816
+
1817
+ class TestInterp(TestCase):
1818
+
1819
+ def test_exceptions(self):
1820
+ assert_raises(ValueError, interp, 0, [], [])
1821
+ assert_raises(ValueError, interp, 0, [0], [1, 2])
1822
+ assert_raises(ValueError, interp, 0, [0, 1], [1, 2], period=0)
1823
+ assert_raises(ValueError, interp, 0, [], [], period=360)
1824
+ assert_raises(ValueError, interp, 0, [0], [1, 2], period=360)
1825
+
1826
+ def test_basic(self):
1827
+ x = np.linspace(0, 1, 5)
1828
+ y = np.linspace(0, 1, 5)
1829
+ x0 = np.linspace(0, 1, 50)
1830
+ assert_almost_equal(np.interp(x0, x, y), x0)
1831
+
1832
+ def test_right_left_behavior(self):
1833
+ assert_equal(interp([-1, 0, 1], [0], [1]), [1, 1, 1])
1834
+ assert_equal(interp([-1, 0, 1], [0], [1], left=0), [0, 1, 1])
1835
+ assert_equal(interp([-1, 0, 1], [0], [1], right=0), [1, 1, 0])
1836
+ assert_equal(interp([-1, 0, 1], [0], [1], left=0, right=0), [0, 1, 0])
1837
+
1838
+ def test_scalar_interpolation_point(self):
1839
+ x = np.linspace(0, 1, 5)
1840
+ y = np.linspace(0, 1, 5)
1841
+ x0 = 0
1842
+ assert_almost_equal(np.interp(x0, x, y), x0)
1843
+ x0 = .3
1844
+ assert_almost_equal(np.interp(x0, x, y), x0)
1845
+ x0 = np.float32(.3)
1846
+ assert_almost_equal(np.interp(x0, x, y), x0)
1847
+ x0 = np.float64(.3)
1848
+ assert_almost_equal(np.interp(x0, x, y), x0)
1849
+ x0 = np.nan
1850
+ assert_almost_equal(np.interp(x0, x, y), x0)
1851
+
1852
+ def test_zero_dimensional_interpolation_point(self):
1853
+ x = np.linspace(0, 1, 5)
1854
+ y = np.linspace(0, 1, 5)
1855
+ x0 = np.array(.3)
1856
+ assert_almost_equal(np.interp(x0, x, y), x0)
1857
+ x0 = np.array(.3, dtype=object)
1858
+ assert_almost_equal(np.interp(x0, x, y), .3)
1859
+
1860
+ def test_if_len_x_is_small(self):
1861
+ xp = np.arange(0, 10, 0.0001)
1862
+ fp = np.sin(xp)
1863
+ assert_almost_equal(np.interp(np.pi, xp, fp), 0.0)
1864
+
1865
+ def test_period(self):
1866
+ x = [-180, -170, -185, 185, -10, -5, 0, 365]
1867
+ xp = [190, -190, 350, -350]
1868
+ fp = [5, 10, 3, 4]
1869
+ y = [7.5, 5., 8.75, 6.25, 3., 3.25, 3.5, 3.75]
1870
+ assert_almost_equal(np.interp(x, xp, fp, period=360), y)
1871
+ x = np.array(x, order='F').reshape(2, -1)
1872
+ y = np.array(y, order='C').reshape(2, -1)
1873
+ assert_almost_equal(np.interp(x, xp, fp, period=360), y)
1874
+
1875
+
1876
+ def compare_results(res, desired):
1877
+ for i in range(len(desired)):
1878
+ assert_array_equal(res[i], desired[i])
1879
+
1880
+
1881
+ class TestScoreatpercentile(TestCase):
1882
+
1883
+ def test_basic(self):
1884
+ x = np.arange(8) * 0.5
1885
+ assert_equal(np.percentile(x, 0), 0.)
1886
+ assert_equal(np.percentile(x, 100), 3.5)
1887
+ assert_equal(np.percentile(x, 50), 1.75)
1888
+ x[1] = np.nan
1889
+ with warnings.catch_warnings(record=True) as w:
1890
+ warnings.filterwarnings('always', '', RuntimeWarning)
1891
+ assert_equal(np.percentile(x, 0), np.nan)
1892
+ assert_equal(np.percentile(x, 0, interpolation='nearest'), np.nan)
1893
+ assert_(w[0].category is RuntimeWarning)
1894
+
1895
+ def test_api(self):
1896
+ d = np.ones(5)
1897
+ np.percentile(d, 5, None, None, False)
1898
+ np.percentile(d, 5, None, None, False, 'linear')
1899
+ o = np.ones((1,))
1900
+ np.percentile(d, 5, None, o, False, 'linear')
1901
+
1902
+ def test_2D(self):
1903
+ x = np.array([[1, 1, 1],
1904
+ [1, 1, 1],
1905
+ [4, 4, 3],
1906
+ [1, 1, 1],
1907
+ [1, 1, 1]])
1908
+ assert_array_equal(np.percentile(x, 50, axis=0), [1, 1, 1])
1909
+
1910
+ def test_linear(self):
1911
+
1912
+ # Test defaults
1913
+ assert_equal(np.percentile(range(10), 50), 4.5)
1914
+
1915
+ # explicitly specify interpolation_method 'fraction' (the default)
1916
+ assert_equal(np.percentile(range(10), 50,
1917
+ interpolation='linear'), 4.5)
1918
+
1919
+ def test_lower_higher(self):
1920
+
1921
+ # interpolation_method 'lower'/'higher'
1922
+ assert_equal(np.percentile(range(10), 50,
1923
+ interpolation='lower'), 4)
1924
+ assert_equal(np.percentile(range(10), 50,
1925
+ interpolation='higher'), 5)
1926
+
1927
+ def test_midpoint(self):
1928
+ assert_equal(np.percentile(range(10), 51,
1929
+ interpolation='midpoint'), 4.5)
1930
+
1931
+ def test_nearest(self):
1932
+ assert_equal(np.percentile(range(10), 51,
1933
+ interpolation='nearest'), 5)
1934
+ assert_equal(np.percentile(range(10), 49,
1935
+ interpolation='nearest'), 4)
1936
+
1937
+ def test_sequence(self):
1938
+ x = np.arange(8) * 0.5
1939
+ assert_equal(np.percentile(x, [0, 100, 50]), [0, 3.5, 1.75])
1940
+
1941
+ def test_axis(self):
1942
+ x = np.arange(12).reshape(3, 4)
1943
+
1944
+ assert_equal(np.percentile(x, (25, 50, 100)), [2.75, 5.5, 11.0])
1945
+
1946
+ r0 = [[2, 3, 4, 5], [4, 5, 6, 7], [8, 9, 10, 11]]
1947
+ assert_equal(np.percentile(x, (25, 50, 100), axis=0), r0)
1948
+
1949
+ r1 = [[0.75, 1.5, 3], [4.75, 5.5, 7], [8.75, 9.5, 11]]
1950
+ assert_equal(np.percentile(x, (25, 50, 100), axis=1), np.array(r1).T)
1951
+
1952
+ # ensure qth axis is always first as with np.array(old_percentile(..))
1953
+ x = np.arange(3 * 4 * 5 * 6).reshape(3, 4, 5, 6)
1954
+ assert_equal(np.percentile(x, (25, 50)).shape, (2,))
1955
+ assert_equal(np.percentile(x, (25, 50, 75)).shape, (3,))
1956
+ assert_equal(np.percentile(x, (25, 50), axis=0).shape, (2, 4, 5, 6))
1957
+ assert_equal(np.percentile(x, (25, 50), axis=1).shape, (2, 3, 5, 6))
1958
+ assert_equal(np.percentile(x, (25, 50), axis=2).shape, (2, 3, 4, 6))
1959
+ assert_equal(np.percentile(x, (25, 50), axis=3).shape, (2, 3, 4, 5))
1960
+ assert_equal(
1961
+ np.percentile(x, (25, 50, 75), axis=1).shape, (3, 3, 5, 6))
1962
+ assert_equal(np.percentile(x, (25, 50),
1963
+ interpolation="higher").shape, (2,))
1964
+ assert_equal(np.percentile(x, (25, 50, 75),
1965
+ interpolation="higher").shape, (3,))
1966
+ assert_equal(np.percentile(x, (25, 50), axis=0,
1967
+ interpolation="higher").shape, (2, 4, 5, 6))
1968
+ assert_equal(np.percentile(x, (25, 50), axis=1,
1969
+ interpolation="higher").shape, (2, 3, 5, 6))
1970
+ assert_equal(np.percentile(x, (25, 50), axis=2,
1971
+ interpolation="higher").shape, (2, 3, 4, 6))
1972
+ assert_equal(np.percentile(x, (25, 50), axis=3,
1973
+ interpolation="higher").shape, (2, 3, 4, 5))
1974
+ assert_equal(np.percentile(x, (25, 50, 75), axis=1,
1975
+ interpolation="higher").shape, (3, 3, 5, 6))
1976
+
1977
+ def test_scalar_q(self):
1978
+ # test for no empty dimensions for compatiblity with old percentile
1979
+ x = np.arange(12).reshape(3, 4)
1980
+ assert_equal(np.percentile(x, 50), 5.5)
1981
+ self.assertTrue(np.isscalar(np.percentile(x, 50)))
1982
+ r0 = np.array([4., 5., 6., 7.])
1983
+ assert_equal(np.percentile(x, 50, axis=0), r0)
1984
+ assert_equal(np.percentile(x, 50, axis=0).shape, r0.shape)
1985
+ r1 = np.array([1.5, 5.5, 9.5])
1986
+ assert_almost_equal(np.percentile(x, 50, axis=1), r1)
1987
+ assert_equal(np.percentile(x, 50, axis=1).shape, r1.shape)
1988
+
1989
+ out = np.empty(1)
1990
+ assert_equal(np.percentile(x, 50, out=out), 5.5)
1991
+ assert_equal(out, 5.5)
1992
+ out = np.empty(4)
1993
+ assert_equal(np.percentile(x, 50, axis=0, out=out), r0)
1994
+ assert_equal(out, r0)
1995
+ out = np.empty(3)
1996
+ assert_equal(np.percentile(x, 50, axis=1, out=out), r1)
1997
+ assert_equal(out, r1)
1998
+
1999
+ # test for no empty dimensions for compatiblity with old percentile
2000
+ x = np.arange(12).reshape(3, 4)
2001
+ assert_equal(np.percentile(x, 50, interpolation='lower'), 5.)
2002
+ self.assertTrue(np.isscalar(np.percentile(x, 50)))
2003
+ r0 = np.array([4., 5., 6., 7.])
2004
+ c0 = np.percentile(x, 50, interpolation='lower', axis=0)
2005
+ assert_equal(c0, r0)
2006
+ assert_equal(c0.shape, r0.shape)
2007
+ r1 = np.array([1., 5., 9.])
2008
+ c1 = np.percentile(x, 50, interpolation='lower', axis=1)
2009
+ assert_almost_equal(c1, r1)
2010
+ assert_equal(c1.shape, r1.shape)
2011
+
2012
+ out = np.empty((), dtype=x.dtype)
2013
+ c = np.percentile(x, 50, interpolation='lower', out=out)
2014
+ assert_equal(c, 5)
2015
+ assert_equal(out, 5)
2016
+ out = np.empty(4, dtype=x.dtype)
2017
+ c = np.percentile(x, 50, interpolation='lower', axis=0, out=out)
2018
+ assert_equal(c, r0)
2019
+ assert_equal(out, r0)
2020
+ out = np.empty(3, dtype=x.dtype)
2021
+ c = np.percentile(x, 50, interpolation='lower', axis=1, out=out)
2022
+ assert_equal(c, r1)
2023
+ assert_equal(out, r1)
2024
+
2025
+ def test_exception(self):
2026
+ assert_raises(ValueError, np.percentile, [1, 2], 56,
2027
+ interpolation='foobar')
2028
+ assert_raises(ValueError, np.percentile, [1], 101)
2029
+ assert_raises(ValueError, np.percentile, [1], -1)
2030
+ assert_raises(ValueError, np.percentile, [1], list(range(50)) + [101])
2031
+ assert_raises(ValueError, np.percentile, [1], list(range(50)) + [-0.1])
2032
+
2033
+ def test_percentile_list(self):
2034
+ assert_equal(np.percentile([1, 2, 3], 0), 1)
2035
+
2036
+ def test_percentile_out(self):
2037
+ x = np.array([1, 2, 3])
2038
+ y = np.zeros((3,))
2039
+ p = (1, 2, 3)
2040
+ np.percentile(x, p, out=y)
2041
+ assert_equal(y, np.percentile(x, p))
2042
+
2043
+ x = np.array([[1, 2, 3],
2044
+ [4, 5, 6]])
2045
+
2046
+ y = np.zeros((3, 3))
2047
+ np.percentile(x, p, axis=0, out=y)
2048
+ assert_equal(y, np.percentile(x, p, axis=0))
2049
+
2050
+ y = np.zeros((3, 2))
2051
+ np.percentile(x, p, axis=1, out=y)
2052
+ assert_equal(y, np.percentile(x, p, axis=1))
2053
+
2054
+ x = np.arange(12).reshape(3, 4)
2055
+ # q.dim > 1, float
2056
+ r0 = np.array([[2., 3., 4., 5.], [4., 5., 6., 7.]])
2057
+ out = np.empty((2, 4))
2058
+ assert_equal(np.percentile(x, (25, 50), axis=0, out=out), r0)
2059
+ assert_equal(out, r0)
2060
+ r1 = np.array([[0.75, 4.75, 8.75], [1.5, 5.5, 9.5]])
2061
+ out = np.empty((2, 3))
2062
+ assert_equal(np.percentile(x, (25, 50), axis=1, out=out), r1)
2063
+ assert_equal(out, r1)
2064
+
2065
+ # q.dim > 1, int
2066
+ r0 = np.array([[0, 1, 2, 3], [4, 5, 6, 7]])
2067
+ out = np.empty((2, 4), dtype=x.dtype)
2068
+ c = np.percentile(x, (25, 50), interpolation='lower', axis=0, out=out)
2069
+ assert_equal(c, r0)
2070
+ assert_equal(out, r0)
2071
+ r1 = np.array([[0, 4, 8], [1, 5, 9]])
2072
+ out = np.empty((2, 3), dtype=x.dtype)
2073
+ c = np.percentile(x, (25, 50), interpolation='lower', axis=1, out=out)
2074
+ assert_equal(c, r1)
2075
+ assert_equal(out, r1)
2076
+
2077
+ def test_percentile_empty_dim(self):
2078
+ # empty dims are preserved
2079
+ d = np.arange(11 * 2).reshape(11, 1, 2, 1)
2080
+ assert_array_equal(np.percentile(d, 50, axis=0).shape, (1, 2, 1))
2081
+ assert_array_equal(np.percentile(d, 50, axis=1).shape, (11, 2, 1))
2082
+ assert_array_equal(np.percentile(d, 50, axis=2).shape, (11, 1, 1))
2083
+ assert_array_equal(np.percentile(d, 50, axis=3).shape, (11, 1, 2))
2084
+ assert_array_equal(np.percentile(d, 50, axis=-1).shape, (11, 1, 2))
2085
+ assert_array_equal(np.percentile(d, 50, axis=-2).shape, (11, 1, 1))
2086
+ assert_array_equal(np.percentile(d, 50, axis=-3).shape, (11, 2, 1))
2087
+ assert_array_equal(np.percentile(d, 50, axis=-4).shape, (1, 2, 1))
2088
+
2089
+ assert_array_equal(np.percentile(d, 50, axis=2,
2090
+ interpolation='midpoint').shape,
2091
+ (11, 1, 1))
2092
+ assert_array_equal(np.percentile(d, 50, axis=-2,
2093
+ interpolation='midpoint').shape,
2094
+ (11, 1, 1))
2095
+
2096
+ assert_array_equal(np.array(np.percentile(d, [10, 50], axis=0)).shape,
2097
+ (2, 1, 2, 1))
2098
+ assert_array_equal(np.array(np.percentile(d, [10, 50], axis=1)).shape,
2099
+ (2, 11, 2, 1))
2100
+ assert_array_equal(np.array(np.percentile(d, [10, 50], axis=2)).shape,
2101
+ (2, 11, 1, 1))
2102
+ assert_array_equal(np.array(np.percentile(d, [10, 50], axis=3)).shape,
2103
+ (2, 11, 1, 2))
2104
+
2105
+ def test_percentile_no_overwrite(self):
2106
+ a = np.array([2, 3, 4, 1])
2107
+ np.percentile(a, [50], overwrite_input=False)
2108
+ assert_equal(a, np.array([2, 3, 4, 1]))
2109
+
2110
+ a = np.array([2, 3, 4, 1])
2111
+ np.percentile(a, [50])
2112
+ assert_equal(a, np.array([2, 3, 4, 1]))
2113
+
2114
+ def test_no_p_overwrite(self):
2115
+ p = np.linspace(0., 100., num=5)
2116
+ np.percentile(np.arange(100.), p, interpolation="midpoint")
2117
+ assert_array_equal(p, np.linspace(0., 100., num=5))
2118
+ p = np.linspace(0., 100., num=5).tolist()
2119
+ np.percentile(np.arange(100.), p, interpolation="midpoint")
2120
+ assert_array_equal(p, np.linspace(0., 100., num=5).tolist())
2121
+
2122
+ def test_percentile_overwrite(self):
2123
+ a = np.array([2, 3, 4, 1])
2124
+ b = np.percentile(a, [50], overwrite_input=True)
2125
+ assert_equal(b, np.array([2.5]))
2126
+
2127
+ b = np.percentile([2, 3, 4, 1], [50], overwrite_input=True)
2128
+ assert_equal(b, np.array([2.5]))
2129
+
2130
+ def test_extended_axis(self):
2131
+ o = np.random.normal(size=(71, 23))
2132
+ x = np.dstack([o] * 10)
2133
+ assert_equal(np.percentile(x, 30, axis=(0, 1)), np.percentile(o, 30))
2134
+ x = np.rollaxis(x, -1, 0)
2135
+ assert_equal(np.percentile(x, 30, axis=(-2, -1)), np.percentile(o, 30))
2136
+ x = x.swapaxes(0, 1).copy()
2137
+ assert_equal(np.percentile(x, 30, axis=(0, -1)), np.percentile(o, 30))
2138
+ x = x.swapaxes(0, 1).copy()
2139
+
2140
+ assert_equal(np.percentile(x, [25, 60], axis=(0, 1, 2)),
2141
+ np.percentile(x, [25, 60], axis=None))
2142
+ assert_equal(np.percentile(x, [25, 60], axis=(0,)),
2143
+ np.percentile(x, [25, 60], axis=0))
2144
+
2145
+ d = np.arange(3 * 5 * 7 * 11).reshape(3, 5, 7, 11)
2146
+ np.random.shuffle(d)
2147
+ assert_equal(np.percentile(d, 25, axis=(0, 1, 2))[0],
2148
+ np.percentile(d[:,:,:, 0].flatten(), 25))
2149
+ assert_equal(np.percentile(d, [10, 90], axis=(0, 1, 3))[:, 1],
2150
+ np.percentile(d[:,:, 1,:].flatten(), [10, 90]))
2151
+ assert_equal(np.percentile(d, 25, axis=(3, 1, -4))[2],
2152
+ np.percentile(d[:,:, 2,:].flatten(), 25))
2153
+ assert_equal(np.percentile(d, 25, axis=(3, 1, 2))[2],
2154
+ np.percentile(d[2,:,:,:].flatten(), 25))
2155
+ assert_equal(np.percentile(d, 25, axis=(3, 2))[2, 1],
2156
+ np.percentile(d[2, 1,:,:].flatten(), 25))
2157
+ assert_equal(np.percentile(d, 25, axis=(1, -2))[2, 1],
2158
+ np.percentile(d[2,:,:, 1].flatten(), 25))
2159
+ assert_equal(np.percentile(d, 25, axis=(1, 3))[2, 2],
2160
+ np.percentile(d[2,:, 2,:].flatten(), 25))
2161
+
2162
+ def test_extended_axis_invalid(self):
2163
+ d = np.ones((3, 5, 7, 11))
2164
+ assert_raises(IndexError, np.percentile, d, axis=-5, q=25)
2165
+ assert_raises(IndexError, np.percentile, d, axis=(0, -5), q=25)
2166
+ assert_raises(IndexError, np.percentile, d, axis=4, q=25)
2167
+ assert_raises(IndexError, np.percentile, d, axis=(0, 4), q=25)
2168
+ assert_raises(ValueError, np.percentile, d, axis=(1, 1), q=25)
2169
+
2170
+ def test_keepdims(self):
2171
+ d = np.ones((3, 5, 7, 11))
2172
+ assert_equal(np.percentile(d, 7, axis=None, keepdims=True).shape,
2173
+ (1, 1, 1, 1))
2174
+ assert_equal(np.percentile(d, 7, axis=(0, 1), keepdims=True).shape,
2175
+ (1, 1, 7, 11))
2176
+ assert_equal(np.percentile(d, 7, axis=(0, 3), keepdims=True).shape,
2177
+ (1, 5, 7, 1))
2178
+ assert_equal(np.percentile(d, 7, axis=(1,), keepdims=True).shape,
2179
+ (3, 1, 7, 11))
2180
+ assert_equal(np.percentile(d, 7, (0, 1, 2, 3), keepdims=True).shape,
2181
+ (1, 1, 1, 1))
2182
+ assert_equal(np.percentile(d, 7, axis=(0, 1, 3), keepdims=True).shape,
2183
+ (1, 1, 7, 1))
2184
+
2185
+ assert_equal(np.percentile(d, [1, 7], axis=(0, 1, 3),
2186
+ keepdims=True).shape, (2, 1, 1, 7, 1))
2187
+ assert_equal(np.percentile(d, [1, 7], axis=(0, 3),
2188
+ keepdims=True).shape, (2, 1, 5, 7, 1))
2189
+
2190
+ def test_out(self):
2191
+ o = np.zeros((4,))
2192
+ d = np.ones((3, 4))
2193
+ assert_equal(np.percentile(d, 0, 0, out=o), o)
2194
+ assert_equal(np.percentile(d, 0, 0, interpolation='nearest', out=o), o)
2195
+ o = np.zeros((3,))
2196
+ assert_equal(np.percentile(d, 1, 1, out=o), o)
2197
+ assert_equal(np.percentile(d, 1, 1, interpolation='nearest', out=o), o)
2198
+
2199
+ o = np.zeros(())
2200
+ assert_equal(np.percentile(d, 2, out=o), o)
2201
+ assert_equal(np.percentile(d, 2, interpolation='nearest', out=o), o)
2202
+
2203
+ def test_out_nan(self):
2204
+ with warnings.catch_warnings(record=True):
2205
+ warnings.filterwarnings('always', '', RuntimeWarning)
2206
+ o = np.zeros((4,))
2207
+ d = np.ones((3, 4))
2208
+ d[2, 1] = np.nan
2209
+ assert_equal(np.percentile(d, 0, 0, out=o), o)
2210
+ assert_equal(
2211
+ np.percentile(d, 0, 0, interpolation='nearest', out=o), o)
2212
+ o = np.zeros((3,))
2213
+ assert_equal(np.percentile(d, 1, 1, out=o), o)
2214
+ assert_equal(
2215
+ np.percentile(d, 1, 1, interpolation='nearest', out=o), o)
2216
+ o = np.zeros(())
2217
+ assert_equal(np.percentile(d, 1, out=o), o)
2218
+ assert_equal(
2219
+ np.percentile(d, 1, interpolation='nearest', out=o), o)
2220
+
2221
+ def test_nan_behavior(self):
2222
+ a = np.arange(24, dtype=float)
2223
+ a[2] = np.nan
2224
+ with warnings.catch_warnings(record=True) as w:
2225
+ warnings.filterwarnings('always', '', RuntimeWarning)
2226
+ assert_equal(np.percentile(a, 0.3), np.nan)
2227
+ assert_equal(np.percentile(a, 0.3, axis=0), np.nan)
2228
+ assert_equal(np.percentile(a, [0.3, 0.6], axis=0),
2229
+ np.array([np.nan] * 2))
2230
+ assert_(w[0].category is RuntimeWarning)
2231
+ assert_(w[1].category is RuntimeWarning)
2232
+
2233
+ a = np.arange(24, dtype=float).reshape(2, 3, 4)
2234
+ a[1, 2, 3] = np.nan
2235
+ a[1, 1, 2] = np.nan
2236
+
2237
+ # no axis
2238
+ with warnings.catch_warnings(record=True) as w:
2239
+ warnings.filterwarnings('always', '', RuntimeWarning)
2240
+ assert_equal(np.percentile(a, 0.3), np.nan)
2241
+ assert_equal(np.percentile(a, 0.3).ndim, 0)
2242
+ assert_(w[0].category is RuntimeWarning)
2243
+
2244
+ # axis0 zerod
2245
+ b = np.percentile(np.arange(24, dtype=float).reshape(2, 3, 4), 0.3, 0)
2246
+ b[2, 3] = np.nan
2247
+ b[1, 2] = np.nan
2248
+ with warnings.catch_warnings(record=True) as w:
2249
+ warnings.filterwarnings('always', '', RuntimeWarning)
2250
+ assert_equal(np.percentile(a, 0.3, 0), b)
2251
+
2252
+ # axis0 not zerod
2253
+ b = np.percentile(np.arange(24, dtype=float).reshape(2, 3, 4),
2254
+ [0.3, 0.6], 0)
2255
+ b[:, 2, 3] = np.nan
2256
+ b[:, 1, 2] = np.nan
2257
+ with warnings.catch_warnings(record=True) as w:
2258
+ warnings.filterwarnings('always', '', RuntimeWarning)
2259
+ assert_equal(np.percentile(a, [0.3, 0.6], 0), b)
2260
+
2261
+ # axis1 zerod
2262
+ b = np.percentile(np.arange(24, dtype=float).reshape(2, 3, 4), 0.3, 1)
2263
+ b[1, 3] = np.nan
2264
+ b[1, 2] = np.nan
2265
+ with warnings.catch_warnings(record=True) as w:
2266
+ warnings.filterwarnings('always', '', RuntimeWarning)
2267
+ assert_equal(np.percentile(a, 0.3, 1), b)
2268
+ # axis1 not zerod
2269
+ b = np.percentile(
2270
+ np.arange(24, dtype=float).reshape(2, 3, 4), [0.3, 0.6], 1)
2271
+ b[:, 1, 3] = np.nan
2272
+ b[:, 1, 2] = np.nan
2273
+ with warnings.catch_warnings(record=True) as w:
2274
+ warnings.filterwarnings('always', '', RuntimeWarning)
2275
+ assert_equal(np.percentile(a, [0.3, 0.6], 1), b)
2276
+
2277
+ # axis02 zerod
2278
+ b = np.percentile(
2279
+ np.arange(24, dtype=float).reshape(2, 3, 4), 0.3, (0, 2))
2280
+ b[1] = np.nan
2281
+ b[2] = np.nan
2282
+ with warnings.catch_warnings(record=True) as w:
2283
+ warnings.filterwarnings('always', '', RuntimeWarning)
2284
+ assert_equal(np.percentile(a, 0.3, (0, 2)), b)
2285
+ # axis02 not zerod
2286
+ b = np.percentile(np.arange(24, dtype=float).reshape(2, 3, 4),
2287
+ [0.3, 0.6], (0, 2))
2288
+ b[:, 1] = np.nan
2289
+ b[:, 2] = np.nan
2290
+ with warnings.catch_warnings(record=True) as w:
2291
+ warnings.filterwarnings('always', '', RuntimeWarning)
2292
+ assert_equal(np.percentile(a, [0.3, 0.6], (0, 2)), b)
2293
+ # axis02 not zerod with nearest interpolation
2294
+ b = np.percentile(np.arange(24, dtype=float).reshape(2, 3, 4),
2295
+ [0.3, 0.6], (0, 2), interpolation='nearest')
2296
+ b[:, 1] = np.nan
2297
+ b[:, 2] = np.nan
2298
+ with warnings.catch_warnings(record=True) as w:
2299
+ warnings.filterwarnings('always', '', RuntimeWarning)
2300
+ assert_equal(np.percentile(
2301
+ a, [0.3, 0.6], (0, 2), interpolation='nearest'), b)
2302
+
2303
+
2304
+ class TestMedian(TestCase):
2305
+
2306
+ def test_basic(self):
2307
+ a0 = np.array(1)
2308
+ a1 = np.arange(2)
2309
+ a2 = np.arange(6).reshape(2, 3)
2310
+ assert_equal(np.median(a0), 1)
2311
+ assert_allclose(np.median(a1), 0.5)
2312
+ assert_allclose(np.median(a2), 2.5)
2313
+ assert_allclose(np.median(a2, axis=0), [1.5, 2.5, 3.5])
2314
+ assert_equal(np.median(a2, axis=1), [1, 4])
2315
+ assert_allclose(np.median(a2, axis=None), 2.5)
2316
+
2317
+ a = np.array([0.0444502, 0.0463301, 0.141249, 0.0606775])
2318
+ assert_almost_equal((a[1] + a[3]) / 2., np.median(a))
2319
+ a = np.array([0.0463301, 0.0444502, 0.141249])
2320
+ assert_equal(a[0], np.median(a))
2321
+ a = np.array([0.0444502, 0.141249, 0.0463301])
2322
+ assert_equal(a[-1], np.median(a))
2323
+ # check array scalar result
2324
+ assert_equal(np.median(a).ndim, 0)
2325
+ a[1] = np.nan
2326
+ with warnings.catch_warnings(record=True) as w:
2327
+ warnings.filterwarnings('always', '', RuntimeWarning)
2328
+ assert_equal(np.median(a).ndim, 0)
2329
+ assert_(w[0].category is RuntimeWarning)
2330
+
2331
+ def test_axis_keyword(self):
2332
+ a3 = np.array([[2, 3],
2333
+ [0, 1],
2334
+ [6, 7],
2335
+ [4, 5]])
2336
+ for a in [a3, np.random.randint(0, 100, size=(2, 3, 4))]:
2337
+ orig = a.copy()
2338
+ np.median(a, axis=None)
2339
+ for ax in range(a.ndim):
2340
+ np.median(a, axis=ax)
2341
+ assert_array_equal(a, orig)
2342
+
2343
+ assert_allclose(np.median(a3, axis=0), [3, 4])
2344
+ assert_allclose(np.median(a3.T, axis=1), [3, 4])
2345
+ assert_allclose(np.median(a3), 3.5)
2346
+ assert_allclose(np.median(a3, axis=None), 3.5)
2347
+ assert_allclose(np.median(a3.T), 3.5)
2348
+
2349
+ def test_overwrite_keyword(self):
2350
+ a3 = np.array([[2, 3],
2351
+ [0, 1],
2352
+ [6, 7],
2353
+ [4, 5]])
2354
+ a0 = np.array(1)
2355
+ a1 = np.arange(2)
2356
+ a2 = np.arange(6).reshape(2, 3)
2357
+ assert_allclose(np.median(a0.copy(), overwrite_input=True), 1)
2358
+ assert_allclose(np.median(a1.copy(), overwrite_input=True), 0.5)
2359
+ assert_allclose(np.median(a2.copy(), overwrite_input=True), 2.5)
2360
+ assert_allclose(np.median(a2.copy(), overwrite_input=True, axis=0),
2361
+ [1.5, 2.5, 3.5])
2362
+ assert_allclose(
2363
+ np.median(a2.copy(), overwrite_input=True, axis=1), [1, 4])
2364
+ assert_allclose(
2365
+ np.median(a2.copy(), overwrite_input=True, axis=None), 2.5)
2366
+ assert_allclose(
2367
+ np.median(a3.copy(), overwrite_input=True, axis=0), [3, 4])
2368
+ assert_allclose(np.median(a3.T.copy(), overwrite_input=True, axis=1),
2369
+ [3, 4])
2370
+
2371
+ a4 = np.arange(3 * 4 * 5, dtype=np.float32).reshape((3, 4, 5))
2372
+ map(np.random.shuffle, a4)
2373
+ assert_allclose(np.median(a4, axis=None),
2374
+ np.median(a4.copy(), axis=None, overwrite_input=True))
2375
+ assert_allclose(np.median(a4, axis=0),
2376
+ np.median(a4.copy(), axis=0, overwrite_input=True))
2377
+ assert_allclose(np.median(a4, axis=1),
2378
+ np.median(a4.copy(), axis=1, overwrite_input=True))
2379
+ assert_allclose(np.median(a4, axis=2),
2380
+ np.median(a4.copy(), axis=2, overwrite_input=True))
2381
+
2382
+ def test_array_like(self):
2383
+ x = [1, 2, 3]
2384
+ assert_almost_equal(np.median(x), 2)
2385
+ x2 = [x]
2386
+ assert_almost_equal(np.median(x2), 2)
2387
+ assert_allclose(np.median(x2, axis=0), x)
2388
+
2389
+ def test_subclass(self):
2390
+ # gh-3846
2391
+ class MySubClass(np.ndarray):
2392
+
2393
+ def __new__(cls, input_array, info=None):
2394
+ obj = np.asarray(input_array).view(cls)
2395
+ obj.info = info
2396
+ return obj
2397
+
2398
+ def mean(self, axis=None, dtype=None, out=None):
2399
+ return -7
2400
+
2401
+ a = MySubClass([1, 2, 3])
2402
+ assert_equal(np.median(a), -7)
2403
+
2404
+ def test_out(self):
2405
+ o = np.zeros((4,))
2406
+ d = np.ones((3, 4))
2407
+ assert_equal(np.median(d, 0, out=o), o)
2408
+ o = np.zeros((3,))
2409
+ assert_equal(np.median(d, 1, out=o), o)
2410
+ o = np.zeros(())
2411
+ assert_equal(np.median(d, out=o), o)
2412
+
2413
+ def test_out_nan(self):
2414
+ with warnings.catch_warnings(record=True):
2415
+ warnings.filterwarnings('always', '', RuntimeWarning)
2416
+ o = np.zeros((4,))
2417
+ d = np.ones((3, 4))
2418
+ d[2, 1] = np.nan
2419
+ assert_equal(np.median(d, 0, out=o), o)
2420
+ o = np.zeros((3,))
2421
+ assert_equal(np.median(d, 1, out=o), o)
2422
+ o = np.zeros(())
2423
+ assert_equal(np.median(d, out=o), o)
2424
+
2425
+ def test_nan_behavior(self):
2426
+ a = np.arange(24, dtype=float)
2427
+ a[2] = np.nan
2428
+ with warnings.catch_warnings(record=True) as w:
2429
+ warnings.filterwarnings('always', '', RuntimeWarning)
2430
+ assert_equal(np.median(a), np.nan)
2431
+ assert_equal(np.median(a, axis=0), np.nan)
2432
+ assert_(w[0].category is RuntimeWarning)
2433
+ assert_(w[1].category is RuntimeWarning)
2434
+
2435
+ a = np.arange(24, dtype=float).reshape(2, 3, 4)
2436
+ a[1, 2, 3] = np.nan
2437
+ a[1, 1, 2] = np.nan
2438
+
2439
+ # no axis
2440
+ with warnings.catch_warnings(record=True) as w:
2441
+ warnings.filterwarnings('always', '', RuntimeWarning)
2442
+ assert_equal(np.median(a), np.nan)
2443
+ assert_equal(np.median(a).ndim, 0)
2444
+ assert_(w[0].category is RuntimeWarning)
2445
+
2446
+ # axis0
2447
+ b = np.median(np.arange(24, dtype=float).reshape(2, 3, 4), 0)
2448
+ b[2, 3] = np.nan
2449
+ b[1, 2] = np.nan
2450
+ with warnings.catch_warnings(record=True) as w:
2451
+ warnings.filterwarnings('always', '', RuntimeWarning)
2452
+ assert_equal(np.median(a, 0), b)
2453
+ assert_equal(len(w), 1)
2454
+
2455
+ # axis1
2456
+ b = np.median(np.arange(24, dtype=float).reshape(2, 3, 4), 1)
2457
+ b[1, 3] = np.nan
2458
+ b[1, 2] = np.nan
2459
+ with warnings.catch_warnings(record=True) as w:
2460
+ warnings.filterwarnings('always', '', RuntimeWarning)
2461
+ assert_equal(np.median(a, 1), b)
2462
+ assert_equal(len(w), 1)
2463
+
2464
+ # axis02
2465
+ b = np.median(np.arange(24, dtype=float).reshape(2, 3, 4), (0, 2))
2466
+ b[1] = np.nan
2467
+ b[2] = np.nan
2468
+ with warnings.catch_warnings(record=True) as w:
2469
+ warnings.filterwarnings('always', '', RuntimeWarning)
2470
+ assert_equal(np.median(a, (0, 2)), b)
2471
+ assert_equal(len(w), 1)
2472
+
2473
+ def test_object(self):
2474
+ o = np.arange(7.)
2475
+ assert_(type(np.median(o.astype(object))), float)
2476
+ o[2] = np.nan
2477
+ assert_(type(np.median(o.astype(object))), float)
2478
+
2479
+ def test_extended_axis(self):
2480
+ o = np.random.normal(size=(71, 23))
2481
+ x = np.dstack([o] * 10)
2482
+ assert_equal(np.median(x, axis=(0, 1)), np.median(o))
2483
+ x = np.rollaxis(x, -1, 0)
2484
+ assert_equal(np.median(x, axis=(-2, -1)), np.median(o))
2485
+ x = x.swapaxes(0, 1).copy()
2486
+ assert_equal(np.median(x, axis=(0, -1)), np.median(o))
2487
+
2488
+ assert_equal(np.median(x, axis=(0, 1, 2)), np.median(x, axis=None))
2489
+ assert_equal(np.median(x, axis=(0, )), np.median(x, axis=0))
2490
+ assert_equal(np.median(x, axis=(-1, )), np.median(x, axis=-1))
2491
+
2492
+ d = np.arange(3 * 5 * 7 * 11).reshape(3, 5, 7, 11)
2493
+ np.random.shuffle(d)
2494
+ assert_equal(np.median(d, axis=(0, 1, 2))[0],
2495
+ np.median(d[:,:,:, 0].flatten()))
2496
+ assert_equal(np.median(d, axis=(0, 1, 3))[1],
2497
+ np.median(d[:,:, 1,:].flatten()))
2498
+ assert_equal(np.median(d, axis=(3, 1, -4))[2],
2499
+ np.median(d[:,:, 2,:].flatten()))
2500
+ assert_equal(np.median(d, axis=(3, 1, 2))[2],
2501
+ np.median(d[2,:,:,:].flatten()))
2502
+ assert_equal(np.median(d, axis=(3, 2))[2, 1],
2503
+ np.median(d[2, 1,:,:].flatten()))
2504
+ assert_equal(np.median(d, axis=(1, -2))[2, 1],
2505
+ np.median(d[2,:,:, 1].flatten()))
2506
+ assert_equal(np.median(d, axis=(1, 3))[2, 2],
2507
+ np.median(d[2,:, 2,:].flatten()))
2508
+
2509
+ def test_extended_axis_invalid(self):
2510
+ d = np.ones((3, 5, 7, 11))
2511
+ assert_raises(IndexError, np.median, d, axis=-5)
2512
+ assert_raises(IndexError, np.median, d, axis=(0, -5))
2513
+ assert_raises(IndexError, np.median, d, axis=4)
2514
+ assert_raises(IndexError, np.median, d, axis=(0, 4))
2515
+ assert_raises(ValueError, np.median, d, axis=(1, 1))
2516
+
2517
+ def test_keepdims(self):
2518
+ d = np.ones((3, 5, 7, 11))
2519
+ assert_equal(np.median(d, axis=None, keepdims=True).shape,
2520
+ (1, 1, 1, 1))
2521
+ assert_equal(np.median(d, axis=(0, 1), keepdims=True).shape,
2522
+ (1, 1, 7, 11))
2523
+ assert_equal(np.median(d, axis=(0, 3), keepdims=True).shape,
2524
+ (1, 5, 7, 1))
2525
+ assert_equal(np.median(d, axis=(1,), keepdims=True).shape,
2526
+ (3, 1, 7, 11))
2527
+ assert_equal(np.median(d, axis=(0, 1, 2, 3), keepdims=True).shape,
2528
+ (1, 1, 1, 1))
2529
+ assert_equal(np.median(d, axis=(0, 1, 3), keepdims=True).shape,
2530
+ (1, 1, 7, 1))
2531
+
2532
+
2533
+ class TestAdd_newdoc_ufunc(TestCase):
2534
+
2535
+ def test_ufunc_arg(self):
2536
+ assert_raises(TypeError, add_newdoc_ufunc, 2, "blah")
2537
+ assert_raises(ValueError, add_newdoc_ufunc, np.add, "blah")
2538
+
2539
+ def test_string_arg(self):
2540
+ assert_raises(TypeError, add_newdoc_ufunc, np.add, 3)
2541
+
2542
+
2543
+ class TestAdd_newdoc(TestCase):
2544
+
2545
+ @dec.skipif(sys.flags.optimize == 2)
2546
+ def test_add_doc(self):
2547
+ # test np.add_newdoc
2548
+ tgt = "Current flat index into the array."
2549
+ self.assertEqual(np.core.flatiter.index.__doc__[:len(tgt)], tgt)
2550
+ self.assertTrue(len(np.core.ufunc.identity.__doc__) > 300)
2551
+ self.assertTrue(len(np.lib.index_tricks.mgrid.__doc__) > 300)
2552
+
2553
+
2554
+ if __name__ == "__main__":
2555
+ run_module_suite()