Numpy: ํƒ€์›์„ ์‚ฌ์šฉํ•œ ์ธ๋ฑ์‹ฑ ๋™์ž‘์€ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 07์›” 27์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: numpy/numpy

ํƒ€์›์„ ์‚ฌ์šฉํ•œ ๋ฐฐ์—ด ์ธ๋ฑ์‹ฑ์€ ๋งค์šฐ ์ง๊ด€์ ์ด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ์˜ˆ์—์„œ ์ค‘๋ณต ํƒ€์›์˜ ๋„์ž…์€ ์ถœ๋ ฅ์˜ ๋ชจ์–‘์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

a = np.array([[[False]]])
a[0:0, 0, ..., [0]]
Out[23]: array([], shape=(1, 0), dtype=bool)
a[0:0, 0,  [0]]
Out[24]: array([], shape=(0, 1), dtype=bool)

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•œ ํ–‰๋™์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์ง€๋งŒ ๋ณต์žกํ•œ ์ธ๋ฑ์‹ฑ์ด ์ฒ˜๋ฆฌ ๋˜๋Š” ๋ฐฉ์‹๊ณผ ๊ด€๋ จ๋œ ๋””์ž์ธ ๊ฒฐ์ •์—์„œ ์ง์ ‘ ๋น„๋กฏ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Numpy / Python ๋ฒ„์ „ ์ •๋ณด :

1.17.3 3.7.5 (๊ธฐ๋ณธ๊ฐ’, 2019 ๋…„ 10 ์›” 25 ์ผ, 10:52:18)
[Clang 4.0.1 (ํƒœ๊ทธ / RELEASE_401 / final)]

04 - Documentation 33 - Question 57 - Close?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ชจ๋‘ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์—ฌ๊ธฐ์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ํ™•์ธํ•˜์ง€ ์•Š๊ณ ๋Š” ํ™•์‹ ์กฐ์ฐจ ๋ชปํ–ˆ์„ ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ง„์ •์œผ๋กœ "๋ณด์ด์ง€ ์•Š๋Š”"์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ... ๋Š” ๋ชจ๋“  ์ฐจ์›์— ๋Œ€ํ•ด ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•˜๋ ค๋ฉด ๋ชจ๋“  ๊ฒฝ์šฐ์— ์กฐ์˜ฎ๊น€์„ ํŠธ๋ฆฌ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด series, ..., color ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ... ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•˜๊ณ  0-d ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ... ํ™•์žฅ (๋˜๋Š” ํ™•์žฅํ•˜์ง€ ์•Š์Œ)์— ์ƒ๊ด€์—†์ด ์ธ๋ฑ์‹ฑ์ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ „์น˜๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ด๊ฒƒ์€ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์šฐ๋ฆฌ๋Š” .oindex ๋ฐ .vindex ๋“ฑ์„ ๋” ์‹ฌ๊ฐํ•˜๊ฒŒ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. https://numpy.org/neps/nep- 0021-advanced-indexing.html

๋ชจ๋“  6 ๋Œ“๊ธ€

์ด๊ฒƒ์€ ํŠนํžˆ ๋ถˆ์พŒํ•œ ์ฝ”๋„ˆ ์ผ€์ด์Šค์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ... ๋Š” ๋‘ ๊ฐ€์ง€ ๊ณ ๊ธ‰ ์ธ๋ฑ์Šค ์ธ 0 ๋ฐ [0] ๋ฅผ ์ธ์ ‘ํ•˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๋„๋ก ๊ฐ•์š”ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์ธ์ ‘ํ•œ _are_๋ฅผ ์ธ๋ฑ์‹ฑํ•˜๋Š” ์ถ•.

numpy ์ธ๋ฑ์‹ฑ์„ ๋ณต์ œํ•˜๋ ค๊ณ  ํ•  ๋•Œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ๋‘ ๊ฐ€์ง€ ๊ทœ์น™ ์‚ฌ์ด์˜ ์ด์ƒํ•œ ์ƒํ˜ธ ์ž‘์šฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

  • ์ค„์ž„ํ‘œ๋Š” ๊ฐ๊ฐ ๊ธฐ๋ณธ ์ธ๋ฑ์Šค๋กœ ๊ฐ„์ฃผ๋˜๋Š” ์ „์ฒด ์Šฌ๋ผ์ด์Šค์˜ ํŠœํ”Œ๋กœ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ํ˜ผํ•ฉ ์ˆœ์„œ ๊ณ ๊ธ‰ ๋ฐ ๊ธฐ๋ณธ ์ธ๋ฑ์Šค๋Š” ์ „์น˜ ์ž‘์—…์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ๋Š” 0-d ํŠœํ”Œ (...์ด ๋ชจ๋“  ์ธ๋ฑ์Šค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ๋•Œ)์ด ์‹ค์ œ๋กœ ๋ณด์ด์ง€ ์•Š์•„์•ผ ํ•  ๋•Œ ์—ฌ์ „ํžˆ ๊ธฐ๋ณธ ์ธ๋ฑ์Šค ๋ธ”๋ก์œผ๋กœ ๊ฐ„์ฃผ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ๋ชจ๋‘ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์—ฌ๊ธฐ์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ํ™•์ธํ•˜์ง€ ์•Š๊ณ ๋Š” ํ™•์‹ ์กฐ์ฐจ ๋ชปํ–ˆ์„ ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ์˜ฌ๋ฐ”๋ฅธ ์„ ํƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ง„์ •์œผ๋กœ "๋ณด์ด์ง€ ์•Š๋Š”"์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ... ๋Š” ๋ชจ๋“  ์ฐจ์›์— ๋Œ€ํ•ด ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒํ•˜๋ ค๋ฉด ๋ชจ๋“  ๊ฒฝ์šฐ์— ์กฐ์˜ฎ๊น€์„ ํŠธ๋ฆฌ๊ฑฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด series, ..., color ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ... ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•˜๊ณ  0-d ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ... ํ™•์žฅ (๋˜๋Š” ํ™•์žฅํ•˜์ง€ ์•Š์Œ)์— ์ƒ๊ด€์—†์ด ์ธ๋ฑ์‹ฑ์ด ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ „์น˜๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ ์ด๊ฒƒ์€ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์šฐ๋ฆฌ๋Š” .oindex ๋ฐ .vindex ๋“ฑ์„ ๋” ์‹ฌ๊ฐํ•˜๊ฒŒ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. https://numpy.org/neps/nep- 0021-advanced-indexing.html

๋‚˜๋Š” ํ˜„์žฌ ํ–‰๋™์ด ์ตœ๊ณ ์˜ ์ผ๋ฐ˜ํ™”๋ผ๋Š” @seberg ์˜ ์ฃผ์žฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฌธ์„œ๊ฐ€ ๋” ๋ช…ํ™•ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ํ™•์‹คํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ ์ œ์•ˆ์— ๋Œ€ํ•ด ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. @seberg ์ฐธ์กฐ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค!

๋‚ด๊ฐ€ ๋‹น์‹ ์˜ ์ฃผ์žฅ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์‹œ ๋งํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณ ๊ธ‰ ์ธ๋ฑ์Šค A ๋ฐ ๊ธฐ๋ณธ ์ธ๋ฑ์Šค B ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•˜๊ณ  ์œ„์™€ ๊ฐ™์ด ์žฌ์ •๋ ฌ op a (์ผ๋ฐ˜ํ™”) ์ „์น˜๋ผ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์˜ˆ์—๋Š” ๋„ค ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • [A1, ..., A2] ๋ฐ [B1, ... A1] : ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ... ํ™•์žฅ ๋ฐฉ๋ฒ•์— ๊ด€๊ณ„์—†์ด [A1, A2, ....] ๋ฐ [A1, B1, ...] ์ „์น˜๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
  • [A1, ..., B1] ๋ฐ [B1, ..., B2] :์ด ๊ฒฝ์šฐ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ทœ์น™์€ ... ํ™•์žฅ ๋ฐฉ์‹์— ๊ด€๊ณ„์—†์ด series ๋ฐ color ํด๋ž˜์Šค (A ๋˜๋Š” B)๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค์— ์†ํ•˜๋Š”์ง€ ์•Œ๋ฉด ์ผ๊ด€์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ... ๋ฅผ (์ž ์žฌ์ ์œผ๋กœ 0-d) ๊ธฐ๋ณธ ์ธ๋ฑ์Šค ๋ธ”๋ก์œผ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 0-d ... ๋ฅผ ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ๋กœ ์ทจ๊ธ‰ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž๊ฐ€ 2D ๋ฐฐ์—ด์„ ์ „๋‹ฌํ–ˆ๋Š”์ง€ 3D ์ด์ƒ์„ ์ „๋‹ฌํ–ˆ๋Š”์ง€์— ๋”ฐ๋ผ ์ „์น˜๊ฐ€ ์กฐ๊ฑด๋ถ€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜์  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ณณ์€ ์•ˆ ์ข‹์€ ๊ณณ์ž…๋‹ˆ๋‹ค.

0-d ๋ธ”๋ก์ด ์ž‘๋™ํ•˜์ง€ ์•Š์•„์•ผํ•œ๋‹ค๋Š” ๋‚ด ์ง๊ฐ์€ ํŠœํ”Œ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, i ,

i: int
M: Tuple[int, ...]
N = ()
assert M[:i] + N + M[i:] == M

์ด๋Š” i ๊ฐ€ ๋ฌด์—‡์ธ์ง€์— ๋”ฐ๋ผ ์œ„์˜ ๋„ค ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” numpy ์ธ๋ฑ์‹ฑ ๊ทœ์น™๊ณผ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ... ๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ฐฉ์‹๋ณด๋‹ค๋Š” ์ „์น˜ ์—ฐ์‚ฐ ์ž์ฒด์™€ ๋” ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ NEP21 ์ œ์•ˆ์— ๋Œ€ํ•œ ๋…ผ์Ÿ์ž…๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์ค‘์— ์šฐ๋ฆฌ๋Š” ์ธ๋ฑ์‹ฑ ๋ฐฉ๋ฒ•์„ ์ „ํ™˜ํ•˜๊ณ  ... ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๋ฏธ๋ž˜์— ๋Œ€๋น„ํ•˜๊ณ  ๋ชจ์–‘์ด ๋งˆ์ˆ ์ฒ˜๋Ÿผ ๋ฐ”๋€” ๋•Œ ์ •๋ง ํ˜ผ๋ž€ ์Šค๋Ÿฌ์› ์Šต๋‹ˆ๋‹ค. ๋นˆ ... ์ผ€์ด์Šค๊ฐ€ ํŠนํžˆ ๋ฐ˜ ์ง๊ด€์ ์ด์–ด์„œ ์•…ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์›ํ•˜์‹œ๋ฉด ๋ฌธ์„œ PR์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@antonl a doc PR์€ ํ•ญ์ƒ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋งŽ์€ ๊ฐœ์„ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

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