Numpy: default_rng.integers (2 ** 32) рд╣рдореЗрд╢рд╛ 0 рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рдЕрдкреНрд░реИрд▓ 2020  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: numpy/numpy

рдХреЛрдб рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛:

рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ 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]

Numpy / рдкрд╛рдпрдерди рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдирдХрд╛рд░реА:

рдореИрдВ рдлреЗрдбреЛрд░рд╛ 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)]
00 - Bug 06 - Regression numpy.random high

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╕рдорд╕реНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рднреА рд╣реИ:

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 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рд╕рднреА 7 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╕рдВрднрд╡рддрдГ рдпрд╣ рдЙрдЪреНрдЪ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ 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 рдореЗрдВ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕