Numpy: default_rng.integers (2 ** 32)๋Š” ํ•ญ์ƒ 0์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 04์›” 24์ผ  ยท  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 / Python ๋ฒ„์ „ ์ •๋ณด :

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)]
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์—๋„ ์žˆ์œผ๋ฏ€๋กœ ์ปค๋ฐ‹๋ณด๋‹ค ์˜ค๋ž˜๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง€๊ธˆ ์ฏค์ด๋ฉด ์ฝ”๋“œ์— ๊นŠ์ด ๋“ค์–ด๊ฐ€์„œ ๊ทธ ๋ถ€๋ถ„์„ ์•„๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ •๋ง ๋Œ€๋‹จํ•ด, โ€‹โ€‹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 ์—

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰