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]
python3-3.7.6-2.fc31.x86_64 ๋ฐ python3-numpy-1.17.4-2.fc31.x86_64์ ํจ๊ป Fedora 31์ ์คํํ๊ณ ์์ต๋๋ค.
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์๋ ์์ผ๋ฏ๋ก ์ปค๋ฐ๋ณด๋ค ์ค๋๋์์ ์ ์์ต๋๋ค. ํ์ง๋ง ์ง๊ธ ์ฏค์ด๋ฉด ์ฝ๋์ ๊น์ด ๋ค์ด๊ฐ์ ๊ทธ ๋ถ๋ถ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ง ๋๋จํด, โโKevin์๊ฒ ํ์ ๋ณด๋ด๋ ๊ฒ์ ๊ณ ๋ คํ๊ณ ์์์ต๋๋ค. :).
๊ด๋ฆฌํ๋ค๋ฉด 1.18.4์ ์์ ์ฌํญ์ ํฌํจ์์ผ์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@seberg , gh-14777์ 1.17๋ก ๋ฐฑ ํฌํธ๋์์ต๋๋ค.
์์ธ์ 1.17.3์ผ๋ก ๋ฐฑ ํฌํธ ๋ https://github.com/numpy/numpy/pull/14501 ์ ๋๋ค. ์์ ์์ ์ค์ ๋๋ค.
์ ์ ๋ ์์ ์ฌํญ์ https://github.com/numpy/numpy/pull/16076 ์
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฌธ์ ๋ ๋ง์คํฐ์๊ฒ๋ ์์ต๋๋ค.
์ด๊ฒ์ ์๋ง๋ https://github.com/numpy/numpy/pull/14777 ์์ ๋์ ๋์์ ๊ฒ์ ๋๋ค