рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ default_rng.integers(2**32)
рд╣рдореЗрд╢рд╛ 0 рд╡рд╛рдкрд╕ рдХреНрдпреЛрдВ рдЖрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ 2**32-1
, 2**32+1
, 2**40
, рдЗрддреНрдпрд╛рджрд┐ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд╛рдкрд╕реА рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдо рдПрдХ numpy.int64
, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ 2**64-1
рд╕рдВрдЦреНрдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред
$ python3.7 -c 'from numpy.random import default_rng; rng=default_rng(); print([rng.integers(2**32) for _ in range(5)])'
[0, 0, 0, 0, 0]
рдпрд╣ 2**40
рд╕рд╛рде рдареАрдХ рд╣реИ:
$ python3.7 -c 'from numpy.random import default_rng; rng=default_rng(); print([rng.integers(2**40) for _ in range(5)])'
[386296210341, 896689857600, 958588149890, 364800985883, 643738305251]
рдореИрдВ рдлреЗрдбреЛрд░рд╛ 31 рдХреЛ python3-3.7.6-2.fc31.x86_64 рдФрд░ python3-numpy-1.17.4-2.fc31.x86_64 рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ:
vstinner@apu$ python3.7
Python 3.7.6 (default, Jan 30 2020, 09:44:41)
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, numpy; print(numpy.__version__, sys.version)
1.17.4 3.7.6 (default, Jan 30 2020, 09:44:41)
[GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
рд╕рдВрднрд╡рддрдГ рдпрд╣ рдЙрдЪреНрдЪ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ 32 рдмрд┐рдЯ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ 2**32 + 1
32 рдмрд┐рд▓рд┐рдпрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ! рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмрд╣реБрдд рд╣реА рдЧрдВрднреАрд░ рдмрдЧ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рднреА рд╣реИ:
In [1]: import numpy as np
In [2]: np.__version__
Out[2]: '1.19.0.dev0+6d6df47'
In [3]: rng = np.random.default_rng()
In [4]: rng.integers(2**32, size=8)
Out[4]: array([0, 0, 0, 0, 0, 0, 0, 0])
рдпрд╣ рд╕рдВрднрд╡рддрдГ https://github.com/numpy/numpy/pull/14777 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдзрдиреНрдпрд╡рд╛рдж @WarrenWeckesser , рд╕рдорд╕реНрдпрд╛ 1.17 рдореЗрдВ рднреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдм рддрдХ рдпрд╣ рдЗрд╕ рдХреЛрдб рдореЗрдВ рдЧрд╣рд░рд╛рдИ рддрдХ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдЗрддрдирд╛ рдорд╣рд╛рди, рдХреЗрд╡рд┐рди рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ :)ред
рдпрджрд┐ рд╣рдо рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ 1.18.4 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд┐рдХреНрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
@рдмрд░реНрдЧ , gh-14777 рдХреЛ 1.17 рдкрд░
рдпрд╣ рдХрд╛рд░рдг рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ https://github.com/numpy/numpy/pull/14501 рд╣реИ , рдЬрд┐рд╕реЗ 1.17.3 рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВ рдПрдХ рдлрд┐рдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдлрд┐рдХреНрд╕ https://github.com/numpy/numpy/pull/16076 рдореЗрдВ рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдорд╕реНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рднреА рд╣реИ:
рдпрд╣ рд╕рдВрднрд╡рддрдГ https://github.com/numpy/numpy/pull/14777 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛