์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ, ๋ฐฐํฌ ๋ฐ ๋ฐฐํฌ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ท์น์ ๋๋ค. ๊ทธ๊ฒ์ ์ ์ ์ฑ์ ๋ํ ์ค๋ ๋ ผ์์๋ ๋ถ๊ตฌํ๊ณ (๊ตฌ๊ธ์ ๊ทธ๊ฒ์ ์ฐพ์ ์์๋ ๊ณณ์ ์๊ณ ์์) ์ค๋๋ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค. ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉ ํ์ง ์๊ธฐ๋ก ์์์ ์ผ๋ก ๊ฒฐ์ ํ ํ๋ก์ ํธ๋ ๋ฒ์ ๋์ ๋ ์ง๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ด์ด๋ฅผ ์ฆ์ ๋ช ํํ๊ฒํ๋ ๋ฆด๋ฆฌ์ค ๋ฒํธ ์ง์ ์ฒด๊ณ๋ฅผ ์ ํํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
NumPy๋ ์๋ฏธ ๋ก ์ ๋ฒ์ ์ง์ ์ฒ๋ผ ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ ๋ฒ์ ๋ฒํธ ์ง์ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด์ ๋๋ฌธ ์ ์ค ํ๋์ ๋๋ค. ์๋ํ๋ฉด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ถ ๋ฒ์ ๋ฒํธ ๋ง ๋ณ๊ฒฝํ์ฌ ์ ๊ธฐ์ ์ผ๋ก ๋์ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ฌํ ๊ดํ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์, ์ํํธ์จ์ด ์ฌ์ฉ์ ๋ฐ ์ํํธ์จ์ด ๋ฐฐํฌ ๊ด๋ฆฌ์ ์ฌ์ด์ ์๋ชป๋ ๊ธฐ๋์น๋ฅผ ๋ง๋ญ๋๋ค.
NumPy๋ ์ด์ ์ฒด์ ๋๋ ์ปดํ์ผ๋ฌ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์ธํ๋ผ ์ํํธ์จ์ด์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋์ฑ ์ค์ํฉ๋๋ค. NumPy๋ฅผ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค (๊ฐ๋ฐ์ ๋๋ ์ํํธ์จ์ด ์ฌ์ฉ์)์ Anaconda ๋๋ Debian๊ณผ ๊ฐ์ ์ํํธ์จ์ด ๋ฐฐํฌ๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก NumPy๋ฅผ ์ป๊ณ ์ ๋ฐ์ดํธํฉ๋๋ค. ์ข ์ข ์ ๋ฐ์ดํธ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ์ ์์คํ ๊ด๋ฆฌ์์ ๋๋ค. ์ ๋ฐ์ดํธ๋ฅผ ์์ํ๋ ์ฌ๋์ด๋ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ํฅ์๋ฐ๋ ์ฌ๋์ NumPy ๋ฉ์ผ ๋ง ๋ชฉ๋ก์ ๋ฐ๋ฅด์ง ์์ผ๋ฉฐ ๋๋ถ๋ถ์ ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ์ฝ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ NumPy๊ฐ ํฅํ ๋ฆด๋ฆฌ์ค๋ฅผ ์ํด ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ ๊ท์น์ ์ฑํ ํ ๊ฒ์ ์ ์ํฉ๋๋ค. ์ด ๊ท์ฝ์ ์ฑํํ์ง ์๋ ํ๋นํ ์ด์ ๊ฐ ์๋ค๋ฉด NumPy๋ ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ก ์ฐฉ๊ฐ ํ ์์๋ ๋ฆด๋ฆฌ์ค ๋ผ๋ฒจ๋ง ์ฒด๊ณ๋ฅผ ์ฑํํด์ผํฉ๋๋ค.
numpy๋ ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ ๋ ์ ์์ง๋ง ์ ํ 1
?
๊ฑฐ์ ๋ชจ๋ ํต์ฌ ๊ณผํ Python ํ๋ก์ ํธ๊ฐ NumPy๊ฐํ๋ ์ผ์ํ๋ค๋ ์ ์ ์ ์ํ์ญ์์ค. ๋งค์ฐ ์ง์ฅ์์ฃผ์ง ์๋ ํ ๋ช ๋ฒ์ ๋ฆด๋ฆฌ์ค ํ์ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๊ณ ์ฃผ์ ์ฌํญ์ ๋ํ ์ฃผ์ ๋ฒ์ ๋ฒํธ ๋ง ์ฌ๋ฆฝ๋๋ค.
์ง์ ์ค๋จ ์ ์ฑ ์ ๋ํ ๋ณ๊ฒฝ์ ์ ์ํ๋์ง ๋๋ ์ง๊ธ 1.14.09 ๋ฒ์ ์ด ์๋ 14.0.0 ๋ฒ์ ์ด์ด์ผํ๋ค๊ณ ์๊ฐํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
ํ์ : NumPy๋ ํ์ฌ ๋๋ต ๋ฒ์ 14์์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ํฅํ ๋ฆด๋ฆฌ์ค์๋ง์ด ๊ท์น์ ์ฑํ ํ ๊ฒ์ ์ ์ํฉ๋๋ค.
BTW : NumPy์ ์ ์์ ์ธ Numeric์ ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ๋๋ต 10 ๋ ์ ๊ฑธ์ณ ๋ฒ์ 24์ ๋๋ฌํ์ต๋๋ค. NumPy ๋ก์ ์ ํ์์ ์ด๊ฒ์ด ์ ๋ณ๊ฒฝ๋์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ด ์ธ์์ ๋๋ถ๋ถ์ Python ํ๋ก์ ํธ๊ฐ ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, Python ์์ฒด๋ ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. (์ ๋ ๋ํ semver๋ฅผ ์ฌ์ฉํ๋ ์ฃผ๋ฅ ์ด์ ์ฒด์ ๋ ์ปดํ์ผ๋ฌ์ ๋ํด ์์ง ๋ชปํฉ๋๋ค. ์ผ๋์๋๊ณ ์๋ ๊ฒ์ด ์์ต๋๊น?) ์ ๋ semver ์ง์ง์๋ค์ด ๋ง์ผํ ์ ํ๋ฅญํ๊ฒ ์ํํ์ฌ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ๊ทธ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํ๊ฒ ๋ง๋ค์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ํ์ง๋ง AFAICT๋ ์ผ์ชฝ ํจ๋๋ณด๋ค ํฐ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ์ค์ ์ธ๊ณ์์ ๋ณธ์ง์ ์ผ๋ก ์๋ํ์ง ์์ต๋๋ค. ์ ๋ semver ์ฌ๋๋ค์ด ์ด์ ์ ํต์ ์ธ MAJOR.MINOR.MICRO ํ์์ "์์ "ํ๊ณ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ด ๋ฌด์ธ๊ฐ๋ก ์ ํํด์ผํ๋ค๋ ์๊ฐ์ ๊ฐ๋ ฅํ๊ฒ ์ด์๋ฅผ ์ ๊ธฐํฉ๋๋ค. ๊ทธ๋ฐ์.
"์๋ฏธ ์ ๋ฒ์ ๊ด๋ฆฌ๋ก ์ฐฉ๊ฐ ํ ์์๋ ๋ฆด๋ฆฌ์ค ๋ ์ด๋ธ ์ง์ ์ฒด๊ณ"๊ฐ ์๋ฏธํ๋ ๋ฐ์ ์๋ฅผ ๋ค์ด ์ค ์ ์์ต๋๊น? ์ซ์ ๋์ ์ด๋ฆ์ ์ฌ์ฉํ์ญ๋๊น? ๋ ์ง ๊ธฐ๋ฐ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ธ์ฉํ์ง๋ง ๋ด๊ฐ ๋ณธ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฒด๊ณ๋ ํ์ฌ ๊ฐ๊ฐ 17.9.0 ๋ฐ 17.5.0 ์ธ Twisted ๋ฐ PyOpenSSL์์ ์ฌ์ฉํ๋ ์ฒด๊ณ์ ๋๋ค. ์ ์๊ฒ๋ ์์ ํ ๊ทธ๋ด๋ฏํ semver ๋ฒ์ ์ฒ๋ผ ๋ณด์ ๋๋ค ...
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ฌ์ฉ์์๊ฒ ์ด๋ค ํํ์ ์ค ์ ์๋์ง ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ด ๊ฐ์์ ๋ฏธ๋์์ ๋ชจ๋ ๋ฆด๋ฆฌ์ค์๋ ์ง๊ธ๊ณผ ๊ฐ์ด ๋๋ถ๋ถ์ ์ฌ์ฉ์์ ๋ฌด๊ด ํ ๋ช ๊ฐ์ง ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค. ๋ช ๋ฌ์ ํ ๋ฒ์ฉ ์ฃผ์ ๋ฒํธ๋ฅผ ์ฌ๋ฆผ์ผ๋ก์จ ์ด๋ค ์ ์ฉํ ์ ๋ณด๋ฅผ ์ ๋ฌํ ์ ์์๊น์? "์๋ง ๋๊ตฐ๊ฐ๋ฅผ ๋ง๊ฐ ๋จ๋ฆฌ์ง ๋ง ์๋ง ๋น์ ์ ๋ง๊ฐ ๋จ๋ฆฌ์ง๋ ์์ ๊ฒ์ ๋๋ค."? ์ฐ๋ฆฌ๋ ๋ํ ๋ฒ๊ทธ ์์ ๋ฆด๋ฆฌ์ค์์ ์ฃผ์ ๋ฒ์ ์ ๋ฒํํด์ผ ํ๋๊ฐ? ์ค์ ๋ก ํผ๋ ์ค๋ฌ์ ๋ "์ํํธ์จ์ด ๊ฐ๋ฐ์, ์ํํธ์จ์ด ์ฌ์ฉ์ ๋ฐ ์ํํธ์จ์ด ๋ฐฐํฌ ๊ด๋ฆฌ์"์ ์๋ฅผ๋ค ์ ์์ต๋๊น?
๋ฉ์ผ ๋ง๋ฆฌ์คํธ๋์ด ํ ๋ก ์ ๋ ์ ํฉํ ์ฅ์์ด๋ฉฐ ์ค์ ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ ์ ํ ๋ก ์ํด์ผ ํ ์๋ ์์ง๋ง ์ฌ๊ธฐ์์๋ ์๊ฒฌ์ ์ํ๋ ๋ฌธ์ ์ ์ข ๋ฅ๋ฅผ ํ์ ํ๋ ๋ฐ ์ ์ฉํด์ผํฉ๋๋ค. ๊ทธ ํ ๋ก ์์ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
@njsmith ์ฐ๋ฆฌ๊ฐ ๋์ํ์ง ์๋ ์ ์ผํ ์ฌ์ค์ ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ค๋๋ ๊ธฐ๋ณธ ๊ฐ์ ์ธ์ง ์ฌ๋ถ์ ๋๋ค. ์ด๋ฅผ ์ํด์๋ ๊ธฐ๋ณธ๊ฐ ์ธ (๋๋ ๊ทธ๋ ์ง ์์) ์ปค๋ฎค๋ํฐ์ ๋ํ๋ณด๋ค ๋ช ํํ ์ ์๊ฐ ํ์ํฉ๋๋ค. ๋ด๊ฐ ์ ๊ฒฝ ์ฐ๋ ์ํํธ์จ์ด ๊ด๋ฆฌ ์์ค์ ๋ฐฐํฌ ๊ด๋ฆฌ ๋ฐ ์์คํ ๊ด๋ฆฌ๋ก, ์ฌ๋๋ค์ด ์์ ์ ์ํฉ์ ๊ฐ์ฅ ์ ํฉํ ๋ฒ์ ์ ๊ฒฐ์ ํ๋ ๊ณณ์ ๋๋ค.
์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ธฐ๋ณธ๊ฐ์ด๋ผ๋ ๊ฒฐ๋ก ์ ๋ด๋ฆฐ ๋น๊ณต์์ ์ธ ์ง๋ฌธ์ ๊ณผํ ์ปดํจํ
์ค์น ๊ด๋ฆฌ์์ ๋ํํ๋ ๊ฒ์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ๋๋ ๋ํ ์์ํ๋ค
์ข ๋ ๊ฒฝํ์ ์ธ ์ ๊ทผ ๋ฐฉ์ (์ต๊ทผ ๋ฐ๋น์ ์ค์น์ ํจํค์ง๋ฅผ ๋์ดํ๊ณ ๋ฒ์ ๊ด๋ฆฌ ๋ฐฉ์์ ์กฐ์ฌํ๊ธฐ ์ํด ๋ฌด์์๋ก ๋ช ๊ฐ๋ฅผ ์ ํ ํจ)์ด ๋งค์ฐ ์ด๋ ค์ ์ต๋๋ค. ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ๋์ง ์ฌ๋ถ๋ฅผ ๋ช
ํํ๊ฒ ์ค๋ช
ํ๋ ํ๋ก์ ํธ๊ฐ ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
ํ ์์คํ ๊ด๋ฆฌ์์ ์๊ฒฌ์ ํนํ ๊ด๋ จ์ฑ์ด ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ ์ค์นํ ๋ฒ์ ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ ์ด์ธ์ ์ด๋ค ๊ท์น๋ ์ธ๋ชจ๊ฐ ์๋ค๊ณ ๋งํ์ต๋๋ค. ์์คํ ๊ด๋ฆฌ์๋ ๊ฐ ํจํค์ง๋ฅผ ์์ธํ ์ดํด ๋ณด๊ฑฐ๋ (์๊ฐ๊ณผ ์ญ๋์ด ๋ถ์กฑํจ) ๋ชจ๋ ์ฌ์ฉ์ (๋๋ฌด ๋ง์ ๊ฒฝ์ฐ)์์์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ํต์ผ ๋ ์ ์ฑ ์ ์ฑํํด์ผํ๋ฉฐ ์ด๊ฒ์ ์๋ฏธ ๋ก ์ ๋ฒ์ ํ์ ๊ฐ์ ์ ๊ธฐ๋ฐํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํจํ ํด๋ฌ์คํฐ์ ๊ด๋ฆฌ์๋ ๋ฉ์ด์ ๋ฒ์ ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋ ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ ์ ๊ฐ์ธ์ ์ผ๋ก ์๊ณ ์๋ ๋ช ๋ช ์ "๊ณ ๊ธ ์ฌ์ฉ์"๋ฅผ ํ์ธํ๋ค๊ณ ๋งํ์ต๋๋ค.
์ค์ ๋ก ๊ณผํ์ Python ์ฌ์ฉ์์ ๊ด๋ จํ์ฌ ์ค์ ๋ก ํผ๋์ค๋ฌ์ํ๋ ์ฌ๋๋ค์ ์๋ก๋ ์ง์ฅ ๋๋ฃ, ์ปจํผ๋ฐ์ค์์ ๋ง๋๋ ์ฌ๋๋ค, ์ด๋ฉ์ผ๋ก ์กฐ์ธ์ ์์ฒญํ๋ ์ฌ๋๋ค, ์์ ์ ์ฐธ์ฌํ๋ ํ์๋ค ๋ฑ ๋ง์ ์ฌ๋๋ค์ด ์์ต๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก "๋๋ ๋น์ ์ด Python ์ ๋ฌธ๊ฐ๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ค ์ ์์ต๋๊น?"๋ก ์์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ํ ์ปดํจํฐ์์๋ ์๋ํ์ง๋ง ๋ค๋ฅธ ์ปดํจํฐ์์๋ ์๋ํ์ง ์๋ ์คํฌ๋ฆฝํธ๋ก ๋ฐํ์ก์ต๋๋ค. ์ด๋ค ์ค ๋๋ถ๋ถ์ ์ข ์์ฑ ๋ฌธ์ ๋ฅผ ์ ํ ๊ณ ๋ คํ์ง ์์ง๋ง, ์ผ๋ถ๋ ์ค์ ๋ก ๋ ์ค์น์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋น๊ตํ์ฌ "์์ ์ฐจ์ด"๋ง ๋ฐ๊ฒฌํ์ต๋๋ค.
@ eric-wieser์ @rgommers๊ฐ ์ธ๊ธํ๋ฏ์ด ๋ด ์์ฒญ์ ์ด๊ธฐ "1"์ ์์ฒญํ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๋์ผํฉ๋๋ค. NumPy ๋ฒ์ ์์ ์ญ์ ๋ฉ๋๋ค. ์ฆ, NumPy๋ ์ฌ์ค์ ์ ์ฑ ๊ฒฐ์ ์ ๊ฒฐ๊ณผ๊ฐ ์๋๋ฏ๋ก ์๊ฒฉํ๊ฒ ์ํ๋์ง ์์๋๋ผ๋ ์ด๋ฏธ ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ NumPy๊ฐ ํ์ฌ ๊ฐ๋ฐ ์ํฌ ํ๋ก๋ฅผ ๊ฑฐ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฑํ ํ ์ ์์์ ์์ฌํฉ๋๋ค.
ํ ์์คํ ๊ด๋ฆฌ์์ ์๊ฒฌ์ ํนํ ๊ด๋ จ์ฑ์ด ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ ์ค์นํ ๋ฒ์ ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ ์ด์ธ์ ์ด๋ค ๊ท์น๋ ์ธ๋ชจ๊ฐ ์๋ค๊ณ ๋งํ์ต๋๋ค.
๋ถํํ๋ ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. :-(. ๋๋ ๋จธ๋ฆฌ์นด๋ฝ์ ์ชผ๊ฐ๊ฑฐ๋ ๊ณผ์ฅํ๋ ค๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์ง์ง ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์์ ํ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๊ฐ ์ง์ง๋ผ๊ณ ํด์ ํด๊ฒฐ์ฑ ์ด ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ๊ทผ๋ณธ์ ์ผ๋ก "์ด ์ํํธ์จ์ด๋ฅผ ์ ๊ทธ๋ ์ด๋ํด์ผํฉ๋๊น?"๋ผ๋ ์ง๋ฌธ์ ๋จ์ํ ๊ธฐ๊ณ ๊ฒ์ฌ๋ก ์์ฝ ํ ์ ์์ต๋๋ค. ํ์์ ๋๋ค. semver๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฆ์ ์ ๊ทธ๋ ์ด๋ํด์ผํ๋ ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ๋ง๋ค๊ณ ์ฌ์ํ ๋ณ๊ฒฝ์ ์ ๊ธฐ์ ์ผ๋ก ์ํํฉ๋๋ค. ๋ฆด๋ฆฌ์ค.
์์คํ ๊ด๋ฆฌ์๋ ๊ฐ ํจํค์ง๋ฅผ ์์ธํ ์ดํด ๋ณด๊ฑฐ๋ (์๊ฐ๊ณผ ์ญ๋์ด ๋ถ์กฑํจ) ๋ชจ๋ ์ฌ์ฉ์ (๋๋ฌด ๋ง์ ๊ฒฝ์ฐ)์์์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ํต์ผ ๋ ์ ์ฑ ์ ์ฑํํด์ผํ๋ฉฐ ์ด๊ฒ์ ์๋ฏธ ๋ก ์ ๋ฒ์ ํ์ ๊ฐ์ ์ ๊ธฐ๋ฐํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ปดํจํ ํด๋ฌ์คํฐ์ ๊ด๋ฆฌ์๋ ๋ฉ์ด์ ๋ฒ์ ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋ ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฉํ๊ธฐ ์ ์ ๊ฐ์ธ์ ์ผ๋ก ์๊ณ ์๋ ๋ช ๋ช ์ "๊ณ ๊ธ ์ฌ์ฉ์"๋ฅผ ํ์ธํ๋ค๊ณ ๋งํ์ต๋๋ค.
๋๋์ด ๋ถ๋ถ์ ์ข์ํ๋ค :-). ๋๋ ์ฐ๋ฆฌ๊ฐ semver์ ์ฒ ํ์ ๋ํด ๋์ ํ ๊ฒ ๊ฐ์ง๋ ์์ง๋ง, ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ์ ๊ตฌ์ฒด์ ์ธ ํจ๊ณผ์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋ฐ๋์งํ ๊ฒฐ๊ณผ์ ๋ํด ํ ๋ก ํ๋ ๊ฒ์ด ํจ์ฌ ์ฝ์ต๋๋ค.
semver์ ๊ฐ๋ ์ด์ด ์ ์ฑ ๊ณผ ๋ง์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์์คํ ๊ด๋ฆฌ์๊ฐ ์ค์ ๋ก ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ํ์ธํ์ฌ semver๋ฅผ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํฉ๋๊น? ๋๋ถ๋ถ์ ํ๋ก์ ํธ๋ ๋น์ ์ด ๋งํ๋ฏ์ด ์ด๋ค ํ๋ก์ ํธ๊ฐ ์ํํ๋์ง์กฐ์ฐจ ๋งํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ฑ ์ semver๊ฐ ์กด์ฌํ๊ธฐ ์ค๋ ์ ๋ถํฐ ์์คํ ๊ด๋ฆฌ์๊ฐ ์ฌ์ฉํด์จ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค. ์ด ์ ์ฑ ์ ๋ ๋์ ํน์ฑ์ "์ ๊ทธ๋ ์ด๋์ ์ผ๋ง๋์ฃผ์ํด์ผํ๋์ง์ ๋ํ ํ๋ก์ ํธ์ ๊ถ์ฅ ์ฌํญ์ ๋ฐ๋ฅด์ญ์์ค"์ ํจ๊ป ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ "ํฌ๊ณ "๋ง์ด๋ ๋ฆด๋ฆฌ์ค๋ "์๊ฒ"๋ผ๋ ๊ณ ๋ ์ ํต์ ๋ฐ๋ฅด๋ ๊ฒ์ ๋๋ค.
NumPy ํ๋ก์ ํธ์ ๊ถ์ฅ ์ฌํญ์ ์์คํ ๊ด๋ฆฌ์๊ฐ ์๋ก์ด ๊ธฐ๋ฅ ๋ฆด๋ฆฌ์ค๋ก ์ ๊ทธ๋ ์ด๋ํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์์ด ์ผํ์์ ์ ๊ฐ ์ทจํ ๊ฒ์ ํ์ฌ ๋ฒํธ ์ง์ ์ฒด๊ณ๊ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ์ ํํ๊ฒ ์ ๋ฌํ๊ณ ์๊ณ semver๋ก ์ ํํ๋ฉด ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์ ๋๋ค.
@njsmith ์ข์์, ์ฒ ํ๊ณผ ์ค์ฉ์ฑ์์ ๋ฒ์ด๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์, ์์คํ ๊ด๋ฆฌ์, ์ํํธ์จ์ด ์ฌ์ฉ์ ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ์์ ์ํํธ์จ์ด ๋ฒ์ ๋ฒํธ์ ์ญํ ์ ๋ฌด์์ ๋๊น?
๋ค์ ํ ๋ฒ ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ํฐ ์๊ฒฌ ์ฐจ์ด๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋น์ ์ ์ํด ์์คํ ๊ด๋ฆฌ์์ ์ฌ์ฉ์์๊ฒ ์ง์นจ์ ์ ๊ณตํ๊ณ ๋ฒ์ ๋ฒํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์นจ์ ์ ๋ฌํ๋ ๊ฒ์ ๊ฐ๋ฐ์์ ๋๋ค. ์ ์๊ฒ๋ ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์์ ์ ๊ธฐ์ค์ ๋ฐ๋ผ ๊ฒฐ์ ํด์ผํ๋ฉฐ ๋ฒ์ ๋ฒํธ๋ ๊ฐ์ฅ ๊ฑฐ์น ์์ค์์ ์ฌ์ค์ ์ ๊ฐ ํ ์ปค๋ฎค๋์ผ์ด์ ์๋จ์ผ๋ก ์์ฉํด์ผํฉ๋๋ค.
NumPy๊ฐ ๋ณด์์ ์ํฅ์์ฃผ์ง ์๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ NumPy ํ๋ก์ ํธ๊ฐ ๋ณดํธ์ ์ธ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํด์ผํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค. ์ฌ๋๊ณผ ๊ธฐ๊ด์ ์๋ก ๋ค๋ฅธ ์๊ตฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๋งค์ฐ ๋ค๋ฅธ ์ ๋ฐ์ดํธ ์ ์ฑ ์ ๊ฐ์ง ArchLinux์ CentOS๋ฅผ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋ ์ด์ ์ ๋๋ค.
@khinsen oldnumeric
ํจํค์ง๋ ์ฌ์ ํ ์๋ฒฝํ๊ฒ ์๋ํ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด ์ค์นํ ์ ์์ต๋๋ค.
pip install oldnumeric
์๋ง๋ ์ด๊ฒ์ numpy์ ๋ํ ์ธํฐํ์ด์ค๊ฐ Python / Cython์ผ๋ก ์ ํ๋๊ณ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์๋ ์ ์ ๋ "์์ ์ ์ธ numpy"์ผ ์ ์์ต๋๋ค. ๋ฌผ๋ก oldnumeric์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งค์ฐ ๋ํดํ์ง๋ง ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ ๊ฐ์ง ์๋ ์์ต๋๋ค.
@xoviat ์ฌ์ค์ด์ง๋ง ๊ทธ๊ฒ์ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ด ์์ ์ ์ํํธ์จ์ด ๋ณด์กด์ด ์๋๋ผ ์ํํธ์จ์ด ๊ด๋ฆฌ ๋ถ์ผ์์ ์๋ก ๋ค๋ฅธ ํ๋ ์ด์ด ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ์ ๋๋ค.
์ง๋ฌธ : ์์คํ ๊ด๋ฆฌ์๋ก์ (๊ฐ์ธ์ฉ ์ปดํจํฐ์์๋) ํจํค์ง๊ฐ ๋ฒ์ 1.8์์ ๋ฒ์ 1.9๋ก ์์ ํ API ๊ณ์ธต์ ์ญ์ ํ ๊ฒ์ผ๋ก ์์ํฉ๋๊น?
"์"๋ผ๊ณ ๋ตํ ์ฌ๋๋ค์๊ฒ ๋ ๋ฒ์งธ ์ง๋ฌธ์ ๋๋ค. ์ด๋ ๊ฒ ํ ์ ์ด์๋ numpy ์ด์ธ์ ์ํํธ์จ์ด ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๊น?
BTW, ๋๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๊ฒ์ ๋ฌผ๋ ธ๋ค๋ ๊ฒ์ ํ์ ํ ์ ์์ต๋๋ค. ์ MMTK๊ฐ ํ๋ฃจ์์ ๋ค์ ๋ ๋ก ์๋์ ์ค๋จํ๋์ง ๋ฌป๋ ๋ง์ ๋ฉ์ผ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ชจ๋ ์ฌ๋๋ค์ ์ฌ๊ฐํ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ํ์ง ์๊ณ ์ํํธ์จ์ด ์ค์น๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค.
๊ทธ๋ฌ๋ oldnumeric
๋จ์ด ๋จ๋ฆฌ๋ ๊ฒ์ ์ต๊ทผ NumPy ์ญ์ฌ์ ์ต์
์ ์ฌ๊ฑด์ ์๋ ์์ต๋๋ค. ๊ทธ ์๊ด์ diagonal
์ ๊ฐ์ ์ผ๋ถ ์์
์ ๋ณต์ฌ /๋ณด๊ธฐ ์๋ฏธ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์
๋๋ค. NumPy ๋ฒ์ (๋ถ ๋ฒ์ ๋ฒํธ ๋ณ๊ฒฝ!)์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์ฝ๋๋ ์ ๋ง ์
๋ชฝ์
๋๋ค.
: BTW, ์ดํ ๊ฑฐ์ ์ฌ๋์ด ์ด์ผ๊ธฐ๋ฅผ ์๊ณ pip install oldnumeric
@xoviat์ด ์ถ๊ฐ ํจํค์ง๋ฅผ ์ค๋นํ๊ณ PyPI์ ๋ฃ์ด ๋๋ฌธ์ ์ดํ ์ ๋ถํฐ ์ํ. ๊ฐ์ฌํฉ๋๋ค!
ํจํค์ง๊ฐ ๋ฒ์ 1.8์์ ๋ฒ์ 1.9๋ก ์์ ํ API ๊ณ์ธต์ ์ญ์ ํ ๊ฒ์ผ๋ก ์์ํฉ๋๊น?
์ด๋ค ๋ ์ด์ด๋ฅผ ์ฐธ์กฐํ๊ณ ์์ต๋๊น?
์ด ์์ ์ ์ํ ํ numpy ์ด์ธ์ ์ํํธ์จ์ด ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๊น?
SciPy๋ weave
๋ฐ maxentropy
ํจํค์ง๋ฅผ ์ญ์ ํ์ผ๋ฉฐ pandas
๋ ์ฃผ์ ๊ธฐ๋ฅ์ ์ ๊ธฐ์ ์ผ๋ก ์ค๋จํฉ๋๋ค. ๋ ๋ง์ ์ ๋ช
ํ ์๊ฐ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ํธ์ง : ์๋ฅผ ๋ค์ด Python ์์ฒด, https://docs.python.org/3/whatsnew/3.6.html#removed ์ฐธ์กฐ
BTW, ๋๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๊ฒ์ ๋ฌผ๋ ธ๋ค๋ ๊ฒ์ ํ์ ํ ์ ์์ต๋๋ค. ์ MMTK๊ฐ ํ๋ฃจ์์ ๋ค์ ๋ ๋ก ์๋์ ์ค๋จํ๋์ง ๋ฌป๋ ๋ง์ ๋ฉ์ผ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ชจ๋ ์ฌ๋๋ค์ ์ฌ๊ฐํ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ํ์ง ์๊ณ ์ํํธ์จ์ด ์ค์น๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ต๋๋ค.
๊ทธ ๋ณํ๋ ์ฝ 10 ๋ ๋์ ์ด๋ฃจ์ด์ก๊ณ , ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ๊ฐ ์ฌ๊ธฐ์์ ์ฐจ์ด๋ฅผ ๋ง๋ค ์์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ธฐ๋ฅ์ ์ญ์ ํ๋ ๊ฒ์ (์ค๋๋) ์ฝ๋์ ์ผ๋ถ๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ๊ณผ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ฝ๊ฒ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ ์ฌ์ด์ ๊ท ํ์ ๋๋ค. ์ ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์๋ชปํ๋ค๋ฉด ๋ณด์์ ์ธ ์ธก๋ฉด์์ ๊ทธ๋ ๊ฒ ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. numpy๋ฅผ ์ฌ์ฉํ๋ ์๋ ์ ์ ๋๊ธฐ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ค๋ค์ผํ๋ ์ฌ๋์ผ๋ก์ ์ ๋ ๊ณ ํต์ ๋๋ผ์ง๋ง ์ ๋ ํด๊ฒฐ์ฑ ์ด ์๋ ๊ฒ์ ์ฃผ์ฅํ๊ณ ์์ต๋๋ค (์ผ๋ฐ์ ์ผ๋ก ์์ ํ ํด๊ฒฐ์ฑ ์ ์์ต๋๋ค. ๋ฒ์ ๊ณ ์ ๋ฐ ์ง์ ์ค๋จ ๊ฒฝ๊ณ ํ์ธ๊ณผ ๊ฐ์ ์์ ์ด ์ต์ ์ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๋ค ๋ ์ด์ด๋ฅผ ์ฐธ์กฐํ๊ณ ์์ต๋๊น?
๋ด๊ฐ ๊ฐ์ ํ๋ ์ซ์ / numarray ์ง์
@rgommers ์ฃ์กํฉ๋๋ค. "SciPy ์ํ๊ณ ์ธ๋ถ ์ ๋ ๋ค๋ฅธ ์"๋ผ๊ณ ๋ง ํ์ด์ผํ์ต๋๋ค.
๋ํ oldnumeric
๋ํ ์ง์ ์ค๋จ์ ๋ํด ๋ถํํ์ง ์์ต๋๋ค. ์ฃผ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ด๋ ๊ฒํ๋ ๊ฒ์ ๋ํด ๋ถํํ๊ณ ์์ต๋๋ค.
๊ทธ๊ฒ ์ด๋ค ์ฐจ์ด๋ฅผ ๋ง๋ค์ ์๊น์? ์ฌ๋๋ค์ด ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ์ฝ์ง ์๊ณ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์ฃผ์ ํ๊ฒ ๋ง๋ค์์ ๊ฒ์ ๋๋ค. ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ (๊ฐ๋ฐํ์ง ์๋) ๋ชจ๋ ์ฌ๋๋ค์ ์ด๊ฒ์ ์กฐ์ฌํด์ผ ํ ์ ํธ๋ก ๋ฐ์ ๋ค์์ ๊ฒ์ ๋๋ค.
SciPy ์ํ๊ณ์๋ ๊ฐ๋ฐ์ ์ ๊ทน์ ์ผ๋ก ๋ฐ๋ฅด์ง ์๋ ์๋ง์ ๋ก์ฐ ํ๋กํ ์ฌ์ฉ์๊ฐ ์๋ค๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. Python ๋ฐ NumPy๋ ls
๋ฐ gcc
์ ๋์ผํ ํน์ฑ์ ์ธํ๋ผ ํญ๋ชฉ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ข
์ข
๊ทธ๋ณด๋ค ์ ์ต๋๋ค. ๊ทธ๋ค์ Python์ผ๋ก ์์ฑ๋๊ณ NumPy์ ์์กดํ๋ ์ผ๋ถ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ค๋จ๋๋ฉด ์์ ํ ์์ค๋ฉ๋๋ค.
@rgommers ์ฃ์กํฉ๋๋ค. "SciPy ์ํ๊ณ ์ธ๋ถ์ ๋ ๋ค๋ฅธ ์"๋ผ๊ณ ๋ง ํ์ด์ผํ์ต๋๋ค.
๋ฐฉ๊ธ SciPy ์ํ๊ณ ์ธ๋ถ์์๋ Python ๋ฆด๋ฆฌ์ค ๋ ธํธ์ ๋ํ ๋งํฌ๋ก ๋ด ๋ต์ฅ์ ํธ์งํ์ต๋๋ค.
๊ทธ๊ฒ ์ด๋ค ์ฐจ์ด๋ฅผ ๋ง๋ค์ ์๊น์? ์ฌ๋๋ค์ด ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ์ฝ์ง ์๊ณ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์ฃผ์ ํ๊ฒ ๋ง๋ค์์ ๊ฒ์ ๋๋ค. ํ์ด์ฌ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ (๊ฐ๋ฐํ์ง ์๋) ๋ชจ๋ ์ฌ๋๋ค์ ์ด๊ฒ์ ์กฐ์ฌํด์ผ ํ ์ ํธ๋ก ๋ฐ์ ๋ค์์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค. 1.12, 1.13, 1.14 ๋ฑ์ด ์๋ 12.0, 13.0, 14.0์ด ์๋ค๋ฉด ์ฌ์ฉ์๋ ๊ทธ๊ฒ์ ์ต์ํด์ง๊ณ ์ด์ ๊ณผ ๋์ผํ ์ ๊ทธ๋ ์ด๋ ์ ๋ต์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ๋๋ค์๊ฐ ๊ฐ์๊ธฐ ํจ์ฌ ๋ ๋ณด์์ ์ด๋๋ ๊ฒ์ ์๋๋๋ค.
SciPy ์ํ๊ณ์๋ ๊ฐ๋ฐ์ ์ ๊ทน์ ์ผ๋ก ๋ฐ๋ฅด์ง ์๋ ์๋ง์ ๋ก์ฐ ํ๋กํ ์ฌ์ฉ์๊ฐ ์๋ค๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. Python ๋ฐ NumPy๋ ls ๋ฐ gcc์ ๋์ผํ ํน์ฑ์ ์ธํ๋ผ ํญ๋ชฉ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ข ์ข ๊ทธ๋ณด๋ค ์ ์ต๋๋ค. ๊ทธ๋ค์ Python์ผ๋ก ์์ฑ๋๊ณ NumPy์ ์์กดํ๋ ์ผ๋ถ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ค๋จ๋๋ฉด ์์ ํ ์์ค๋ฉ๋๋ค.
๋ชจ๋ ์ฌ์ค์ด๋ฉฐ ๋ฒ์ ๋ฒํธ๋ก ๋ง์ ์ฒ๋ผ ๊ณ ์น ์๋ ์์ต๋๋ค. pip install --upgrade numpy
๋ฅผ ์คํํ๋ค๋ฉด, ๋ฌด์์ํ๊ณ ์๋์ง ์์์ผํฉ๋๋ค (์ด๋ ๋ฒ์ ๋ฒํธ๋ ํ์๋์ง ์์). ํจํค์ง ์์คํ
์ด๋ผ๋ฉด ๊ด์ฐฎ์ ํ
์คํธ ์ค์ํธ๊ฐ ์๊ฑฐ๋ ์คํ๋์ง ์์ ์ํํธ์จ์ด์ ๋ฌธ์ ๋ฅผ๋ณด๊ณ ์๋ ๊ฒ์
๋๋ค.
ํ์ฌ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ ๋ณ๊ฒฝ์ ๋ค๋ฅธ ๋จ์ :
๋ด ๊ธฐ์ค ์ฐธ์กฐ๋ Python์ด ์๋๋ผ ์ผ๋ฐ์ ์ธ ์ํํธ์จ์ด ์ค์น์ ๋๋ค. ๋ด๊ฐ ๋งํ๋ฏ์ด ๋ง์ (์๋ง๋ ๋๋ถ๋ถ์) ์ฌ์ฉ์์๊ฒ NumPy๋ gnu-coreutils ๋๋ gcc์ ๊ฐ์ ์ธํ๋ผ์ ๋๋ค. SciPy ์ํ๊ณ์ ๋งฅ๋ฝ์์ ๋ฒ์ ๋ฒํธ๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ํด์ํ์ง ์์ต๋๋ค.
์ฝ 300 ๊ฐ์ ํจํค์ง๊ฐ ์ค์น๋ ๋ฐ๋น์ 9 ์์คํ ์ ๋น ๋ฅด๊ฒ ํ์ธํ์ต๋๋ค. ๊ทธ๋ค ์ค 85 %๋ ์ ์๋ก ์์ํ์ฌ ์ ์ด ์ค๋ ๋ฒ์ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ์ ์ ๋์ฌ๋ 1 (30 %), 2 (26 %), 0 (14 %) ๋ฐ 3 (13 %)์ ๋๋ค. NumPy๊ฐ ์ผ๋ฐ์ ์ธ ๊ธฐ๋์ ๋ถํฉํ๋ ๋ฒ์ ๋ฒํธ ์ง์ ์ฒด๊ณ (์ฆ, ์๋ฏธ ์ ๋ฒ์ ์ง์ ๋๋ ๊ทผ์ฌ์น)๋ฅผ ์ฑํํ๋ฉด ํ์คํ ๋์ ๋๊ณ ์ฃผ์ํด์ ์ทจ๊ธ๋ฉ๋๋ค.
๋ฐ๋น์์ด ์ค์น ํ ์ํํธ์จ์ด์ ์ ์ผํ ์ ๋ฐ์ดํธ๋ ์ง์์ ๋ง๋ ์กฐ์ง ๋ชจ๋ ํ์ฅ์ ๊นจ๋จ๋ฆฐ ์กฐ์ง ๋ชจ๋๋ฅผ ๋ณ๊ฒฝ ํ Emacs ์ ๋ฐ์ดํธ๋ฅผ ์ ์ธํ๊ณ ๋ SciPy ์ํ๊ณ์์์์ต๋๋ค. ๋ฐ๋ผ์ ์ ์ฒด์ ์ผ๋ก ๋ฎ์ ๋ฒ์ ๋ฒํธ ์ ๋์ฌ๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด๊ฐ NumPy ๋ฐ ์น๊ตฌ๋ค๋ณด๋ค ํจ์ฌ ๋ ์์ ์ ์ด๋ผ๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
SciPy ์ํ๊ณ ์ ๋ฐ์ ๊ฑธ์น ํต์ผ์ฑ์ ์ค์ ๋ก ์ค์ํ์ง๋ง ์ ์ฒด ์ํ๊ณ๊ฐ ์ธ๋ถ ์ธ๊ณ์ ๊ธฐ๋์ ๋ถํฉํ๋ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ ์ฑํํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ๋๋ NumPy๋ฅผ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ์ผ๋ก๋ณด๊ธฐ ๋๋ฌธ์ ๋จ์ง NumPy๋ก ์์ํ๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ฌด์๋ณด๋ค ๋ ๋ง์ ์ธํ๋ผ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ํจ์ ์๋ฏธ์ ๋ณ๊ฒฝ์ ABI์ ๋ณ๊ฒฝ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํ ๋ณ๊ฒฝ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์๋ ์๋ฐฑ ๋ช ์ ์ฌ์ฉ์์๊ฒ ๋๋ฒ๊น ์ ๋ชฝ์ ์ผ์ผํฌ ์ ์์ผ๋ฉฐ ํ๋ก๊ทธ๋จ์ด ์๋ ๋์ ๊ฐ์ง๋์ง ์์ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ์์ ํด์ผ ํจ์ ๋ช ํํ๊ฒ ๋ํ๋ด๋ ์ค๋ฅ ๋ฉ์์ง๋ก ์ด์ด์ง๋๋ค.
์ด๋ฌํ ํ์ค์ ๋ฐ๋ฅด๋ฉด NumPy๋ Python์ ์ ๋๋ฅผ ๋ฐ๋ฅด์ง ์์ต๋๋ค. ์๋ํ๋ฉด Python ์ธ์ด์์ ๋ด๊ฐ ์๊ณ ์๋ ์๋ฏธ ์ฒด๊ณ์ ์ ์ผํ ๋ณ๊ฒฝ์ 2์์ 3์ผ๋ก ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ํจ์ ์๋ฏธ์ ๋ณ๊ฒฝ์ ABI์ ๋ณ๊ฒฝ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํ ๋ณ๊ฒฝ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์๋ ์๋ฐฑ ๋ช ์ ์ฌ์ฉ์์๊ฒ ๋๋ฒ๊น ์ ๋ชฝ์ ์ผ์ผํฌ ์ ์์ผ๋ฉฐ ํ๋ก๊ทธ๋จ์ด ์๋ ๋์ ๊ฐ์ง๋์ง ์์ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ์์ ํด์ผ ํจ์ ๋ช ํํ๊ฒ ๋ํ๋ด๋ ์ค๋ฅ ๋ฉ์์ง๋ก ์ด์ด์ง๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐํ์ง ์๊ธฐ ์ํด ์ ๋ง ์ด์ฌํ ๋ ธ๋ ฅํฉ๋๋ค. ์ผ๋ถ ๊ธฐ๋ฅ์ด ์ ๊ฑฐ ๋ ๋ ๋ช ํํ ํ์์ด ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์์น ๊ฒฐ๊ณผ๋ฅผ ์กฐ์ฉํ ๋ณ๊ฒฝํด์๋ ์๋ฉ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋๊ฐ์ ๋ทฐ ๋ณ๊ฒฝ์์ ๋ฐฐ์ด ๊ฒ ์ค ํ๋์ ๋๋ค.
ํ์คํ ๋์ ๋๊ณ ์กฐ์ฌ์ค๋ฝ๊ฒ ๋ค๋ฃจ์ด ์ง ๊ฒ์ ๋๋ค.
๋๋ ์ฌ์ ํ ๋์ํ์ง ์๋๋ค. ๋ฐ๋น์์์๋ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ "์ผ๋ฐ์ ์ธ ์ํํธ์จ์ด ์ค์น"๋ ์๋๋๋ค (Windows์ Anaconda์ ๋น์ทํฉ๋๋ค). ๋ํ ์ฌ์ฉ์๊ฐ ์ ์์ ์ผ๋ก ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณผ ์ ์๋ค๋ ์์ ์ฃผ์ฅ์ ๋ฌด์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค ( pip install --upgrade
๋๋ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ง ์์).
๋ํ ๋ค๋ฅธ ํฐ ์ข ์์ฑ ์ฒด์ธ์ด ์๋ OS ์ ํธ๋ฆฌํฐ ๋ฐ GUI ํ๋ก๊ทธ๋จ๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ด ๊ฒฐ์ฝ ๊นจ์ง์ง ์๋๋ค๋ ๊ฒฝํ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ ์ฒด JavaScript / NodeJS ์ํ๊ณ๋ ์๋ง๋ Python๋ณด๋ค ๋ ์ทจ์ฝ ํ ๊ฒ์ ๋๋ค.
BTW, ๋๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๊ฒ์ ๋ฌผ๋ ธ๋ค๋ ๊ฒ์ ํ์ ํ ์ ์์ต๋๋ค. ์ MMTK๊ฐ ํ๋ฃจ์์ ๋ค์์ผ๋ก ์๋์ ๋ฉ์ท๋์ง ๋ฌป๋ ๋ง์ ๋ฉ์ผ์ ๋ฐ์๊ธฐ ๋๋ฌธ์
์ด๊ฒ์ ์ฌ๊ธฐ์์ ๋ฏธ๋ฌํจ์ ์ข์ ์์ ๋๋ค. ๋ด๊ฐ ์๋ ํ, MMTK์ ๋ค๋ฅธ ํ๋ก์ ํธ๋ ์ซ์ / numarray ํธํ์ฑ ์ฝ๋ ์ ๊ฑฐ๋ก ์ธํด ์ํฅ์๋ฐ์ ์ ์ผํ ํ๋ก์ ํธ์ ๋๋ค. ์ผ๋ง๋ ๋ง์ ์ฌ์ฉ์๊ฐ์์ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น? 100? 1000? NumPy๋ ์๋ฐฑ๋ง ๊ฐ๋ฅผ ๋ณด์ ํ๊ณ ์๋๋ฐ ์ฌ์ฉ์์ 0.1 %๊ฐ ์ด๋ฒ ์ ๊ฑฐ๋ก ์ธํด ์ํฅ์ ๋ฐ์์๊น์? ์ด๊ฒ์ ํ์คํ 0์ด ์๋๋ฉฐ, ๊ทธ๊ฒ์ด ์๋ค๋ ์ฌ์ค์ด ์ค์ํ์ง ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ๋ชจ๋ ๋ฐฉ๋ฒ์ผ๋ก 100 % ์ฌ์ฉ์๋ฅผ ์์ํ ์ง์ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ฉ์๋ก๋ถํฐ 100 % ๋ถ๋ง์๋ฐ๋ ๊ฒ์ด ํนํ ๊ณ ํต ์ค๋ฝ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
ํ์ง๋ง์ด๋ฅผ ์ํด ์ฃผ ๋ฒ์ ๋ฒํธ๋ฅผ ์ฌ๋ฆฌ๋ฉด ์ฌ์ฉ์์ 99.9 %๊ฐ ์ธํ๋ฅผ ์ธ๋ ธ๋ค๋ ๋ป์ ๋๋ค. ์คํ์ ๋๋ค. 0.1 %์ ์ฌ์ฉ์์๊ฒ๋ OTOH๊ฐ ์ ๋ง ์ค์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ต์ ์ ๋ ธ๋ ฅ์๋ ๋ถ๊ตฌํ๊ณ ๋ง์ดํฌ๋ก ๋ฆด๋ฆฌ์ค์์ ์ฌ์ฉ์์ 0.1 % ์ด์์ ๊นจ๋จ๋ฆฌ๋ ๊ฒ์ ๋๋ฌธ ์ผ์ด ์๋๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ฌด์์ํฉ๋๊น?
๋ฒ์ ๋ฒํธ์ ๋ฌด๋ ๋๊ตฌ๋ฅผ ํตํด ์ด๋ฌํ ๋์์ค๋ฅผ ์ ๋ฌํ ์๋ ์์ต๋๋ค. ๋๊ตฌ๋ ์ ๊ทธ๋ ์ด๋๋ก ์ธํด ์ฝ๋๊ฐ ์์๋๋์ง ์ฌ๋ถ๋ฅผ ์ ์ํ๊ฒ ์ ์์๋ ๋ฐฉ๋ฒ์ ์ํฉ๋๋ค . Semver๋ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ์ฝ์ํ๊ธฐ ๋๋ฌธ์ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค. ์ ํํ๋ ๋ค์ด์ดํธ๊ฐ ์์ ์น๋ฃํ ์ ์๋ค๊ณ ์๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ด์ ๋ก ์ธ๊ธฐ๊ฐ ์์ต๋๋ค. ๋๋ semver๋ ์ฝ์๋๋ก ์ด๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ข์ ์์ง๋์ด๊ฐ๋๊ณ ์ถ๋ค๋ฉด ๊ทธ ํ์ค์ ๋ณต์ก์ฑ์ ๋ค๋ค์ผํฉ๋๋ค.
NumPy ํ๋ก์ ํธ๊ฐ ๋ณดํธ์ ์ธ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํด์ผํ๋ ๋ฐฉ๋ฒ๊ณผ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค. ์ฌ๋๊ณผ ๊ธฐ๊ด์ ์๋ก ๋ค๋ฅธ ์๊ตฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ฒ์ ๋ฒํธ๊ฐ ํ๋๋ฟ์ด๋ฏ๋ก ๋ณดํธ์ ์ธ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํ๋ฏ๋ก ์ ์์ ๋ฐ๋ผ ์ฐ๋ฆฌ๊ฐ ์ํํ๋ ๋ชจ๋ ์์ ์ ๋ณดํธ์ ์ธ ๊ถ์ฅ ์ฌํญ์ ๋๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํต์ ํ ์์๋ ๊ฒ์ด ์๋๋๋ค.
๊ทธ ์๊ด์
diagonal
์ ๊ฐ์ ์ผ๋ถ ์์ ์ ๋ณต์ฌ /๋ณด๊ธฐ ์๋ฏธ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋๋ค.
IIRC ์ฐ๋ฆฌ๋ ๋๊ตฐ๊ฐ์ ์ฝ๋๋ฅผ ์๋ฐํ๋ค๊ณ ๋งํ๋ ๋๊ตฐ๊ฐ๋ก๋ถํฐ ์ด๊ฒ์ ๋ํด ๋ง ๊ทธ๋๋ก ๋จ์ผ ๋ถ๋ง์๋ฐ์ง ๋ชปํ์ต๋๋ค. (์ด์ฉ๋ฉด ํ ์ฌ๋์ผ๊น์?) ์๋ฌด๋ ์ํฅ์๋ฐ์ง ์์๋ค๋ ๋ป์ด ์๋๋๋ค. ๋ถ๋ช ํ ๋ณํ์ ๋ํด ๋ถํํ๋ ์ฌ๋๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ํฅ์๋ฐ๋ ์ฌ๋๋ค์ ๊ทนํ ์ผ๋ถ์ ๋ถ๊ณผํ์ง๋ง ๋ถ๋ง์ ์ค์ ๋๋ฆฌ๋ก ์ฌ์ฉํ๋ค๋ฉด ์ธ๊ณ์ ๋ฏธ์น๋ ์ํฅ์ ์ด๊ฒ์ด ์์ 50 ์๋ฅผ ์ฐจ์งํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ BTW ๋๋ ๋น์ ์ด ๊น์ ์ญ์ฌ๋ฅผ ์ดํด๋ณด๋ฉด ๊ทธ๋ณด๋ค ํจ์ฌ ๋ ์ฌ๊ฐํ ๋ณํ๋ฅผ ์ฐพ์ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค :-).
๋ฐ๋น์์ด ์ค์น ํ ์ํํธ์จ์ด์ ์ ์ผํ ์ ๋ฐ์ดํธ๋ ์ง์์ ๋ง๋ ์กฐ์ง ๋ชจ๋ ํ์ฅ์ ๊นจ๋จ๋ฆฐ ์กฐ์ง ๋ชจ๋๋ฅผ ๋ณ๊ฒฝ ํ Emacs ์ ๋ฐ์ดํธ๋ฅผ ์ ์ธํ๊ณ ๋ SciPy ์ํ๊ณ์์์์ต๋๋ค.
์ ์คํ๊ฒ๋ ์ด๊ฒ์ NumPy ๋ Debian๋ณด๋ค NumPy ๋ Debian์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ๋ง์ด ๋งํฉ๋๋ค. ๋๋ ๋ฐ๋น์์ ์ฌ๋ํ๊ณ , ๊ฑฐ์ 20 ๋
๋์ ๊ทธ๊ฒ์ ์ฌ์ฉํด ์๊ณ , ๊ทธ๊ฒ์ด ๋ช ๋ฒ์ด๋ ๊ณ ์ฅ ๋ฌ๋์ง ์
์ ์์ต๋๋ค. ์ง๋์ฃผ์ ์๋ก์ด ๊ทธ๋์ ๊ธฐ๊ดดํ ๋ฌธ์ ๋ก ์ธํด ๋ก๊ทธ์ธ ์คํฌ๋ฆฝํธ ๊ฐ ๊นจ์ก๊ณ ๋ค๋ฅธ ์
๊ทธ๋ ์ด๋๋ก ์ธํด -Werror
์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ผ์ํ๊ณ ๊ฒฝ๊ณ ๋์์ ์ฝ๊ฐ ๋ณ๊ฒฝํ๊ธฐ ๋๋ฌธ์ (๋ฏธ๋ฌํ๊ฒ ์์กด ํ ์์๋) gcc ๋ฆด๋ฆฌ์ค์ ๊ฐ์ ๊ฒ์ด ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ต์ ํ ๊ณผ์ ๊ฐ์ ์ํธ ์์ฉ ๋ฑ)์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ ์ฒด์ ์ผ๋ก ๋ฎ์ ๋ฒ์ ๋ฒํธ ์ ๋์ฌ๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด๊ฐ NumPy ๋ฐ ์น๊ตฌ๋ค๋ณด๋ค ํจ์ฌ ๋ ์์ ์ ์ด๋ผ๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
์ ์ฒด์ ์ผ๋ก ๋ฎ์ ๋ฒ์ ๋ฒํธ ์ ๋์ฌ๋ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ํํธ์จ์ด๊ฐ semver๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ํจ์ ์๋ฏธ์ ๋ณ๊ฒฝ์ ABI์ ๋ณ๊ฒฝ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํ ๋ณ๊ฒฝ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์๋ ์๋ฐฑ ๋ช ์ ์ฌ์ฉ์์๊ฒ ๋๋ฒ๊น ์ ๋ชฝ์ ์ผ์ผํฌ ์ ์์ผ๋ฉฐ ํ๋ก๊ทธ๋จ์ด ์๋ ๋์ ๊ฐ์ง๋์ง ์์ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํ์๋ ๋ฌด์ธ๊ฐ๋ฅผ ์์ ํด์ผ ํจ์ ๋ช ํํ๊ฒ ๋ํ๋ด๋ ์ค๋ฅ ๋ฉ์์ง๋ก ์ด์ด์ง๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๊ทธ๋ฌํ ๋ณํ๋ฅผ ๊ทน๋๋ก ๊ฒฝ๊ณํฉ๋๋ค.
์ฌ๊ธฐ์๋ ๊ด์ ์์ ์ฝ๊ฐ์ ๋จ์ ์ด ์์ต๋๋ค. ๋น์ ์ ์ฐ๋ฆฌ๊ฐ ํญ์ ์ผ์ ์๋ฌด๋ ๊ฒ๋ ๋ฐ๊พผ๋ค๊ณ ์๊ฐํ๋ ๊ฒ ๊ฐ๊ณ , ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์ ๋ ๊ทธ๊ฒ์ ์กด์คํ ์ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋น์ ์ ๊ฒฝํ์ ๋ฐ์ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ์ ๊ฒฝํ์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ฌํ ๋ณํ์ ๊ทน๋์์ฃผ์๋ฅผ ๊ธฐ์ธ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ์ฌ์ฉ์๋ค๊ณผ ์ด์ผ๊ธฐ ํ ๋, ๋น์ ์ ๊ด์ ์ ๊ฐ์ง ์ฌ๋์ ~ 5 %์ด๊ณ , numpy๊ฐ ์์ ์ฑ์์ ์ข์ ์ผ์ํ๊ณ ์๋ค๊ณ ๋๋ผ๋ ์ฌ๋์ ~ 95 %์ ๋๋ค. ๋๋ ๋๋ฌด ์ข์ ์ผ์ํ๊ณ ์๊ณ ๋ ๊ธฐ๊บผ์ด ์ผ์ ๊นฐ ์ ์์ด์ผํฉ๋๋ค. ์๋ง๋ ์ฐ๋ฆฌ๊ฐ ๋น์ ์ ์ค๋ง์ํจ๋คํด๋ ์ฐ๋ฆฌ๋ ๋ง์ง๋ง ๊ทธ๋ฃน์ ์ค๋ง ์ํจ๋ค๋ ์ฌ์ค์ ์๊ณ ์๋ก๋ฅผ๋ฐ์ ์์์ ๊ฒ์ ๋๋ค :-).
Emacs ์ ๋ฐ์ดํธ๋ฅผ ์ ์ธํ๊ณ ๋
๊ธ์, ์ฃผ์ ๋ฅผ ๋ฒ์ด๋ ๊ฒ์ ์์ ์ฑ์ ๋ค๋ฅธ ์ธก๋ฉด์ ์์ ๋๋ค. Emacs๋ Stallman์ ๋ณํ์ โโ๋ํ ์ ํญ์ผ๋ก ์ธํด ์๋ ๊ฐ ์ ์ ์ด์์ผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ xEmacs ํฌํฌ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ด ์์ ์ ๊ธธ์ Emacs-> xEmacs๋ก ๊ฐ๋ค.-> Vim;) ์กฐ๊ธฐ ํ์ํ๋ ๋ด๊ฐ ์์ ์ ๋ฐ๋น์ ์ฌ์ฉ์ ์ค๋จ ํ ์ด์ ์ด๊ธฐ๋ํ๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ๋จ์ํ ๋ณ๊ฒฝ์ด ํ์ํ์ง ์๊ฑฐ๋ ์ํ์ง ์์ผ๋ฉฐ, ์ท์ฅ์ ์จ๊ฒจ์ ธ์๋ ์ค๋๋ ํ๋์จ์ด์์ ๊ณ ๋ ๋ฒ์ ์ BSD๋ฅผ ์คํํ๋ ์ฌ๋๋ค์ด์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ํ์ง๋ง ๊ทธ๋ฐ ๊ณณ์ด ๋ง์ ๊ฑฐ๋ผ๊ณ ๋ ์๊ฐํ์ง ์์ต๋๋ค.
ํ์ฌ ๋ฌธ์ ์ ๋ํด์๋ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ์ ๋ณ๊ฒฝ์ด ์ค์ ๋ก ์ด๋ค ์ฐจ์ด๋ฅผ ๋ง๋ค์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ณด๋ค ์์ฐ์ ์ธ ๊ฒฝ๋ก๋ ํ๋ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๋๋ค. @khinsen ์ฃผ์ ํ๋ก์ ํธ์ ์ ๋ฐ์ดํธ๋ฅผ ์๋ฝํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๊ฐ ๋น์ ์ ๋์ธ ์์๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ค์์์ ํ๋ก์ ํธ๋ฅผ ์
๋ฐ์ดํธํ๋ ค๊ณ ํฉ๋๋ค.
https://github.com/ScientificPython. Python ์ฝ๋๋ฅผ ์
๋ฐ์ดํธํด์ผํฉ๋๋ค.
์ด์ C API๋ฅผ ์ฌ์ฉํ์ต๋๋ค (๊ทธ๋ฆฌ๊ณ ์ด์ ์ ์๋ฏธํฉ๋๋ค. Py_PROTO์ ๊ฐ์ ์ผ๋ถ ๊ธฐ๋ฅ์
2000 ๋
๋ถํฐ). ๋ฌผ๋ก PR๋ ํ์ํ์ง๋ง
์๊ฐ์ ๋ณด๋ด๊ณ ์ถ์ดํฉ๋๋ค.
๊ทธ๊ฐ ์ ๊ธฐ ํ ๋ ํฐ ๋ฌธ์ ๋
ํ๋ก์ ํธ "(๋ชจ๋ ํ๋ก์ ํธ๊ฐ ์ ํํ ์ด๋์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์
๋ฐ์ดํธ๊ฐ ํ์ํ Python 3) ์ง์์ ๋ณด์์ต๋๋ค. ์ด๋?
NumPy ๊ฐ๋ฐ์ ์๊ฐ์ด ํ ๋น ๋ ํ๋ก์ ํธ๋ฅผ ๊ฒฐ์ ํ์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ๋๋
๊ทธ์ ํต์ฌ ์ฃผ์ฅ์ด ์ ํจํ์ง ์๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค. SciPy๋
์ด์ ํฌํธ๋ ํ๋ก์ ํธ (์ :
fftpack) ์์ ์ด ๊ฑฐ์ ๋๋ ์ ํ ์์ต๋๋ค. ์ด๊ฒ๋ค์ด ๋ง๋ก ์ฐ์ฌ์ก๋ค๋ฉด
"fortran 2"์ ์๋ก์ด ์ปดํ์ผ๋ฌ๋ "fortan 3"๋ง ์ปดํ์ผํ์ต๋๋ค.
์ค์ํ ๋ฌธ์ ์์ต๋๋ค.
์ฆ, ์ด๋ฌํ ๋ฌธ์ ๋ ์ค์ ๋ก NumPy์ ์๋ชป์ด ์๋๋๋ค. ๊ทธ๊ฐ ๊ฐ์ง ๊ฒ์๋ ๋ถ๊ตฌํ๊ณ
NumPy 1.13์ด ์ค์น๋ ์ํ์์ oldnumeric์ ์ฌ์ ํ โโ๋ชจ๋ ํ
์คํธ๋ฅผ ํต๊ณผํ์ต๋๋ค.
NumPy๊ฐ ์ฌ๊ธฐ์ ๋ฒ์ธ์ด ์๋์ ๋ํ๋
๋๋ค. oldnumeric API๋
๋ง ๊ทธ๋๋ก 10 ๋
์ด ๋์์ต๋๋ค (์๋ง 20 ๋
์ด ๋ค๊ฐ์ด!).
์ต์ NumPy์์ ์๋ํฉ๋๋ค. NumPy API๋ ์๋ง๋ ์์ ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ถฉ๋ถํ.
@charris ์ ๋ "์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ์ง ์๋๋ค"๋ ๊ฒ์ด ์ปดํจํ ์์ ์์ฐ์ ์ธ ํ๋๊ฐ ์๋๋ผ๋ ๋ฐ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค.
๋ด ์์ ์ SciPy ์ํ๊ณ๊ฐ ๋งค์ฐ ์ธ๊ธฐ๊ฐ ๋์์ ธ์ ๋ณ๊ฒฝ ๊ด๋ฆฌ์ ๋ํ ๋จ์ผ ์ ๊ทผ ๋ฐฉ์์ด ๋ชจ๋ ์ฌ๋์๊ฒ ์ ํฉํ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ฃผ์ด์ง ๋ถ์ผ์์ ๋ฐฉ๋ฒ๊ณผ ๊ทธ ๊ตฌํ์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ์งํํ๋์ง, ์ค๋ฌด์์ ๊ธฐ์ ์ ๋ฅ๋ ฅ, ๊ทธ๋ค์ด ์์กดํ๋ ๋ค๋ฅธ ์ํํธ์จ์ด, ๊ทธ๋ค์ด ์ฝ๋์ ํฌ์ ํ ์์๋ ์์ ๋ฑ์ ๋ฌ๋ ค ์์ต๋๋ค.
ํ์ฌ NumPy ํต์ฌ ํ์ ์์ ์ฑ๋ณด๋ค๋ ์ง๋ณด (์ผ๋ถ ๋ถ์ผ์์๋ ์ค์ํ์ง๋ง ๋ค๋ฅธ ๋ถ์ผ์๋ ๊ฑฐ์ ๋ฌด๊ด ํ ๋ฐฉํฅ)์ ๋ ๊ด์ฌ์๋๊ณ ์์ต๋๋ค. ๊ด์ฐฎ์ต๋๋ค. ์คํ ์์ค ์ธ๊ณ์์๋ ์์ ์ ์ํํ๋ ์ฌ๋๋ค์ด ์ํ๋ ์์ ์ ๊ฒฐ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด ์ธ์์ NumPy์ ์์กดํ๋ ๋ง์ ์ฌ๋๋ค์ด ๋ค๋ฅธ ์๊ตฌ ์ฌํญ์ ๊ฐ์ง๊ณ ์๊ณ ๊ฐ๋ฐ ํ์์ ๋ฒ๋ฆผ์ ๋๋ผ๋ฉฐ SciPy์์ C ๋ฐ Fortran๊ณผ ๊ฐ์ ๋ ์ ํต์ ์ด๊ณ ์์ ์ ์ธ ๊ธฐ์ ๋ก ์ด๋ํ๊ธฐ ์์ํ๋ค๋ ๊ฒ์ ๊นจ๋ซ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฒฝ์ฐ์๋ Matlab์๋ ์๊ณ ์์ต๋๋ค).
๋๋ NumPy ์ฌ์ฉ์ ์ค ๋ช ํผ์ผํธ๊ฐ ํ์ฌ ์ํฉ์ ์ถฉ๋ถํ ๋ถ๋ง์กฑํ๋์ง ์์ง ๋ชปํ๋ฉฐ, ๋ค๋ฅธ ๋๊ตฌ๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ํํธ์จ์ด ํจํค์ง๊ฐ ์ธํ๋ผ๊ฐ๋๋ฉด ๋๊ฐ ์์กดํ๋์ง ์ฝ๊ฒ ์์ธกํ ์ ์์ต๋๋ค. ์ธ์์กฐ์ฐจํ์ง ๋ชปํ๋ ๋ง์ ์ฌ๋๋ค์ด NumPy์ ์์กดํ๋ ๋ง์ ์ฝ๋ (์ง๊ฐ์ ์ )๋ ๊ณต๊ฐ๋์ง ์๊ฑฐ๋ ์ฝ๊ฒ ๋ฐ๊ฒฌ ํ ์ ์์ต๋๋ค.
SciPy ์ปค๋ฎค๋ํฐ์ ๋ชจ๋ ์ฌ๋์ ํ๋ณตํ๊ฒ ์ ์งํ๋ ค๋ฉด ๋ค์ํ ์๊ตฌ ์ฌํญ์ ์ฒ๋ฆฌ ํ ๋ฐฉ๋ฒ์ ์ฐพ์์ผํฉ๋๋ค. ์ ์๊ฐ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ํน์ ์ค์น์ ๋ณ๊ฒฝ ์๋์ ๋ํ ์ ์ด๊ถ์ ๊ฐ๋ฐ์์์ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ์ฌ๋์ผ๋ก ์ ํํ๋ ๊ฒ์ ๋๋ค. ์ต์ข ์ฌ์ฉ์ ์์ , ์์คํ ๊ด๋ฆฌ์, ํจํค์ ๋๋ ๋ค๋ฅธ ์ฌ๋ ์ผ ์ ์์ต๋๋ค.์ด ์ง๋ฌธ์ ๋ํ ๋ณดํธ์ ์ธ ๋๋ต์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ฐ์์๊ฒ ํ์ํ ๊ฒ์ ์ฌ๋ฐ๋ฅธ ์์ค์ ์ ๋ณด์ด๋ฉฐ ์ด๊ฒ์ด ์ ๊ฐ์ด ์ค๋ ๋๋ฅผ ์์ํ ์ด์ ์ ๋๋ค. ๋ฌผ๋ก ๋ฒ์ ๋ฒํธ๊ฐ ์ธ์์ ๊ตฌํ ์๋ ์์ง๋ง ๋ณ๊ฒฝ ๊ด๋ฆฌ์ ๋ํ ๋ถ์ฐ ์ฑ ์์ ์ค์ ํ๋ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก ์๊ฐํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์ฌ๋ฌ๋ถ ์ค ์ผ๋ถ๋ ์ ๊ฐ ์ ์ฝ๋์ ๋ํด ๊ฐ์ธ์ ์ผ๋ก ์ธ์ฐ๊ณ ์๋ค๊ณ ์๊ฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ด ๊ฐ์ธ์ ์ธ ํ๋๊ฐ ๋ด๊ฐ ์ฌ๊ธฐ์ ์นํธํ๋ ํ๋๊ฐ ์๋๋ผ๋ ์ฌ์ค์ด ๋๋ผ ์ธ ๊ฒ์ ๋๋ค. ๋ณํ์จ์ ๋ํ ์ ๋ง์ ์ค์ ์คํ์ ์ ๋ถ์ผ์์ ํํ ๋ณผ ์์๋ ๊ฒ๊ณผ NumPy ํ์์ ๋๋ฆฌ ํผ์ ธ์๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ ๊ฒ ์ฌ์ด์ ์์ต๋๋ค. ์ค๋๋ ๋๋ถ๋ถ์ ์์ ์ Python 3 ๋ฐ NumPy> 1.10์ ์ฌ์ฉํฉ๋๋ค. MMTK๋ 20 ์ด์ด๊ณ ์ ๋ ์ค๋๋ ๋ง์ ์ผ์ ๋ค๋ฅด๊ฒํฉ๋๋ค. MMTK์์ ํน์ ํ๋ก์ ํธ์ ํ์ํ ์ฝ๋ ์กฐ๊ฐ์ ๊ฐ์ ธ์ "ํ๋ SciPy"์ ์ ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.ํ์ง๋ง ์ด๋ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ํ์ ์ ๊ฐ์ง๊ณ ์ํ ํ ์์๋ ์์ ์ ๋๋ค.
๋๋ ๋ด ์์ ์ด ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ์ปค๋ฎค๋ํฐ์ ๋ํ ์๋น์ค๋ก์ ์์ ์ ์ธ MMTK๋ฅผ ์ ์งํด ์๋๋ฐ, ์ด๋ ๋ด๊ฐ ์ฝ๋๋ฒ ์ด์ค์ ๋๊ท๋ชจ ๋ณ๊ฒฝ์ ํผํ๋ฉด์ ์ต์ํ์ ๋ฐฉ์์ผ๋ก ์ ์ง ๋ณด์๋ฅผ ์ํ ํ ์ด์ ๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ํํธ์จ์ด ๋ฐ ๋๋ฉ์ธ ์ ๋ฅํ ๊ฐ๋ฐ์๋ฅผ์ํ ์๊ธ์ ๋ชจ๋ ์ฐพ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต ๊ธฐ ๋๋ฌธ์ MMTK๋ ํญ์ 1 ๋ช ์ ์ ์ง ๋ณด์ ์ + ๋๋๋ก ๊ธฐ์ฌ์ ํ๋ก์ ํธ๋ก ๋จ์ ์์ต๋๋ค. MMTK์ ์์กดํ๋ ๋๋ถ๋ถ์ ์ฝ๋๊ฐ ์์ ํ ์ ์ง๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ MMTK๋ฅผ "ํ๋์ ์ธ SciPy"๋ก ํฌํ ํ๋ ๊ฒ์ด ๋๊ตฌ์๊ฒ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ๋ค ์ค์ง ํ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด ์ฃผ๋ณ์์ ๋ณด๋ ๋๋ถ๋ถ์ Python ์ฝ๋, ์ฌ์ง์ด MMTK์ ์์ ํ ๊ด๋ จ์ด์๋ ์ฝ๋๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ณ์ฐ๊ณผ ์ฝ๋ฉ์ด ์๋ ์คํ์ด ๊ด์ฌ์ ์ด์ ์์๋ ์ฐ๊ตฌ ์์ญ์ ํ์ค์ ๋๋ค.
@xoviat oldnumeric
์ ํ
์คํธ ์๋ ์์ฒญ๋๊ฒ ์ ์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด NumPy 1.13์ ํต๊ณผํ๋ค๋ ์ฌ์ค์์ ๋ง์ ๊ฒฐ๋ก ์ ๋ด๋ฆฌ์ง ์์ ๊ฒ์
๋๋ค.
์ง๊ธ๊น์ง ์ดํด๋ณธ C ํ์ฅ ๋ชจ๋์ ๋ง ๊ทธ๋๋ก 20 ๋ ์ด ์ง๋ฌ์ผ๋ฉฐ Python 1.4 ์ฉ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ๊ทธ ๋น์์๋ Python-C ์ฝค๋ณด์ ๊ฐ์ฅ ์ ๊ตํ ์ ์ค ํ๋์์ผ๋ฉฐ ์ค์ ๋ก Numeric (pre-NumPy) ๋ฐ CPython ์์ฒด์ ์ด๊ธฐ ๊ฐ๋ฐ์ ํ์ฑํ์ต๋๋ค. .
์ ๋ ์ค๋์ API์ ์ง์ ๋๊ตฌ๊ฐ ํจ์ฌ ๋ ์ฐ์ํ๋ค๊ณ ์ฒ์์ผ๋ก ๋งํ์ผ๋ฉฐ ์์ผ๋ก๋ ๊ณ์ ๊ฐ์ ๋ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ์ฌ๋๋ค์ ๊ทธ๊ฒ์ด ์๋ฌด๋ฆฌ ๊ตฌ์์ด๋ ์๊ด์์ด ๋จ์ํ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ตฌ๋ฅผ ์ํํ๊ธฐ๋ฅผ ์ํ๋ฉฐ ๊ทธ๋ค๋ ์กด์ฌํ ๊ถ๋ฆฌ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@rgommers ์ฌ์ฉ์๊ฐ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ณผ ์ ์๋ค๋ ์ฃผ์ฅ์ ๋ฌด์ํ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ด ๋ด ์ฃผ๋ณ์์ ์ฌ์ฉํ๋ ํ๊ฒฝ์์๋ ์ฌ์ค์ด ์๋๋๋ค. ์ ๋ฐ์ดํธ๋ฅผ ๊ฒฐ์ ํ๋ ์ฌ๋๋ค (ํญ์ ์ต์ข ์ฌ์ฉ์๋ ์๋)์ ์ ๋ฐ์ดํธ๋ฅผ ๋ด ๋๋ค. ๊ทธ๋ค์ ๋จ์ง ์ผ์ฃผ์ผ์ ํ ๋ฒ "pip install --upgrade"๋ฅผํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ์ฌ์ง์ด ์ด๊ฒ์ ๋ถ์ฃผ์ ํ ํ๋๋ผ๊ณ ์๊ฐํ ๊ฒ์ ๋๋ค.
์ฃผ๋ณ ์ฌ๋๋ค์ด ์ฃผ๋ก Windows์์ Anaconda๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋งค์ฐ ๋ค๋ฅธ ํ๊ฒฝ์์ ์์ ํ๋ค๋ ๊ฒ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค. ๋ค์์ฑ์ ์๋์ ๊ฐ ์ปค๋ฎค๋ํฐ๊ฐ ์ ์๋ํ๋ ๋๊ตฌ์ ๊ท์น์ ์ฑํ ํ ์ ์๋ค๋ ๋ฐ ๋์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ทธ๋ฆฌ๊ณ ์, NodeJS๋ ๋ ๋์ฉ๋๋ค. ๋์ํฉ๋๋ค. ๋คํํ๋ ์ฝ๊ฒ ๋ฌด์ํ ์ ์์ต๋๋ค.
์ด ์ค๋ ๋๋ฅผ ํ๋ก์ฐํ์ง๋ง ๊ฐํ ๋คํค์ง ์๋ ๋๋ฃ๋ก๋ถํฐ ์ ์ ๋ฉ์ผ์ ๋ฐ์์ต๋๋ค. ๋ฐ์ด๋ ๋น์ ๋ก :
"์ ํ๋ฏธ๊ฒฝ์ ์ฌ์ ๋ ๋์ ๊ณผํ์ ํ ์์๋ ๊ธฐํ๊ฐ ์๊ธฐ๋ฉด ์ ๋ง ๋ง์์ ๋ญ๋๋ค.ํ์ง๋ง ๋๊ตฐ๊ฐ ์ ์์์ํ์ง ์๊ณ ํ๋ฃป๋ฐค ์ฌ์ด์ ์ ํ๋ฏธ๊ฒฝ์ ๊ต์ฒดํ๋ ๋ชจ์ต์๋ณด๊ณ ์ถ์ง ์์ต๋๋ค."
๊ทธ๊ฒ์ ๋ชจ๋ ์์ ์ ๋๊ตฌ๋ฅผ ์ ์ดํ๋ โโ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค.
๋๋ ํ๋ฐค์ค์ ๋น์ ๋๋ฃ์ ์คํ์ค์ ์นจ์ ํ์ฌ ๊ทธ๋ค์ numpy๋ฅผ ์ ๊ทธ๋ ์ด๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์ฝ์ํฉ๋๋ค. ๋๋ ๋ฐ๋ผ ํด๋ผ ๋ฐ๋ ๊ฐ์ง๊ณ ์์ง ์๋ค.
์ ๋ฐ์ดํธ๋ฅผ ๊ฒฐ์ ํ๋ ์ฌ๋๋ค (ํญ์ ์ต์ข ์ฌ์ฉ์๋ ์๋)์ ์ ๋ฐ์ดํธ๋ฅผ ๋ด ๋๋ค. ๊ทธ๋ค์ ๋จ์ง ์ผ์ฃผ์ผ์ ํ ๋ฒ "pip install --upgrade"๋ฅผํ์ง ์์ต๋๋ค. ๊ทธ๋ค์ ์ฌ์ง์ด ์ด๊ฒ์ ๋ถ์ฃผ์ ํ ํ๋๋ผ๊ณ ์๊ฐํ ๊ฒ์ ๋๋ค.
์์คํ ๊ด๋ฆฌ์์ด๊ณ ๋ค์ํ ์ค์น ๋ฐฉ๋ฒ์ ์ฅ๋จ์ ์ ์ดํดํ๊ณ ์๋ค๋ฉด Python ์ธ๊ณ (๋ฐ ์๊ฒฉํ semver๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ค๋ฅธ ๋ง์ ์ํํธ์จ์ด ํ๋ก์ ํธ)์์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ค์ ๋ก ์ดํด (๋๋ ๊ต์ก)ํด์ผํฉ๋๋ค.
ํ์ฌ NumPy ํต์ฌ ํ์ ์์ ์ฑ๋ณด๋ค๋ ์ง๋ณด (์ผ๋ถ ๋ถ์ผ์์๋ ์ค์ํ์ง๋ง ๋ค๋ฅธ ๋ถ์ผ์๋ ๊ฑฐ์ ๋ฌด๊ด ํ ๋ฐฉํฅ)์ ๋ ๊ด์ฌ์๋๊ณ ์์ต๋๋ค.
๋ฏธ์ํ์ง๋ง ์ง๋ ๋ช ๋ ๋์ NumPy ๊ฐ๋ฐ์ ์ ํ ๋ฐ๋ฅด์ง ์์๊ฑฐ๋ ๋งค์ฐ ํน๋ณํ ์๊ฒฝ ์ธํธ๋ฅผ ๊ฐ์ง๊ณ ์์์ ๋ณด์ฌ์ค๋๋ค. NumPy๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ํ ๋ง์ ์ฐ๋ ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๊ธฐ์ฌํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ํ๋ก์ ํธ์ ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์๋ก์ด ๊ด๋ฆฌ์๋ฅผ ์ ์นํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๋ ์ฃผ๋ ์ด์ ์ค ํ๋์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฒฝ์ฐ์๋ Matlab์๋
Matlab์ ํธํ์ฑ์ ๊นจ๋ ๊ฒ์ผ๋ก ์ ๋ช ํ์ต๋๋ค. Matlab์ ์ฌ์ฉํ ํ๋ ฅ ํ๋ก์ ํธ์ ์ฒซ ๋ฒ์งธ ์์ ์ ๋ฌธ์ํ์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ Microsoft Word์ ๋์ผํ๊ฒ ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํด์ผํ๋ ๋ฒ์ ์ ์ง์ ํ๋ ๊ฒ์ด ์์ต๋๋ค. ํฅ์๋ ํธํ์ฑ์ ์ํด NumPy๋ก ์ ํ ํ ์ฌ๋๋ค์ ์๊ณ ์์ต๋๋ค. Matlab์๋ ์ฅ์ ์ด ์์ง๋ง ํธํ์ฑ์ ๊ทธ ์ค ํ๋๊ฐ ์๋๋๋ค. ์๋ง๋ ์ํฉ์ด ๋ฐ๋ ์์ต๋๊น?
๊ทธ๋ฌ๋ ์์ผ๋ก ํธํ์ฑ์ ๋์์ด ๋ ์์๋ ๋ช ๊ฐ์ง ์์ ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฒซ ๋ฒ์งธ๋ NEP์ ๋ํ ํ์ฌ ๋ ผ์์ ๊ด๋ จ์ด ์์ต๋๋ค. NumPy๊ฐ ๋ ์ฑ์ํด ์ก์ผ๋ฏ๋ก ํธํ์ฑ์ ์ํฅ์ ๋ฏธ์น๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ ๋ ๋ NEP๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํนํ NEP๊ฐ ๋ ๊ณต๊ฐ๋๊ณ ๊ฒ์ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๋์งธ, ๋๋ฌด ๋ง์ ์์ ์ด ์๋๋ผ๋ฉด PyPI์ ์ด์ NumPy ๋ฒ์ ์ฉ ํ ์ ์ฌ๋ ค ๋์ ์ ์์ต๋๋ค. ๊ฐ์ ํ๊ฒฝ์ ์ฌ์ฉ์ ์ฌํ์ฑ์ ํ๋ณดํ๊ธฐ์ํ ๊ฐ์ฅ ์ข์ ํ์ฌ ์์ด๋์ด ์ธ ๊ฒ ๊ฐ์ผ๋ฉฐ ๋ค์ด๋ก๋ ํ ํ ์ ๋ ๋ง์ด ์ ํํ๋ฉด ๋์์ด ๋ ์ ์์ต๋๋ค.
๋์งธ, ๋๋ฌด ๋ง์ ์์ ์ด ์๋๋ผ๋ฉด PyPI์ ์ด์ NumPy ๋ฒ์ ์ฉ ํ ์ ์ฌ๋ ค ๋์ ์ ์์ต๋๋ค.
@ matthew-brett์ ๋ ธ๋ ฅ ๋๋ถ์ ํ์ฌ ์ํ๋ Windows ํ ์ด 1.10 ์ผ๋ก ๋์๊ฐ๊ณ MacOS 1.7์ด ๋๋ฝ ๋ ๊ฒฝ์ฐ ์ ์ธ) Linux ๊ฐ 1.6์ผ๋ก ๋์๊ฐ๋ ๊ฒ ๊ฐ์ต๋๋ค .
MacOS / Linux ์ํฉ์ ๊ฝค ํฉ๋ฆฌ์ ์
๋๋ค. ๋ ๋ง์ Windows ๋ฆด๋ฆฌ์ค๋ฅผ ์ฑ์ธ ์ ์์๊น์? Windows์ OTOH pip install
์ (๋) ์์
์ ์ธ ๋
ธ๋ ฅ ์์ด๋ ์ผํ ์ ์ด ์์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํ ๋ง์ ์ฒญ์ค์ด ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ 2 ๋
์ ๊ฐ์น๊ฐ ์์ผ๋ฉฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฑ์ฅํ ๊ฒ์
๋๋ค.
๋ํ ์ฐ๋ฆฌ๊ฐ ์ค๋๋ ๋ฐํด๋ฅผ ๋ง์ง๋ง์ผ๋ก ์ ๋ก๋ํ์ ๋ ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๋ค์ ์์ ํ๋ฆ์ด ๋ฐํด๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๊นจ๋จ ๋ ธ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์๊ฒ ํ๋ฅผ ๋์ต๋๋ค :-)
๊ทธ ์ด์ผ๊ธฐ๋ฅผ ๋ฃ๊ณ ์ถ์ต๋๋ค.
๋ด๊ฐ์ด ๋ถ๋ถ์ ์ ์๊ณ ์๋ค๋ ๊ฒ์ ์๋์ง๋ง ๊ฐ์ ์ ์๋ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค (๊ทธ๊ฒ ๋ฌด์จ ๋ป์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค!). ์ฌ์ค์ ์ฒ์ฒํ ์งํํด์ผํฉ๋๋ค. ์์์ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๊นจ๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค. ๋ง์ด๋ ๋ฆด๋ฆฌ์ค๋ "๊ฑฐ์ ๋ชจ๋ ์ฌ๋๋ค์ด ์๋ฌด๊ฒ๋ ์์ ์ฐจ๋ฆฌ์ง ์๊ณ ์ ๋ฐ์ดํธํ๊ณ ์ ๋ฐ์ดํธ ํ ์ ์์ด์ผํ๋ค"๋ ์๋ฏธ๋ผ๊ณ ์๊ฐํ๋ฉฐ ์์งํ ๊ทธ๊ฒ ์ฌ์ค์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. (๋ถ๋ช ํ ์ ์ ๋น์ถ์ฒ๊ณผ ๊ฐ์ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ํฅ์ ๋ฏธ์น๋ ์์๊ฐ ์์ง๋ง ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ์ง ์๊ณ ์ค๋ ์ง์๋์์ต๋๋ค)
์์งํ ์ด๋ค ๊ฒ์ด ๋ ์ง ํ์คํ์ง ์์ง๋ง ๋ฉ์ด์ ๋ฒ์ ์ ์ฆ๊ฐ์ํฌ๋งํผ ํฐ ๋ณํ๊ฐ ์์์ ์๋ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค, ์๋ง๋ ๋ฉ์ด์ ๋ฆด๋ฆฌ์ค์ ๊ด๋ จํ์ฌ ์ญ์ฌ์ ์ธ ๋ชจ๋ฉํ ์์ค์ด์์ ์ ์์ต๋๋ค.
์ด์จ๋ ๋๋ ๋ํ (๊ฑฐ์) ๋ชจ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ผ๊ณ ๋งํ๋ ํฌ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ์ฝ๊ฐ์ ๋ณํ๋ก ์ฌ๋๋ค์ ํ๋๊ฒ ํ ์ง๋ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ ์์ง๋ง, ๋๋ ๋ค์ ๊ด๋ฒ์ํ ๋ณํ์ ์ฐธ์ฌํ๊ณ , ๊ทธ๊ฒ์ด ์ณ์ ์ผ์ด๋ผ๊ณ ๋ค์์ ๋ฟ์ด๋ผ๋ ์ด์ ๋ฅผ ์ค๋ช ํ๊ณ ๋งค๋ฒ ์ฐ๋ฆฌ๋ ๊ธฐ๋ค๋ ธ๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฉ๋ ๋๊น์ง ๋ช ๋ ์ด ๊ฑธ๋ฆฝ๋๋ค.
์๋ฅผ ๋ค์ด, ์ปดํ์ผ / C ++์ ๋ํด ๋ง์ด ์์ง ๋ชปํฉ๋๋ค. gcc 4.8 ์ ๋์ ์ง์ฆ์ด ๋์ ์ผ๋ถ C ++ 11 ๊ธฐ๋ฅ ๋๋ฌธ์ ํ๋๊ทธ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ์์ ๋ด๋๋ก ๊ฐ์ํ๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋์ ๊ธฐ๋๋๋ ๊ฒ์ ๋น์ ์ด numpy์ ๋ํด ์ป๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ด๋ฉ์ผ์ ๋งค์ฐ ์ ์ฌํ ๋ฐ์์ ์ ๋ฐํ๋ฏ๋ก ๊ทธ๋ค์ง ๋ค๋ฅธ์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. :).
์ด์จ๋ , ์ฌ๊ธฐ์ ๋๋ฌด ๋ง์ด ๋
ผ์ํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ๋๋ฌด ๋น ๋ฅด๊ฑฐ๋ ์ถฉ๋ถํ ์กฐ์ฌํ์ง ์๋์ง์ ๋ํ ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.ํ์ง๋ง ์ฃผ ๋ฒ์ ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ๋ง์ ๋์์ด ๋ ๊ฒ ๊ฐ์ง๋ ์๋ค๋ ๊ฒ์ ์ธ์ ํด์ผํฉ๋๋ค. ๊ทธ. ๊ฐ์ธ์ ์ผ๋ก ๋๋ 1.13๊ณผ 1.6์ด ์ด๋ค ์๋ฏธ์์ ์ ์ด๋ ํ๋์ ๋ฉ์ด์ ๋ฒ์ ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ๊ทธ ์ฌ์ด์ ๋ด๊ฐ ๊ฐ๋ฆฌํค๊ณ ๋งํ ์์๋ ๋จ์ผ ๋ฆด๋ฆฌ์ค๋ ์์ต๋๋ค. ์ด๊ฒ์ ๋ง์ ์ฌ์ฉ์์๊ฒ ์ฃผ์ ํธํ์ฑ ์ค๋จ์ด์์ต๋๋ค.
๋๋ ์ฝ๋์์ "Lets do this in Numpy 2 ์๋ง๋"๋ผ๋ ์ฃผ์์ ์ฝ์ ๊ธฐ์ต์ด๋ฉ๋๋ค. ์ ํํ ์ด๋ค ๊ฒ์ด ๋ ๊นจ์ง๋ ๊ฒ์ ๋ํ ๋๋ ค์ ๋๋ฌธ์
๋๋ค. ๊ทธ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด numpy๊ฐ ๋ง์ด ๋ฉ์ท ์๊น ๋ด ๋๋ ค์์. ์์งํ ์ ๋ ์ผ๋ถ๊ฐ ๋ ๊ฒ์ ์๋์ค๋ฝ๊ฒ ์๊ฐํฉ๋๋ค. ๋์๊ฒ ์ ์ด๋ ๋ค์ ๋ ํ๋์ ์ธ ๋จ๊ณ์ฒ๋ผ ๋ณด์๊ณ , ์ฐ๋ฆฌ๊ฐ ๋ ๋ณด์์ ์ด์๋ค๋ฉด ํ๋ค์์ ๊ฒ์
๋๋ค. (๋ด๊ฐ ์ค๊ธฐ ์ ์ ๋ฌด์จ ์ผ์ด ์ผ์ด ๋ฌ๋์ง ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ํธํฅ๋์ด์์ ๊ฒ์
๋๋ค. :)).
์ฃ์กํฉ๋๋ค. ์ด๊ฑด ๋ง์ด ์ ๋ผ์ (๋ฐฉ๊ธ ํฌ๋ฆฌ์ค๋ง์ค ํํฐ๋ฅผ ํ์ด์) semver ์ ์์ ๋ง์ด๋์ง๋ง ์ค์ ํด๊ฒฐ์ฑ ์ฒ๋ผ ๋๊ปด์ง์ง ์๋๋ค๋ ๊ฒ์ ์ธ์ ํด์ผํฉ๋๋ค. ๋๋ ๋ ์ ๊ทน์ ์ผ๋ก ๋ฉ์ด์ ๋ฒ์ ์ ์ฌ๋ฆฌ๋ ๊ฒ์ ๋์ ํ ์ ์์ง๋ง, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฉ์ด์ ๋ฆด๋ฆฌ์ค๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋์ํ์ง ์์ต๋๋ค. ๋๋ ๋ํ ์ด๋ค ๊ฒฝ์ฐ์๋ ์ข ๋ ๋ณด์์ ์ด ๋๋ ค๊ณ ๋ ธ๋ ฅํ๋ ๊ฒ์ ๋์ ํ ์ ์์ง๋ง, ์์งํ ๊ทธ๊ฒ ๋ญ์ง ํ์คํ์ง ์์ต๋๋ค (์ด๋๊ฐ์์ ํธํ์ฑ์ ๊นจ๋จ๋ฆด ์ ์๋์ง ์๋ฌด๋ ํ์คํ์ง ์๊ธฐ ๋๋ฌธ์ ๋งค๋ฌ๋ฆฐ PR์ ์๋ฅผ ์ธ์ด๋ณด์ธ์.). ์ข์ ๋ถ๋ถ์ ๋๋ค)?
๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๋ถํ์ ์ฝ๋๋ผ๋ ์ฝ๊ฐ์ ๋์ฒญ๊ณผ ์ฃผ์ฅ์ ๊ฐ์ ธ ์ค๋ฉด ํฉ๋ฆฌ์ ์ผ๋ก ๊ฐ๋ฅํ๋ค๋ฉด ๋ชจ๋ ๋ณ๊ฒฝ์ ์ทจ์ํ์ง ์๊ฑฐ๋ ์ ์ด๋ 1 ๋ ์ด์ ์ง์ฐ์ํค์ง ์๋ ๊ฒ๊ณผ๋ ๋ค๋ฆ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณด์์ ๊ฑฐ๋ฒ๋์ค ๋ชจ๋ธ์ ์ ํํ ์ด์ ์ ์ผ๋ถ๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋คโฆ.
๊ทธ๋์ ์ค๋ซ๋์ ์น์์ด๋ฅผ ํ ํ :
๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ข์ ๊ฐ์ ์๊ณ ์์ง๋ง ์ฐ๋ฆฌ์๊ฒ ์ง์ ํ ํด๊ฒฐ์ฑ ์ด ์์ต๋๊น? ์ฐ๋ฆฌ๊ฐ ์ฃผ ๋ฒ์ ์ ๊ณต๊ฒฉ์ ์ผ๋ก ์ฌ๋ฆฌ๋ฉด ๋ ์ ์ ์ด๋ฉ์ผ์๋ฐ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
@xoviat ์ด์ ๋ฒ์ ์ ํ ์ ๋ก๋์ ๋ํ ๋ถ๋ง ์ฌํญ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ์์ฒญํ๊ณ ์์ต๋๊น? ๊ทธ๊ฒ์ # 7570์ด์์ต๋๋ค.
๋ด๊ฐ ๊ฐ์ฅ ์ข์ํ๋ semver ์ ์ (์๋ ๊ฒ์๋ฌผ์ ๋ํ ๋งํฌ๋ฅผ ๋ ์ด์ ์ฐพ์ ์ ์์) :
์ฝ๊ฐ ๊ฑด๋ฐฉ์งํ์ง๋ง ์์ ํ์ ๋ํ ํํธ๋ _any_ ํ๋์ ๋ณํ๊ฐ ์ผ๋ถ ์ฌ์ฉ์๋ฅผ ์ด๋๊ฐ์ ๋ง๊ฐ๋จ๋ฆด ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ API ํ๋ฉด์ด ํฐ ํ๋ก์ ํธ์์ ํนํ ๊ทธ๋ ์ต๋๋ค.
์ ์๊ฐ์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ํน์ ์ค์น์ ๋ณ๊ฒฝ ์๋์ ๋ํ ์ ์ด๊ถ์ ๊ฐ๋ฐ์์์ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ์ฌ๋์ผ๋ก ์ ํํ๋ ๊ฒ์ ๋๋ค.
์ด ๋ํ์์ ๋น ์ง ์ ์ ์ด์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํญ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค (์์ค์ pypi์์). ๋ฐ๋ผ์ ์ด์ ๋ฒ์ ์ python / numpy / matplotlib๊ฐ ํ์ํ ์ฝ๋๊ฐ ์์ผ๋ฉด ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ์ญ์์ค. ์ฌ์ฉ์ ๊ณต๊ฐ ํ๊ฒฝ์ ์ด๊ฒ์ ๊ด๋ฆฌํ๊ธฐ์ ๋๋ฌด ๋์ฐํ์ง ์๊ฒ ๋ง๋ญ๋๋ค.
์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ์ ์งํ๋ ๋ฐ ๋๋ ๋น์ฉ์ ์ง๋ถํด์ผํฉ๋๋ค. ํ๋ฏธ๊ฒฝ ๋น์ ๋ฅผ ๊ณ์ํ๋ ค๋ฉด ํ๋ฏธ๊ฒฝ์ ์ ๊ธฐ์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌํด์ผํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค. ์ํํธ์จ์ด๋ ๋ค๋ฅด์ง ์์ต๋๋ค.
@njsmith ๊ฝค ์ฌ๋ฐ ๋ค์. IMO # 7570์ ์ ํจํ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
NumPy๋ manylinux wheel ์ฌ์์ ์ค์ํ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐํด
์๊ฐ์ด ๋ฌด๋ฃ๋ผ๋ ๊ฐ์ ํ์ ์ด์ ๋ฒ์ ์ฉ์ผ๋ก ์
๋ก๋ํด์ผํฉ๋๋ค. ์ฃผ์ด์ง
์๊ฐ์ ์์ ๋กญ์ง ์์ต๋๋ค. ์ฌ๋๋ค์ด ๋ฐํด๋ฅผ ๋ง๋ค ์ ์๋ค๋ ๊ฒ์
์ํ๋ ๊ฒฝ์ฐ ํน์ ๋ฒ์ ์ NumPy๋ฅผ ์ํด; PR ์ ์ถ
numpy-wheels ์ ์ฅ์. ์๋.
@xoviat ๋ด ๋ง์, ๊ทธ๋ค์ ์์คํ ์ด ๊ณ ์ฅ
@njsmith ํ๋ฏธ๊ฒฝ ๋น์ ์์ ๊ทํ์ ์ญํ ์ ๋ด ๋๋ฃ์ ์คํ์ค ์ฑ ์์์๊ฒ ์ ๊ทผํ์ฌ ๋ชจ๋ ์คํ์ค ํ๋ฏธ๊ฒฝ์ ๊ทธ์ ์ต์ ๋ชจ๋ธ๋ก ๊ต์ฒดํ๊ณ ์์ ๊ธ์จ์ "1mm ์ด์์ ์ํ๊ณผ ํธํ๋์ง ์์"์ด๋ผ๋ ๋ฌธ์ฅ์ ์จ๊ธฐ๋ ์ ์์ํ๋ ํ๋ฏธ๊ฒฝ ํ๋งค์์ ์ญํ ์ ๋๋ค. ๊ณ์ฝ์. ์ด๋ก ์ธํด ๋ฉ ๋๋ ํฐ๋ ์ด๋ฌํ ์ธ๋ถ ์ฌํญ์ ์ดํดํ๋ ์ฌ๋๋ค๊ณผ ๋ ผ์ํด์ผ ํ ๊ธฐ์ ์ ์์ ์ด ์์์ ์ดํดํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
@rgommers ๋๋ NumPy๋ฅผ ์ ์งํ๋ ๊ฒ์ด
๋ค๋ฅธ ํํธ์ผ๋ก, ๋๋ ๋งค์ฐ ํน๋ณํ ์๊ฒฝ ์ธํธ๋ฅผ ๊ฐ์ง๊ณ ์์์ ํ์คํ ์ธ์ ํ์ง๋ง,์ด ํ ๋ก ์์ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์๊ฒ ํด๋น๋ฉ๋๋ค. ์ ์๊ฒฝ์ ์ ์์ ํ๊ฒฝ ์ธ "์ ํต์ ์ธ ๊ณผํ ์ปดํจํ "์ ์๊ฒฝ์ ๋๋ค. ๊ธฐ์ค (๊ธฐ๋ณธ ๊ธฐ๋)์ ์ ๋ฐ์ดํธ๊ฐ ์๋์ ์ผ๋ก ์ด๋ค ๊ฒ๋ ์์์ํค์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ํ์คํ ๋ ์ธ์ด (C, Fortran)์ ์ ์ฑ ์ด์ง๋ง ์ธํ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (BLAS, LAPACK, MPI, ...)์ ์ ์ฑ ์ด๊ธฐ๋ํฉ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ํ์ ์ ๋ฐ์ํฉ๋๋ค (์ : ATLAS). ๊ทธ๊ฒ์ด ๋ณด์์ ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ฉด, ๋ด ์ธ๊ณ์์ ๋ณด์์ ์๋ฏธ๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํ๊ฒ ์ต๋๋ค. ๋๋ถ๋ถ์ ๋ฒ๊ทธ๊ฐ ์๋ ค์ ธ ์๋์ง ํ์ธํ๊ธฐ ์ํด ์ ์ด๋ 2 ๋ ์ด๋์ง ์์ ๋ฒ์ ์ ์ค์นํ์ง ๋ง์ญ์์ค. ์ด๋ ์๊ฐ์ด ๋งค์ฐ ๋น์ธ๊ณ ๊ทธ ์ด์ ๋๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฑฐ์ ํ์ธํ ์์๋ ์ํผ ์ปดํจํฐ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ์ฑ ์ ๋๋ค.
NumPy๊ฐ ๋ด ์ธ๊ณ์ ๊ธฐ๋ณธ ๊ธฐ๋์น๋ฅผ ์ฑํํด์ผํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ ๋จ์ง ๊ทธ๊ฒ์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ถ๋ช ํ ๋ํ๋ด์ผํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋๋ค.
@seberg "๊ฑฐ์ ์๋ฌด๋ ์ฝ๋๊ฐ ๊นจ์ง์ง ์๋๋ค"๋ ์ด๋ก ์ ๋ถ ๋ฒ์ ์ ๊ฒฝ์ฐ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค. ๊ทธ๋ฌ๋ ์ํํธ์จ์ด๊ฐ ์ธํ๋ผ ์ํ๋ฅผ ํ๋ํ๋ฉด (๋ด ์๊ฐ์๋ NumPy๊ฐ ํด๋น ์์ค์ ์์) ์ํฅ์๋ฐ์ ์์๋ ๊ฐ๋ฐ์์ ์ฌ์ฉ์ ์๋ฅผ ์ถ์ ํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ธฐ์ค์ ํญ์ "๋ด๊ฐ ์๊ฐํ ์์๋ ์ฌ๋์ ๊ฑฐ์ ์ํฅ์๋ฐ์ง ์๋๋ค"๊ฐ๋๋ฉฐ ์ด๋ ์ข์ ๊ธฐ์ค์ด ์๋๋๋ค.
@tacaswell ์ ๋ "
์, ์์งํ "์ฃผ์ ์ฌ๊ฐ๋ฐ"์์ด๋์ด๋ ํจ์ฌ ๋ ๋ง์ ๊ฐ๋ฐ ๋ฅ๋ ฅ์ ํ์๋กํ๊ณ ์์ ํ ๋ค๋ฅธ ์ ํ์ ํผ๋์ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฌ ๊ฑฐ์ ํฌ๊ธฐ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค (์ฒ์ ๋ช ๋ ๋์ py2 ๋ฐ py3 ์ฐธ์กฐ)?
๋์, numpy๋ ์ธํ๋ผ์ด์ง๋ง ๋ ๋ง์ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๊นจ๋ ๊ฒ์ด ๊ด์ฐฎ์ ๊ฒ์ฒ๋ผ ํ๋ํ๋ ํฌ์ด ์๋๋๋ค. "์๋ฌด๋ ์ฝ๋๊ฐ ๊นจ์ง์ง ์๋"๋ฆด๋ฆฌ์ค ( "๋ช ๋ฒ์ ๋ฆด๋ฆฌ์ค์ ๋ํ ๊ฒฝ๊ณ ๋ฅผ ๋ณด์ง ์์ ๊ฒฝ์ฐ"์์ธ)๋ฅผ ์ํํ๊ธฐ ์ํด ์ต์ ์ ๋คํ๋ ์์ ์ ํฌ๊ธฐํ๊ณ ์ค์ ๋ก ๊ฒฐ์ ์ ๋์์ด๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ฐ์ดํธ.
๊ทธ๋์ ๋๋๋ก ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ด ์ฌ์ค์ด ์๋ ์๋ ์๋ค๋ ๊ฒ์ ์ธ์ ํด์ผ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฐ๋ฆฌ๊ฐ ๋ ์ด์ ๊นจ์ง์ง ์๋๋ก ํด๊ฒฐ์ฑ ์ ์ป๋ ๊ฒ์ ํจ์ฌ ์ ํธํฉ๋๋ค. ๋ฌผ๋ก ๋น์ ์ ํด๊ฒฐ์ฑ ์ ์ ์ํ์ง๋ง (๋งค์ฐ ๋ณด์์ ์ด๋ฉฐ ๋๋์ ์ธ ์ ๋น๋ฅผ ํตํด numpy 2๋ฅผ ์์ํฉ๋๋ค),์ด ํด๊ฒฐ์ฑ ์ด ํฐ ์๊ธ ์์ด๋ ์คํ ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์ธ์ ํ๋ฉด, ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๋ฌด์์ ํ ์ ์์ต๋๊น?
๋๋ ๋ช ํํ๊ฒ ๋ง ํด์ฃผ์ธ์ : ํ์ํ ๋ ๋ ๋ณด์์ ์ธ ์ฌ๋์ด๋๊ธฐ ์ํด ์ฃผ์ ํ ์์๋ numpy dev๋ฅผ ํ๋ก์ฐ ํ ์์๋ ์ฌ๋์ ์๊ณ ์๋ค๋ฉด ์ ์ด๋ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฏธ๋์ ๊ฐ๋ฐ์ ์ํด numpy์ ๋ ์ด๋์ด ๋ชจ์๋ฆฌ๋ฅผ ์ฒ์ฒํ ์ ๊ฑฐํ๋ ์ฐ๋ฆฌ์ ์งํ์ ํฌ๊ธฐํ๋ ๊ฒ์ ๊ฐ์ฌํ์ง ์์ต๋๋ค. ๊ธฐ๊ปํด์ผ ๋ช ๋ ์์ ์ฃฝ์ NumPy์ ๊ต์ฒด๋ก ๋๋ ๊ฒ์ ๋๋ค. ์ต์ ์ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๋ ์์ผ๋ก ๋์๊ฐ ์์๊ณ ์๋ง๋ "๋์ฒด"๊ฐ ๋์๋๊ฒ ๋ ์ ์๋ค๋ ์ ์ ์ค๋งํ๊ณ ๋ค์ด ์คํธ๋ฆผ์ ์ข์ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๊ฑฐ์ ์ฑ์ํ์ง ์์ผ๋ฉด ์ํฉ์ด ์ ํ๋ฉ๋๋ค.
๋ค๋ฅธ ๋ค์ ์คํ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ํด @seberg ์ ๋์ํด์ผํฉ๋๋ค. ๊ทธ๋งํผ
์ด ์์ด๋์ด์ ์ ์ฒด์ ์ธ ๊ฐ์ ์ NumPy ํ๋ก์ ํธ๊ฐ
๋ชจ๋๋ฅผ ์ํด ์ผํ๋ ๋์๊ด์ ์ ์งํ๊ธฐ์ํ ์ฌ๋ฅ๊ณผ ์์.
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค. ๊ฐ๋ฐ์๋ ์๋ฒฝํ์ง ์์ผ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก
์ฒ์์ผ๋ก ์๋ชป ์ดํดํ์ญ์์ค. ์๋ ์ซ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ฌ๋๋ค
์ฌ์ฉ๋๋ ๋ชจ๋ ์๋๋ฆฌ์ค๋ฅผ ์์ธกํ ์ ์์๊ณ
PyPy์ ๊ฐ์ ๋์ฒด ๊ตฌํ์ ๋ฑ์ฅ์ ์์ธกํ ์ ์์์ต๋๋ค.
API ์์ ์ฑ์ด ๋งค์ฐ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๋ํ NumPy๊ฐ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค
์ผ๋ฐ์ ์ผ๋ก ์ณ์์ต๋๋ค. ๋ฌธ์ ์ ์ฌ์ค์ NumPy๊ฐ ์ด๋ฏธ
์ถ๋ก ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
์ฑ๋ฅ์ด ์ค์ ํจ),ํ์ง๋ง ๋ค๋ฅธ ๋ค์ ์คํ์ด์ค๋ฅผ ๋ง๋ค๋ฉด
์ฝ๋ ๋ณ๊ฒฝ์ ๋ชจ๋ ์๋ฏธ๋ฅผ ์ ์งํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
๋์ ๋จธ๋ฆฌ. NumPy๊ฐ ๊ทธ๋ ๊ฒํ๋ค๋ฉด
๊ฐ๋ฐ์๊ฐ ์ดํดํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๋ ๋ง์ ๋ฒ๊ทธ๊ฐ
ํ ์ธํฐํ์ด์ค์์ ๋ค๋ฅธ ์ธํฐํ์ด์ค๋ก ์ฝ๋ ๋ณ๊ฒฝ์ ๊ฒฐ๊ณผ.
์์ฝํ๋ฉด ์ฌ๋๋ค์ ์ข์ ๊ฐ์ ์์ ํ ์ดํดํฉ๋๋ค. ํ์ง๋ง @njsmith๋ก
๋ชจ๋ ์ฌ์ฉ์๋ฅผ ๋ง์กฑ์ํฌ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ
์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ์ฌ์ฉ์๋ฅผ ๋ง์กฑ์ํฌ ์์๋ ์ ์ผํ ์๋ฃจ์
์ด ์์ต๋๋ค. ๊ณผ
ํ์ค์ NumPy๊ฐ ์์์ ์ฌ์ฉ์ (
๊ฒฝ๋ฉธ์ ์ธ ๋ฐฉ์์ผ๋ก) ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๋ณด๋ค API ์์ ์ฑ์ ์๊ตฌํ์ต๋๋ค.
NUMFOCUS ์๊ธ์ ๋์ด ๋ฌด์์ธ์ง ๋ช
ํํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ณ ๊ฐ ๋ ์ ์์ต๋๋ค.
์ฌ์ฉ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๋ ์ด๋์ ์์ต๋๊น? ์๋ง๋ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์
MMTK๋ ๋ ์ด์ NumPy์ ์์กด ํ ์ ์์ต๋๋ค.
๋ ์ด์ ์ซ์์ ์์กดํ์ง ์์ต๋๋ค.
ํ์ฌ ์ฝ๋๋ฅผ ์ต์ ์ ์ง ๊ด๋ฆฌ ๋ชจ๋๋ก ์ค์ ํ๊ณ ๋ค๋ฅธ ๋ค์ ์คํ์ด์ค์์ ๋๋์ ์ธ ์ฌ ์ค๊ณ๋ฅผ ์์ํ์ฌ ๋ฒํผ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด์ ๊ณผ ์๊ฐ ์ํธ ์ด์ฉ์ฑ๊ณผ ๋ฌด๊ธฐํ ๊ณต์กดํ๋๋กํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์, ์ ๋ ์ด๊ฒ์ด ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ฌ์ํ ๋ ธ๋ ฅ์ด ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ถ์ ๋ ๊ธฐ์ ๋ถ์ฑ ๋๋ฏธ์์ ๋ฒ์ด๋ ์์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฌ ์ค๊ณ์ ์ฃผ์ ๋ชฉํ๋ ์ ์ง ๊ด๋ฆฌ์ ๋๋ค.
๋๋ ์ค์ ๋ก ๋น์ ๊ณผ ๋์ํ์ง๋ง ์๊ธ / ๋น์ ์ ํฐ ์ฃผ์ ์์ด๋ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์คํ ๊ฐ๋ฅํ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. NumPy๋ ๊ฑฐ๋ํ ์์ ์ ๊ตฌ์ฑํฉ๋๋ค. ์๋ง๋ @teoliphant ์ @skrah ๋ ๋ผ ๊ฒ์ด์ง๋ง ๊ทธ๊ฒ์ ํ๋ ์ ํฌ๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ค๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ NumPy๋ฅผ ๊ฐ์ํ ๋, ์ฐ๋ฆฌ๊ฐ ํฉ๋ฆฌ์ ์ผ๋ก ํ ์์๋ ๊ฒ๋ง ํผ ์ํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
"์"๋ผ๊ณ ๋ตํ ์ฌ๋๋ค์๊ฒ ๋ ๋ฒ์งธ ์ง๋ฌธ์ ๋๋ค. ์ด๋ ๊ฒ ํ ์ ์ด์๋ numpy ์ด์ธ์ ์ํํธ์จ์ด ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๊น?
django๋ ์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ ๋ค๋ฅธ ์ฃผ๋ชฉํ ๋งํ ์ํํธ์จ์ด์ ๋๋ค. ๊ทธ๋ค์ ์๋นํ ์ค๋จ์ ๋ํ ๋ด๊ธฐ ์ํด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ์ฉํ์ง๋ง ์ฅ๊ธฐ๊ฐ์ ๊ฒฝ๊ณ ํ์ .x ๋ณ๊ฒฝ ์ฌํญ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ต๋๋ค. NumPy์ ๋น์ทํฉ๋๋ค.
๋๋ ์ค์ ๋ก ๋น์ ๊ณผ ๋์ํฉ๋๋ค.
@shoyer ๊ด์ฌ์ด
์ด๊ฒ์ด ํ์คํ ๋ ์ธ์ด (C, Fortran)์ ์ ์ฑ ์ด์ง๋ง ์ธํ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (BLAS, LAPACK, MPI, ...)์ ์ ์ฑ ์ด๊ธฐ๋ํฉ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ํ์ ์ ๋ฐ์ํฉ๋๋ค (์ : ATLAS).
LAPACK / ATLAS / OpenBLAS์ ์๋์ ๋ฐ๋ฅธ ํ์ ์ NumPy๊ฐ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋นจ๋ฆฌ ๋ฌด์๋ฏธ ํด์ง๋ ๋น๊ฒฐ์ ๋๋ค.
์ด ๋ฒ์ ๋ณ๊ฒฝ์ด ์ผ์ด๋์ง ์์ ๊ฒ์ด๋ผ๋ ๋ชจ๋ ์๋ต์ ํตํด ์ฌ๋ฌ๋ถ์๊ฒ ๋ถ๋ช ํด์ผํฉ๋๋ค. ๊ทธ๊ฒ์ ~ 7 ๋ช ์ ํ์ฑ ์ฝ์ด ๊ฐ๋ฐ์์ ์ฃผ์ ๋ค์ด ์คํธ๋ฆผ ํ๋ก์ ํธ์ ์ผ๋ถ ๊ฐ๋ฐ์ ๊ฐ์ ํฉ์์ ๋๋ค. ์ ๋์ ์ธ ์์ ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ ๋ช ๋ ๋์ ์์คํ ์ ๊ณ ์ ๋ฒ์ ์ ๊ณ ์ ํ๊ณ ์์คํ ๊ด๋ฆฌ์์๊ฒ ์ด์ ๋ํด ๊ต์กํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
์ธ์ ๊ฐ๋ ์๋ก์ด ์ฝ๋๋ฒ ์ด์ค๋ก ๋งค์ฐ ๊ณ ํต์ค๋ฌ์ด py3k์ ๊ฐ์ ์ ํ์ด๋์ง ์์๊น์?
๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ Python 3์ด (Python ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ) all / nothing ์ค์์น ์ธ ๋ฐ๋ฉด, ๋ค๋ฅธ ndarray ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํผํฉ / ๋งค์นํ๋ ๊ฒ์ ์ฌ์ฐ๊ฑฐ๋ ์ ์ด๋ ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฒํผ ์ธํฐํ์ด์ค๋ ๋ณต์ฌ๋ณธ์์ด ๋ฐ์ดํฐ๋ฅผ ์๋ค๋ก ์ ์กํ ์ ์์์ ์๋ฏธํฉ๋๋ค. np.asarray()
๋ฅผ ์ฌ์ฉํ์ฌ ํจ์์ ์
๋ ฅ์ ๊ฐ์ ํ๋ฉด ๋ค๋ฅธ ์ ํ์ ๋ฐฐ์ด์ ๋ฐํํ๊ธฐ ์ํด ์ค์์น๋ก ์์
ํ๋ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ง ๋ชปํ ์๋ ์์ต๋๋ค.
์ด๊ฒ์ ์ซ์ / numarray / numpy์ ๋ฐ๋ณต๋๋ ๋ถ๋ถ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค.
๋ณ๋ก ์ฆ๊ฒ์ง ์์ ๊ฒฝํ์ด์์ต๋๋ค (๋ฒํผ ์ธํฐํ์ด์ค๋
ํ์ง๋ง ๊ทธ๋ฌํ ์ ํ์๋ ์ฌ์ ํ ์๋ ์ฝ๋๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ด ์ฌ์ํ ๊ฒ์ ์๋๋๋ค.) ๊ทธ๊ฒ์ ๋ํ ๋ถ๊ฐ๋ฅํฉ๋๋ค
Scipy์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ "์ ์ด๋ ์ด"์์ด "์
๊ทธ๋ ์ด๋"
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๊นจ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋
๋ค๋ฅธ ๋์๊ด์ด ์ ์ฌํ ๊ฒฐ์ ์ ๋ด ๋ฆฌ๋๋ก ๊ฐ์ ํฉ๋๋ค.
์ค๋๋ ๋ค์ ์คํ์ด์ค๋ฅผ ๋ฒ๋ฆฌ์ญ์์ค.
๋ชจ๋ ์ฌ๋์ด np.asarray
์
๋ ฅ์ ๊ฐ์ํ๋ค๋ฉด np.matrix
๋ ๋ฌธ์ ๊ฐ๋์ง ์์ต๋๋ค :-).
๋ค๋ฅธ ๋ฐฐ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ duck ์ ํ์ ๋์ ํ ์ ์๊ณ ๋ฒํผ ํ๋กํ ์ฝ์ด ํํํ ์์๋ dtypes๋ก ์ ํํ๋ฉด ์๋ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ ์์ฑ์ ์์ ์ด ๋ฐฐ์ด ๊ฐ์ฒด์์ ํธํ๋์ง ์๋ ์ธํฐํ์ด์ค ๋ณ๊ฒฝ์ ์ํํ๊ณ ์๋ก์ด dtype์ ๊ตฌํํ๋ ๊ฒ์ด๋ผ๋ฉด ... ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ตฌ์ฒด์ ์ธ ์ : ์ด๋ฌํ ์ข
๋ฅ์ ์ฌ ์์ฑ์์ ์์ ํด์ผ ํ ํ ๊ฐ์ง ๋ถ๋ช
ํ ๊ฒ์ ๊ณ ์ฐจ์ ์
๋ ฅ์์ ndarray.dot
์ ๋์์
๋๋ค. ๊ทธ๋ฌ๋ def f(a, b): a.dot(b)
ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๋ฉด ์ ์ฌ์ ์ผ๋ก ์์ ๋ ์ ์์ต๋๋ค. ๊ทธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ numpy์ธ์ง ์ฌ๋ถ๋ ์ค์ ๋ก ์ค์ํ์ง ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํ ๋ฒ์ ๋น ๋ฑ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ๋ค์ ์์ฑํ๊ณ , ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒํ๋ ๋์ ๊ฐ๋ฐ์์ ๊ด์ฌ์ ์ ์งํ๋ ์ผ๋ฐ์ ์ธ ๋ถ๊ฐ๋ฅ์ฑ์ ๋ค์ด๊ฐ๊ธฐ ์ ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ฌ์ฉ์๋ก๋ถํฐ์ ์ฆ๋ถ ํผ๋๋ฐฑ. ๋๋ dynd๊ฐ ์ฌ๊ธฐ์ ์ ์ตํ ์๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@rgommers ๋ด๊ฐ ์ด ๊ธ์ ๋ค์ ์ฝ์ผ์ญ์์ค. ๋ฐ๋ณต ํ์ง ์์ต๋๋ค . NumPy๊ฐ LAPACK์ ์๋๋ฅผ ์ฑํํด์ผํ๋ค๊ณ ์ ์ํ์ง ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๊ทธ๋ ๊ฒ ๊ธฐ๋ํ์ง ์๋ ์ฌ๋๋ค (์ฆ, ๋ด ํ๊ฒฝ์์๋ ์ฌ๋๋ค์ 80 %)์ ๊ฐ์ง ์ฌ๋๋ค์๊ฒ ๋ถ๋ช ํ๊ฒ ์ ํธ๋ฅผ ๋ณด๋ผ ๊ฒ์ ์ ์ํฉ๋๋ค.
@njsmith ๋ด๊ฐ๋ณด๊ธฐ์ ์ฌ ์ค๊ณ์ ์ฃผ์ ์ธก๋ฉด์ OO๋ฅผ ํฌ๊ธฐํ๋ ๊ฒ์
๋๋ค. ๋จ์ผ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํด ์๋ํ๋ ์๋ง์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๊ตฌ์กฐํํ๋ ๊ฒ์ ์ข์ ์ ๊ทผ ๋ฐฉ์์ด ์๋๋๋ค. np.dot(a, b)
์ฐ๋ฉด ์ค๋ช
ํ๋ ๋ฌธ์ ๊ฐ ์ฆ์ ์ฌ๋ผ์ง๋๋ค. ์ํ๋๋งํผ์ namespace.dot
๊ตฌํ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ํธ ์ด์ฉ ํ ์ ์์ต๋๋ค. ๋ฉ์๋์ ๋ํ ๋จ์ผ ๋ค์ ์คํ์ด์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ OO์ด๊ณ ๊ทธ๊ฒ ๋ฌธ์ ์
๋๋ค.
์, ๊ทธ๊ฒ์ ํ์ด์ฌ ์ต๊ด์ ํฐ ํด์์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์, ๊ทธ ์์ ์ฐ์ฐ์๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ๊น๋ค๋ก์ธ ๊ฒ์ ๋๋ค. ํ์ง๋ง ํ ์ ์๋ค๊ณ ์๊ฐํ๊ณ ๋ ธ๋ ฅํ ๋งํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ๋ฌผ๊ฑด์ ๊นจ๋ ๋ฐ ์ฐฌ์ฑ ํ ์ ์์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ;-)
@rgommers ๋ด๊ฐ ์ด ๊ธ์ ๋ค์ ์ฝ์ผ์ญ์์ค. ๋ฐ๋ณตํ์ง ๋ง๊ณ NumPy๊ฐ LAPACK์ ์๋๋ฅผ ์ฑํํด์ผํ๋ค๊ณ ์ ์ํ์ง ์์ต๋๋ค.
๋๋ ์ดํด. ๋ด ๋ต์ฅ์ ๋ ๋จ๋ฝ์ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์์ต๋๋ค. ํผ๋ ์ค๋ฌ์ฐ๋ฉด ์ฃ์กํฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๊ทธ๋ ๊ฒ ๊ธฐ๋ํ์ง ์๋ ์ฌ๋๋ค (์ฆ, ๋ด ํ๊ฒฝ์์๋ ์ฌ๋๋ค์ 80 %)์ ๊ฐ์ง ์ฌ๋๋ค์๊ฒ ๋ถ๋ช ํ๊ฒ ์ ํธ๋ฅผ ๋ณด๋ผ ๊ฒ์ ์ ์ํฉ๋๋ค.
๊ทธ๊ฒ์ด ๋ด๊ฐ ๋งํ ๊ฒ์ ๋๋ค. ๋น์ ์ ์ ์์ด ๊ฑฐ์ ๋ ๊ฒ์ด๋ผ๋ ํฉ์๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. 80 %์ ๊ณ ์ ๋ ๋ฒ์ ์ ์์ฒญํ๊ณ ๊ทธ ์ด์ ๋ฅผ ์ค๋ช ํ๊ธฐ ๋งํ๋ฉด๋ฉ๋๋ค.
@khinsen OK, ๊ทธ๋ผ ๋ด ์๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด ํ์คํ ๋ง๋ค ์์๋ ์ธ๋ฑ์ฑ์ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ ์ธ ์ฒํ์ญ์์ค. (๋ฉ์ง ์ธ๋ฑ์ฑ์๋ ๋งค์ฐ ํผ๋์ค๋ฌ์ด ์ฝ๋ ์ผ์ด์ค๊ฐ ์์ต๋๋ค.)
@njsmith ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ธ๋ฑ์ฑ์ Python์ ๋ฉ์๋ ํธ์ถ์ด๋ฏ๋ก ๋ค์ OO์ ๋๋ค.
๋ถ์์ ์ธ๋ฑ์ฑ์ NumPy์์ ๊ฐ์ฅ ํฐ ๋์์ธ ์ค์์
๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ๋ถ๋ช
ํ ์ฌ์์ ๊ฐ์ง๊ณ ์์ง ์์๊ธฐ ๋๋ฌธ์
๋๋ค. ์ ์ ์ธ์์ ๊ฒฝ์ฐ np.take
np.repeat
, ๋ถ์ธ ์ธ์์ ๊ฒฝ์ฐ
์ค์ ๋ก์ด ์ค๋ ๋์ ์ฃผ์ ์ ๊ด๋ จ์ด ์์ต๋๋ค. ์๋ํ๋ฉด ์ด๊ฒ์ ๊ฐ๋ฐ์ด ๋๋ฌด ๋นจ๋ฆฌ ์งํ๋ ๋ ๋ฐ์ํ๋ ๋์์ธ ์ค์์ ์ข ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ ์ฌ๋๋ค์๊ฒ ๊ทธ๊ฒ์ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ์ ์ ์ผ๋ก SciPy ์ฝ์ค์์ ๋ฉ์ง ์ธ๋ฑ์ฑ์ ๋ํด ๋
ผ์ํฉ๋๋ค. np.take
๋ฐ np.repeat
๊ฐ ์๋ฒฝํ๊ฒ ์ ์๋ํ๊ณ ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ์๋๊ฐ ์๋ ํจ์๋ก ์ฌ์ฉํ๋ฉด OO ๋ฌธ์ ๋ ์์ต๋๋ค. ์ด๋ฆ์ด ๋ถ์ธ๊ณผ ํจ๊ป ์ฌ์ฉ๋ ๋ ์๋๋ฅผ ์์ํ์ง ์๊ธฐ ๋๋ฌธ์ np.repeat
์ ์ซ์ดํ๋ ์ฌ๋๋ค์ ์ํด ๋ณ์นญ์ ๋์
ํ์ญ์์ค : select = np.repeat
. ๋ค์ ํ ๋ฒ OO๊ฐ ๋ถํ์ํ๊ฒ ์ด๋ ต๊ฒ ๋ง๋ค์์ต๋๋ค.
์ผ๋ฐ ์ธ๋ฑ์ฑ์ ์ด๋ฌํ ๋ฌธ์ ์ ์ํฅ์๋ฐ์ง ์์ต๋๋ค. ๊ฐ๋ฅํ ๋ชจ๋ ์ํฉ์์ ๊ฑฐ์ ๋ชจ๋ ์ฌ๋๋ค์ด ๊ธฐ๋ํ๋ ์ผ์ ์ํํ๋ฏ๋ก ๋ฉ์๋๋ก ๊ตฌํํ ์ ์์ต๋๋ค.
๋ด ๊ด์ ์์ ๋ณผ ๋ ๊น๋ค๋ก์ด ๋ฌธ์ ๋ ์ฐ์ ์
๋๋ค. np.add(a, b)
๋์ ๋ฐฐ์ด ์ถ๊ฐ๋ฅผ ์ํด a+b
๋ฅผ ์์ฑํ๊ณ ์ถ์ง๋ง, ํนํ ๊ฒฐ๊ณผ dtype ์ธก๋ฉด์์ ์ ํํ a+b
์ด ์ํํด์ผํ๋ ์์
์ ๋ํ ๋ณดํธ์ ์ธ ํฉ์๊ฐ ์์ต๋๋ค. . ๊ทธ๊ฒ์ Numeric / numarray ๋ถํ ์ ํต์ฌ ๋ฌธ์ ์ค ํ๋์์ผ๋ฉฐ, NumPy์ ์๋ก์ด ์ค์นผ๋ผ ์ ํ์ด ๋์
๋์์ผ๋ฉฐ, ์ด๋ก ์ธํด ๋ถ์พํ ๋๋ผ์๋ ์๋นํ ๋ง์ด ๋ฐ์ํฉ๋๋ค. ๋๋์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋ ์ ์๋ค๊ณ ๋ฏฟ์ง๋ง GitHub ๋ฌธ์ ๋
ผ์์ ๋ํ ๋ถ์์ ์ธ ๋ฐ์ธ์ ์๋๋ค.
@rgommers "80 %์ ๊ณ ์ ๋ ๋ฒ์ ์์ฒญ"์ด ๊ฐ๋ฅํ๋ค๋ฉด ์ค๋ ์ ์ ํด์์ ๊ฒ์ ๋๋ค. "80 %"๋ ๋ํ ํ ์์๋ ์กฐ์งํ ๋ ์ปค๋ฎค๋ํฐ๊ฐ ์๋๋๋ค. ๋ฐฐ๊ฒฝ ๋ฌธํ๋ฅผ ๊ณต์ ํ์ง๋ง ์๋ก ์ํธ ์์ฉํ์ง ์๋ ๋ง์ ์ฌ๋๋ค์ ๋๋ค. ๊ทํ์ ์ ์์ "Windows ์ฌ์ฉ์์๊ฒ Linux๋ก ์ ํํ๋๋ก ์์ฒญ"(๋๋ ๊ทธ ๋ฐ๋)๊ณผ ๋น์ทํฉ๋๋ค.
์ด๊ฒ์ด NumPy๊ฐ ์ธํ๋ผ ์ํํธ์จ์ด๋ผ๊ณ ์ฃผ์ฅํจ์ผ๋ก์จ ์ ๊ฐํ๋ ค๋ ์์ ์ ๋๋ค. ๋ง์ ์ฌ๋๋ค์๊ฒ ์ํํธ์จ์ด ์ค์น๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ์๋ฐฑ ๊ฐ์ ๋ ๊ณ ๋ธ๋ฆญ ์ค ํ๋ ์ผ๋ฟ์ ๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ ๋ํด ํน๋ณํ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๋จ์ง ๊ฑฐ๊ธฐ์ ์๊ณ "์ผ"ํ๋ฉด๋ฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋๋ฌด ๋ง์ด ํ์ ์ํค๊ณ ์ถ์ง ์์ง๋ง np.repeat ๋ฐ bool ๋ฐฐ์ด๋ก ๋ฌด์์ ์ธ๊ธํ๊ณ ์๋์ง ์ ํ ๋ชจ๋ฆ ๋๋ค.
@ eric-wieser๋ 0 ๋ฒ ๋ฐ๋ณตํ๊ณ ๋ฐฐ์ด์์ ์ ๊ฑฐํ๋ฉด 1 ๋ฒ ์ ์ง๋ฉ๋๋ค. ๋๋ ์ธ๋ฑ์ฑ ๋์ ์ด๊ฒ์ ๊ฐ๋ฅด์น๋ ๊ฒ์ ๋์ํ์ง ์์ต๋๋ค . ๋น์ ์ด ๊ทธ๊ฒ์๋ณด๊ณ ์ถ๋ค๋ฉด ๋์ดํ์ง๋ง ...).
์ด๊ฒ์ ๋ ์ด์ ์๋ฌด๋ฐ๋ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ์ฌ์ด๋ ํฌ์ธํธ์ ๋๋ค :). ๋๋ ์ค์ ๋ก numpy์์ ์ฒ์ฒํ ๊ณ ์น๋ ๊ฒ์ด ๋ฏธ๋์ ์ด๋ ์์ ์์ numpy๋ฅผ ๋ ์ฝ๊ฒ ๊ต์ฒด ํ ์ ์๋๋ก ์ฝ๊ฐ ํฌ๋งํฉ๋๋ค.
๊ทํ์ ์ ์์ "Windows ์ฌ์ฉ์์๊ฒ Linux๋ก ์ ํํ๋๋ก ์์ฒญ"(๋๋ ๊ทธ ๋ฐ๋)๊ณผ ๋น์ทํฉ๋๋ค.
ํ , ๊ธฐ์ ์ ์ผ๋ก ์ ๋ฅํ ์ฌ๋๋ค์๊ฒ ์ค์ ์ธ๊ณ์ ๋ฒ์ ๋ฒํธ๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ์์ ๋ณด๋๋ก ์์ฒญํ๋
์ด๊ฒ์ด NumPy๊ฐ ์ธํ๋ผ ์ํํธ์จ์ด๋ผ๊ณ ์ฃผ์ฅํจ์ผ๋ก์จ ์ ๊ฐํ๋ ค๋ ์์ ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ฐ๋ฆฌ๊ฐ์ด ์ ํ์ํ๋ค๋ฉด SciPy๊ฐ ๋ค์ ์ธํ๋ผ์ด๊ธฐ ๋๋ฌธ์ SciPy๋ก ๋์ด๊ฐ ๊ฒ์ ๋๊น? ์ธ์ ์ธํ๋ผ๊ฐ ์ค๋จ๋ฉ๋๊น? ๊ทธ๋ฆฌ๊ณ NumPy์ ๋ค๋ฅธ ์ธํ๋ผ๊ฐ Python ์์ฒด ๋ฐ ๋๋จธ์ง ์ ์ฒด ๊ณผํ Python ์ํ๊ณ์ ์์ ํ ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
80 % "๋ ๋ํ ํ ์์๋ ์กฐ์งํ ๋ ์ปค๋ฎค๋ํฐ๊ฐ ์๋๋๋ค.
๋น์ ์ด ์ฌ์ฉํ๋ ์ํผ ์ปดํจํฐ์ ๊ด๋ฆฌ์๋ ์ ๋ง๋ก ์๋ก ๋ํํด์ผํฉ๋๊น? ์ด ๋ ์์คํ ์์ ๋ชจ๋ ์ ๋ฐ์ดํธ ์ํํธ์จ์ด๋ฅผ ๋์ ๋ค๋๋ฉฐ ์ด์ผ๊ธฐํ์ง ์๋ ์ฌ๋๋ค์ด ๋ง์ ์๋ ์์ต๋๋ค. ์ ์ธ๊ณ ๋ชจ๋ ์์คํ ๊ด๋ฆฌ์์ 80 %๋ฅผ ๊ต์กํด์ผํ๋ค๋ ์๋ฏธ๊ฐ ์๋๋ผ ํ์ํ ์ฌ๋ ๋ง ๊ต์กํด์ผํฉ๋๋ค.
@seberg ๋ชฉ๋ก๊ณผ ๋ฐฐ์ด์ด ์ธ๋ฑ์ฑ์ ๊ณตํต ์์ฑ์ผ๋ก ๋ง ๊ณต์ ํ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ํ
๋ฟก ๋นต๋จ
๋น์ ์ด ์ฌ์ฉํ๋ ์ํผ ์ปดํจํฐ์ ๊ด๋ฆฌ์๋ ์ ๋ง๋ก ์๋ก ๋ํํด์ผํฉ๋๊น?
์๋์. ๊ทธ๋ค์ ์๋ก์ ์กด์ฌ์ ๋ํด์๋ ์์ง ๋ชปํฉ๋๋ค. ๊ทธ๋ค์ ์๋ก ๋ค๋ฅธ ์ฅ์์์๋ ์๋ก ๋ค๋ฅธ ์กฐ์ง์ ์ํด ์ผํ๋ฉฐ, ์ ์ผํ ๊ณตํต์ ์ ๋ช ๋ช ์ ์ฌ์ฉ์๋ฅผ ๊ณตํต์ผ๋ก ๊ฐ๋ ๊ฒ์ ๋๋ค.
์ ์ธ๊ณ ๋ชจ๋ ์์คํ ๊ด๋ฆฌ์์ 80 %๋ฅผ ๊ต์กํด์ผํ๋ค๋ ์๋ฏธ๊ฐ ์๋๋ผ ํ์ํ ์ฌ๋ ๋ง ๊ต์กํด์ผํฉ๋๋ค.
์ด๊ฒ์ ๋์ ๊ดํ ๊ฒ์ด ์๋๋๋ค. ์ ์์ ์๊ฒ ์๋ฒฝํ๊ฒ ์๋ํ๋ ์๋ฃจ์ ์ด ์์ต๋๋ค. ์ ๋ ํญ์ Python๊ณผ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ ๋๋ ํ ๋ฆฌ์ ์ค์นํฉ๋๋ค.
์ฌ๊ธฐ์ ๊ดํ ๊ฒ์ ์ ๊ฐ ํ๋ ฅํ๋ ์ฌ๋๋ค๊ณผ ์ ์๊ฒ ๋์์ ์์ฒญํ๋ ์ฌ๋๋ค์ ๋๋ค (์ : ๊ทธ๋ค์ด ๊ณผ๊ฑฐ์ ์ Python ๊ณผ์ ์ค ํ๋์ ์ฐธ์ฌํ๊ธฐ ๋๋ฌธ์). ๊ทธ๋ค์ ์์ ์ Python ์ค์น๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ค๋ฅธ ์ฌ๋ (๊ด๋ฆฌ์ ๋๋ ๊ฒฝํ์ด ๋ ๋ง์ ๋๋ฃ)์๊ฒ ๋งก๊ธธ ์์๋ ๊ธฐ์ ์ ๋ฅ๋ ฅ์ด ์์ต๋๋ค.
์ค์ ๋ฒ์ ๋ฒํธ๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง ์์๋ณด๊ธฐ ์ํด
๋ด๊ฐ ์๊ฐํ๋ ์ฌ๋๋ค์ ๊ณต์ ๋ ๋ฐฐ๊ฒฝ ๋ฌธํ์์ ํ์ค ์ธ๊ณ๋ ์ค์ ๋ก ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ ๋๋ ๊ทผ์ฌ์น์ฒ๋ผ ์๋ํฉ๋๋ค.
๋ด๊ฐ ์๊ฐํ๋ ์ฌ๋๋ค์ ๊ณต์ ๋ ๋ฐฐ๊ฒฝ ๋ฌธํ์์ ํ์ค ์ธ๊ณ๋ ์ค์ ๋ก ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ ๋๋ ๊ทผ์ฌ์น์ฒ๋ผ ์๋ํฉ๋๋ค.
๊ทธ ์ด์ ๋ LAPACK & co์ ๊ฐ์ด ๋๋ถ๋ถ ๋๋ฆฌ๊ฒ ์์ง์ด๋ ์ ํ๋ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. @njsmith๊ฐ ์ง์ ํ๋ฏ์ด ๋๋ถ๋ถ์ ์ํํธ์จ์ด๋ ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฒ์ ๋ฒํธ๊ฐ ๋ฎ์ต๋๋ค.
@rgommers ๋ด๊ฐ "์์ ์ซ์"๋ผ๊ณ ๋งํ์ง๋
@njsmith๊ฐ ์ง์ ํ๋ฏ์ด ๋๋ถ๋ถ์ ์ํํธ์จ์ด๋ ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฒ์ ๋ฒํธ๊ฐ ๋ฎ์ต๋๋ค.
๋ด ๊ฒฝํ์ผ๋ก๋ ์๋๋๋ค. ๊ทธ๋ฌ๋ "๋ค์"๋ ์๋ง๋ ๋น์ ๊ณผ ์ ๋ชจ๋์๊ฒ "๋ด๊ฐ ์๋ ๋๋ถ๋ถ"์ ์๋ฏธ ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ SciPy ์ํ๊ณ ๋ฐ์์ ๋น์ ์ด ์ฌ์ฉํ๋ ํจํค์ง์ ๋ด๊ฐ ์ฌ์ฉํ๋ ํจํค์ง ์ฌ์ด์ ๊ฒน์น๋ ๋ถ๋ถ์ด ๊ฑฐ์ ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ง๋ ์ฐ๋ฆฌ๊ฐ์ด ์ ํ์ํ๋ค๋ฉด SciPy๊ฐ ๋ค์ ์ธํ๋ผ์ด๊ธฐ ๋๋ฌธ์ SciPy๋ก ๋์ด๊ฐ ๊ฒ์ ๋๊น? ์ธ์ ์ธํ๋ผ๊ฐ ์ค๋จ๋ฉ๋๊น?
์ ๋ ์ค์ ๋ก SciPy์ SciPy ์ํ๊ณ์ ๋๋จธ์ง ๋ชจ๋ ๊ธฐ๋ณธ ์ฌํญ์ด ๋์ผํ ์์น์ ์ฑํํ๋ ๊ฒ์ ์ ํธํ์ง๋ง ๊ฐ์ธ์ ์ผ๋ก๋ NumPy๋ณด๋ค ํจ์ฌ ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ์ฌ ๋ ๊ทผ๋ณธ์ ์ ๋๋ค. NumPy ๋ฐฐ์ด์ ๋ง์ ๊ณผํ ์ํํธ์จ์ด์ ์ค์ฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ธ ๋ฐ๋ฉด SciPy๋ ์ฃผ์ด์ง ์์ฉ ํ๋ก๊ทธ๋จ์์ ์์ ํ์ ์งํฉ์ ์ฌ์ฉํ๋ ๊ฑฐ๋ํ ํจ์ ๋ชจ์์ ๋๋ค.
๋ํ SciPy๋ ์ฌ์ค์ 1.0์ ์ด๋ฅด๋ ๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก๋ ์๋์ง๋ง ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ NumPy์ ๋ค๋ฅธ ์ธํ๋ผ๊ฐ Python ์์ฒด ๋ฐ ๋๋จธ์ง ์ ์ฒด ๊ณผํ Python ์ํ๊ณ์ ์์ ํ ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ ์ฒด SciPy ์ํ๊ณ๋ ์ค์ ๋ก ๊ณผํ ์ปดํจํ ์์ ์ง๋ฐฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์ ์ธ ๋์ผํ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํด์ผํฉ๋๋ค. ์ต๊ด์ด ๋ค๋ฅธ ๋ค๋ฅธ ๋๋ฉ์ธ์ Python ๋ฐ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ์ ์ฉ๋์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์น ๊ฐ๋ฐ์ ๊ณผํ ์ปดํจํ ๋ณด๋ค ํจ์ฌ ๋ ๋ณด์์ ์ ๋๋ค. ๋ํ ๋๋ถ๋ถ ๋ค๋ฅธ ์ฌ์ฉ์๋ฅผ ๋๋ณด๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ํํฉ๋๋ค. ํ์ด์ฌ ์ธ์ด๋ ์ ์ผํ ์ฐ๋ฝ ์ง์ ์ด ๋ ๊ฒ์ ๋๋ค.
NumPy ๋ฐฐ์ด์ ๋ง์ ๊ณผํ ์ํํธ์จ์ด์ ์ค์ฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ธ ๋ฐ๋ฉด SciPy๋ ์ฃผ์ด์ง ์์ฉ ํ๋ก๊ทธ๋จ์์ ์์ ํ์ ์งํฉ์ ์ฌ์ฉํ๋ ๊ฑฐ๋ํ ํจ์ ๋ชจ์์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์์ ์ ์ ๋๋ค. ํน์ ๋ฆด๋ฆฌ์ค์์ ํธํ๋์ง ์๋ ๋๋ถ๋ถ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๋ ์ผ์ด์ค์ด๋ฉฐ ๋๋ถ๋ถ ndarray ๋์์ด ์๋๋๋ค. ์๋ฅผ ๋ค์ด https://github.com/numpy/numpy/blob/master/doc/release/1.13.0-notes.rst#compatibility -notes๋ฅผ ์ฐธ์กฐ
๋ํ SciPy๋ ์ฌ์ค์ 1.0์ ์ด๋ฅด๋ ๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก๋ ์๋์ง๋ง ์๋ฏธ ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
SciPy๋ NumPy์ ๋๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณ์ ์ง์ ์ค๋จ / ์ ๊ฑฐ ์ ์ฑ ์ ์ฌ์ฉํฉ๋๋ค. ์ค๋ซ๋์ 0.x์ ์๋ค๊ณ ํด์ semver๋ฅผ ์๋ฏธํ์ง๋ ์์ต๋๋ค.
(๋ด๊ฐ๋ณด๊ธฐ์) ๊ณผํ ์ปดํจํ ์์ ์ง๋ฐฐ์ ์ธ ๊ฒ
SciPy ์ํ๊ณ์ ์ ํต์ ์ธ ๋น๊ต๋ Matlab ๋ฐ R๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค. R์ ๋ํ ์ ๋ณด๋ฅผ ์ฐพ์ ์ ์์ง๋ง 3.x์ ์๊ณ ๋ง์ด ์งํ ํ์ผ๋ฏ๋ก ์๋ง๋ semver๊ฐ ์๋ ๊ฒ์ ๋๋ค. Matlab : ํ์คํ semver๊ฐ ์๋๋๋ค.
RE : ๋ฉ์ง ์ธ๋ฑ์ฑ. ์ค์ ๋ก ์ด๊ฒ์ ์ ์ฉ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด tf.gather
, tf.gather_nd
, tf.scatter_nd
, tf.boolean_mask
๋ฑ๊ณผ ๊ฐ์ด TensorFlow์์ ์ํ ํ ์์
์
๋๋ค. ๊ฒฐ๊ณผ๋ []
์ค๋ฒ๋ก๋ํ์ง๋ง ํ์คํ ๋ ํฌ๋ช
ํฉ๋๋ค.
๋์์ด ๋ ์์๋ ๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ Python 2์์ 3์ผ๋ก์ ์ ํ์ ์ด๋ ค์ ๋๋ฌธ์ ๋ถ๋ถ์ ์ผ๋ก ๋๊ธฐ๋ฅผ ๋ถ์ฌํ ๊ธฐ๋ฅ์ธ ์ ํ ์ฃผ์์ ๋๋ค.
์ด๊ฒ์ด ์ฌ์ธ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. ๋ด ์๊ฐ์ ์ปค๋ฎค๋ํฐ ๊ฒฐ๊ณผ๋ ๋ ํฐ ๋ฌธ์ ์ ๋๋ค. ์ด๊ฒ์ ์ค์ ๋ก ๊ตฌํํ๋ ๋ฐ ๋ง์ ์๋์ง๊ฐ ํ์ํ๋ฉฐ SciPy์ ๊ฐ์ ํ๋ก์ ํธ๋ก ๋ค์ด ์คํธ๋ฆผ์ ํธ์ํฉ๋๋ค.
@khinsen ๋๋ ์ผ์ฃผ์ผ ๋ด๋ด ํ ๋ก ์ ๋ฐ๋ผ
ํ์ฌ Apple Accelerate ํ๋ ์ ์ํฌ ๋๋ถ์ ํ์ํ ์ต์ LAPACK ๋ฒ์ ์ 10 ๋ ์ด์ ์ ์ 3.1.ish์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ฌ LAPACK์ 3.8.0์ ๋๋ค. ๊ทธ ๋์ ๊ทธ๋ค์ ๊ฝค ๋ง์ ๋ฃจํด (๋ ์ด์ ์ฌ์ฉ๋์ง ์๊ฑฐ๋ ์ ๊ฑฐ๋จ)์ ๋ฒ๋ฆฌ๊ณ ๋ง์ ๋ฒ๊ทธ๋ฅผ ์์ ํ์ผ๋ฉฐ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์์ฉ ์ํํธ์จ์ด์ Python ๊ณผํ ์ํํธ์จ์ด ๊ฐ์ ๊ฒฉ์ฐจ๋ฅผ ๋ฉ์ฐ๋ ๋ฐ ํ์ํ ์๋ก์ด ๋ฃจํด์ ๋์ ํ์ต๋๋ค. ์ต์ข ๊ฒฐ๊ณผ๋ ์ฌ๊ธฐ ์ ์์ฝ๋์ด @rgommers ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ฃผ๋ก ์ฑ๊ฐ ์๊ฒ
์ด์ ์ต์ ๋ฒ์ ์ ๋ํ ํ์คํ ์๊ตฌ๊ฐ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ ผ์๊ฐ ์๋๋ฉฐ ์ฐ๋ฆฌ๋ ๊ทธ ๋ถ๋ถ์ ์์ ํ๊ฒ ๊ฑด๋ ๋ธ ์ ์์ต๋๋ค. NumPy ๋ฐ SciPy์ ์ฌ์ฉ์ ์ค ์๋น ๋ถ๋ถ์ด ์ด๋ก ์ธํด ํํ์ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋น์ ์ด ์ด๋ฏธ ์ ์ ํ ๋ ผ์ ๋๋ฌธ์ ๋จ์ํ ๊ทธ๊ฒ์ ๋ฒ๋ฆด ์๋ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐ ํ์๊ฒ ์ต๋๊น?
๋๋ ๋น์ดํ ๋ฐฉ์์ผ๋ก ์ด๊ฒ์ ๋ฌป๋ ๊ฒ์ด ์๋๋ผ ๋ชจ๋ ๊ฐ๋ฐ์๊ฐ ๋๊ฐ์ด ์๊ฐํ๊ธฐ ๋๋ฌธ์ (๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๋ค๊ณผ ๋์ํ๋ค๊ณ ๋งํด์ผ ํจ) ์๋ง๋ ๋น์ ์ ์ธ๋ชจ๊ฐ ์ ์ ํ ์์ด๋์ด๋ฅผ ์ค ์ ์์ต๋๋ค. Accelerate๋ฅผ ์ ์งํ๊ณ ๊ทธ๋ฌํ ์ผ์ด ๋ฐ์ํ ๋๋ง๋ค ์๋ก์ด NumPy / SciPy ํจํค์ง๋ฅผ ๋ง๋ค์ด์ผํฉ๋๊น? ํ์ ์ ์ํด ์ง์์ ์ค๋จํ๋ค๋ฉด ์ฌ๊ธฐ์๊ฐ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
ํ์ฌ Apple Accelerate ํ๋ ์ ์ํฌ ๋๋ถ์ ํ์ํ ์ต์ LAPACK ๋ฒ์ ์ 3.1.ish์ ๋๋ค.
@mhvk , ์ด๊ฒ์ 1,14์ # 9976์์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. 3.2.2๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
@xoviat : ๊ทธ ๋ฌธ์ ์ ๋ํด์ด ํ ๋ก ์ํฉ์๋ค
@ilayn ๊ตฌ์ฒด์ ์ด๊ณ ๊ฑด์ค์ ์ธ ๋ฐ์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์ฌ์ค ๊ทธ ์ํฉ๊ณผ์ด ์ค๋ ๋๋ฅผ ์์ํ๋๋ก ๋๊ธฐ๋ฅผ ๋ถ์ฌํ ์ํฉ ์ฌ์ด์๋ ๋ง์ ์ ์ฌ์ ์ด ์์ต๋๋ค.
์ฃผ์ ๊ณตํต์ : ์๋ก ๋ค๋ฅธ ์๊ตฌ๋ฅผ ๊ฐ์ง ๋ค์ํ ์ฌ์ฉ์ / ์ปค๋ฎค๋ํฐ๊ฐ ์์ต๋๋ค. ์ผ๋ถ๋ Accelerate๋ฅผ ์ํ๊ณ ๋ค๋ฅธ ์ผ๋ถ๋ ์๋ก์ด LAPACK ๊ธฐ๋ฅ์ ์ํฉ๋๋ค. ๋ ๋ค ํน์ ์ฐ์ ์์์ ๋ํ ์ข์ ์ด์ ๊ฐ ์์ต๋๋ค. Accelerate ์ ์๋ก์ด LAPACK ๊ธฐ๋ฅ์ ๋ชจ๋ ์ํ๋ ์ฌ๋๋ค์ด์์ ์๋ ์์ง๋ง, ์ด๊ฒ์ ๋ถ๋ช ํ์ง ์์ต๋๋ค.
Fortran / C ์ธ๊ณ์์๋ ์ํํธ์จ์ด ์คํ์ด ๋ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ถ๊ฐ ์ค๊ฐ์ฒด์์ด Fortran, LAPACK ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๊ฐ ์์ต๋๋ค. ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ ์ฐ์ ์์์ ๋ฐ๋ผ ํน์ ๋ฒ์ ์ LAPACK์ ์ ํํฉ๋๋ค. ์ปดํจํ
์ผํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ฌ LAPACK ๋ฒ์ ์ ๋ณ๋ ฌ๋ก ์ ์งํ๋ฉฐ, ๊ฐ๊ฐ ์์ฒด ๋๋ ํ ๋ฆฌ์ ์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋์ Makefile
๋ฅผ ์์ ํ์ฌ ์ ํํฉ๋๋ค.
SciPy ์์ฝ ์์คํ ์์ ์ฐ๋ฆฌ๊ฐ ์ด์ด ๋ฐ์์ผ ํ ๊ตํ์ ์ํํธ์จ์ด ๋ฒ์ ์ ์ ํํ๋ ๊ฒ์ด ์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ ์๋๋ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ ์ํํธ์จ์ด ๋ฒ๋ค์ ์กฐ๋ฆฝํ๋ ์ฌ๋๋ค์ ์์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ ์ธ์์์ ๊ทธ๊ฒ์ Anaconda, Debian ๋ฐ ๊ธฐํ ์ํํธ์จ์ด ๋ฐฐํฌํ์์ ์ผํ๋ ์ฌ๋๋ค๋ฟ๋ง ์๋๋ผ ๋ค์ํ ์์ค์ ์์คํ ๊ด๋ฆฌ์์ ์ฌ๋ฐ๋ฅธ ๋ฅ๋ ฅ๊ณผ ๋๊ธฐ๋ฅผ ๊ฐ์ง ์ต์ข ์ฌ์ฉ์์ ๋๋ค.
๊ทธ๋์ SciPy / LAPACK ๋๋ ๋ง์ ๋ํ ์ ์ ์ ์์ Accelerate๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋๋ ์ SciPy๋ฅผ ์ ์งํ๋ฉด์ ์ต์ํ์ ์ ์ง ๊ด๋ฆฌ ๋ชจ๋ (๋ค๋ฅธ ์ฌ๋์ด ์ธ์ ํ ์ ์์)๋ก ์ค์ ํ๋ ๊ฒ์
๋๋ค. Accelerate๋ฅผ ์ํ๋ ์ฌ๋๋ค์ "SciPy 2017"์ ์ ํํ๊ณ ํ๋ณต ํ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ์๋ก์ด LAPACK ๊ธฐ๋ฅ์ ์ป์ง ๋ชปํ ๊ฒ์ด์ง๋ง ์๋ง๋ ๋๋ถ๋ถ์ ๊ด์ฐฎ์ต๋๋ค. ์๋ก์ด ๋ค์ ์คํ์ด์ค ( scipy2
, scipy2018
๋๋ ๊ธฐํ)์์ ๊ฐ๋ฐ์ด ๊ณ์๋๋ฉฐ ์ต์ LAPACK์ผ๋ก ์ ํ๋ฉ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ๋ค๋ฉด์ด ๋ ๊ฐ์ง (๊ทธ๋ฆฌ๊ณ ๋ฏธ๋์) ๋ณํ์ ๋ณ๋ ฌ ์ค์น๋ฅผ ํ์ฉํ์ญ์์ค (SciPy์์ ๊ฐ๋ฅํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค). ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ ๋ค ํ์๋กํ๋ ์ฌ๋๋ค์ ์ฌ๋ฌ ํ๊ฒฝ (Conda, Venv ๋๋ Nix ๋๋ Guix๋ฅผ ํตํ ์์คํ
์ ์ฒด ํ๊ฒฝ)์ ์ฌ์ฉํด์ผํฉ๋๋ค. ์ด ๋ ๋ฒ์งธ ์๋๋ฆฌ์ค์์๋ ๋ชจ๋ ์์ค์ Python ์ฝ๋ ๋
์๊ฐ ์ฝ๋๊ฐ ์์ฑ๋ SciPy ๋ฒ์ ์ ์ดํดํ ์ ์๋๋ก ํธํ๋์ง ์๋ ๊ฐ ๋ณ๊ฒฝ์ผ๋ก ๋ค์ ์คํ์ด์ค๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ ์ฒด์ ์ธ ์์ด๋์ด๋ ๊ฐ๋ฐ์๊ฐ ์๋ก์ด ๊ฒ์ ์ ์ํ๊ณ ๊ฐ๋ฐ์ ์ง์คํ์ง๋ง ์ผ๋ฐ์ ์ธ ์๋ฏธ์์ "๋ ๋์"๊ฒ์ผ๋ก ๊ด๊ณ ํ๊ฑฐ๋ ๋ณดํธ์ ์ธ ๋์ฒด๋ฌผ๋ก ๊ด๊ณ ํ์ง ์๋ ๊ฒ์ ๋๋ค. ํน์ ์์ ์ ์ ํฉํ ์ํํธ์จ์ด ๋ฒ์ ์กฐํฉ์ ์ ํํ๋ ๊ฒ์ ๊ทธ๋ค์ ์ผ์ด ์๋๋ผ ๋ค๋ฅธ ์ฌ๋์ ์ผ์ ๋๋ค.
๊ฐ๋ฐ๊ณผ ์กฐ๋ฆฝ์ด ์๋ก ๋ค๋ฅธ ์ฌ๋์ ์ํด ๋
๋ฆฝ์ ์ผ๋ก ์ํ๋๋ค๋ ์ผ๋ฐ์ ์ธ ์๊ฐ์ ์ค๋๋ ์ ๋ฉ๊ฐ ํจํค์ง๋ฅผ ์๋ก ๋ค๋ฅธ ์๋๋ก ์งํํ ์์๋ ๋ ์์ ๋จ์๋ก ๋ถํ ํด์ผ ํจ์ ์์ฌํฉ๋๋ค. ์ค๋๋ ์์ LAPACK ์ธํฐํ์ด์ค์ f2py
๊ฐ์ ๋๊ตฌ๋ฅผ ํฌํจํ๋ NumPy์ ๋ํ ์ด์ ๊ฐ ์์ต๋๋ค. SciPy์ ๊ฒฝ์ฐ ์ผ๊ด์ฑ๊ณผ ๊ณตํต ๊ฐ๋ฐ ์ ์ฑ
์ ๋ํ๋ด๋ ๊ณตํต ๋ค์ ์คํ์ด์ค๋ฅผ ๊ฐ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ผ ์ ์์ง๋ง ํ์ ํจํค์ง๋ ๋
๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌ ๋ ์ ์์ต๋๋ค. ๋ฉ๊ฐ ํจํค์ง ์ ๊ทผ ๋ฐฉ์์ 20 ๋
์ ์ ํ๋ฅญํ๋ Python์ "๋ฐฐํฐ๋ฆฌ ํฌํจ"๋ชจํ ๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ๋๋ค. ์ค๋๋ ์ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋๋ฌด ๋ค์ํ๋ฉฐ ์ํํธ์จ์ด ํจํค์ง์ ์ผ๋ฐ์ ์ผ๋ก ๋ณ๊ฐ์ ํ๋์ผ๋ก ์ธ์๋์์ต๋๋ค. ๋ฐฐํฐ๋ฆฌ๋ฅผ ํฌํจํ๋ ๊ฒ์ ์ด์ Anaconda๊ฐ ํ ์ผ์
๋๋ค.
์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฑํํ๋ ๋ฐ์์ด ๊ฐ์ฅ ํฐ ์ฅ์ ๋ฌผ์ "๊ธฐ๊ณ ๋น ํ๋์ Python ์ค์น"์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ Debian ๋๋ Fedora์ ๊ฐ์ ์ ํต์ ์ธ Linux ๋ฐฐํฌํ์ ๋๋ค. ํฉ๋ฆฌ์ ์ธ ๋ ธ๋ ฅ์ผ๋ก ์ฌ๋ฌ ์์คํ ์ ์ฒด์ ๊ฐ์ ํ๊ฒฝ์ผ๋ก ์ ํ ํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ด์ ๋ํด ๋ง์ด ์๊ฐํ์ง ์์์ต๋๋ค. ์ ์๊ฒ ์ํํธ์จ์ด ํจํค์ง์ ๋ฏธ๋๋ conda ๋ Guix์ ๊ฐ์ ํ๊ฒฝ ๊ธฐ๋ฐ ์์คํ ์ ๋๋ค.
์ง๊ธ๊น์ง ๋น์ ์ด ์ ์ ํ ๋ชจ๋ ์ ์น์ฌ๊ฐ์ด ๋จ๊ณ๋ค๊ณผ ์ด๋ป๊ฒ ํธํ๋๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์๋ง๋ ๋น์ ์ ์ฝ๊ฐ ๋น๋๊ฐ์ต๋๋ค.
(์ด๊ฒ์ ์์ ํ ๋ก ์ด๋์์ผ๋ฏ๋ก ๊ณ์ํด์ ๋ฐ์ด ๋ค๊ฒ ์ต๋๋ค).
๊ฐ์ ์ง์์ ์ ์งํ๋ ๋ฌธ์ ๋ ์ต์ LAPACK API๊ฐ ๋ถ์กฑํ๋ค๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ด ๋ฌธ์ ๋ผ๋ฉด, ์ฐ๋ฆฌ๋ ์๋ก์ด LAPACK ์ฌ์ ๋ฐฐ์กํ๊ณ ์๋ฃ ํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ ํน์ ์๋๋ฆฌ์ค์์ ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ๊ธฐ๋ณธ ํจ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ ์์ ์ BLAS ํจ์๋ฅผ ์์ฑํ๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๊ทธ๋ ๊ฒํ๋ค๋ฉด OpenBLAS ๋๋ MKL์ด ํ์ํ ์๋ ์์ต๋๋ค.
@xoviat ์ด๊ฒ๋ค์ ๋ชจ๋ https://github.com/scipy/scipy/pull/6051 ์์ ๋ ผ์๋์์ต๋๋ค
@ilayn ์, ์ ๊ฐ ๋ง๋ค๊ณ ์๋ ์์ ์ ๋ํด ์ด๋ฏธ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฝ๋ฉํธ๋ @khinsen์์ํ ๊ฒ์ด์๋ค. ์ ๋ ๊ทธ๊ฐ Accelerate ์ง์์ ์ค์ ๋ก ์ ์งํ ์ ์๋ค๋ ์ธ์์ ๋ฐ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Python ์ํ๊ณ์ ๊ธฐ๋ฅ (๋๋ ์ ํ)์ ์ด๋ฆ ๋ณ๊ฒฝ์ ๋์ฐํ ํดํน์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ ๋ฒ์ ์ ์ป๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ํต์ฌ Python์์ ๋ฐ์ํฉ๋๋ค. ์ด๊ฒ์ด _lib_ ๋ฐ _lib_ 2 ๋ผ๋ ์ด๋ฆ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์ผํ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง API ์ฐจ์ด๊ฐ์๋ ์ด์ ์ ๋๋ค. ๊ด์ ํ์ด์ฌ์กฐ์ฐจ๋ ์ด๋ฐ ์์ผ๋ก ์๋ํฉ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ์ฐข์ด์ PyPi์ ์ฌ๋ฆฌ์ง ์๊ณ ํ๋ ํ์ด์ฌ์์ ๊ธฐ์ ์ ์ผ๋ก ๋ ๋ค ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋๋ผ๋ ์ฌ๋ฌ ๋ฒ์ ์์ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํผํฉํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด๊ฒ์ ๋ํ ๋ง์ StackOverflow ์ง๋ฌธ ์ด ์์ผ๋ฉฐ ๋ชจ๋ ๋์ผํ ๊ฒฐ๋ก ์ ๋ด๋ฆฝ๋๋ค.
@ilayn ์ด๋ค ์ด์ ๋ก ๋น์ ์ ์ปดํจํฐ์์๋ ๋ชจ๋ ๋ฒ์ ์ ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ ์ํ๋ค๋ฉด, ์, ๊ทธ๊ฒ์ ์๋ง์ ๋๋ค. ํ์ง๋ง ์ ๊ทธ๊ฑธ ์ ํ๊ฒ ์ด์? ์์ฉ ํ๋ก๊ทธ๋จ ์๋๋ฆฌ์ค์ ์ค์ ๋ก ํ์ํ ์กฐํฉ์ผ๋ก ์์ ์ ์ ํํ๋ฉด ๋ ์ ์ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ด ์ปดํจํฐ์ ์ ํํ ๋ ๊ฐ์ Python ํ๊ฒฝ์ ์ ์งํฉ๋๋ค. ํ๋๋ 20 ๋ ๋ ์ฝ๋๋ฅผ ์คํํ๊ธฐ์ํ Python 2 + NumPy 1.8.2๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ํ๋๋ ๋ค๋ฅธ ๋ชจ๋ ์์ ์ ๋ํด ์ฝ 2 ๋ ์ ์ ์ต์ฒจ๋จ์ ๋ํ๋ ๋๋ค ( 2 ๋ ์ ์ ์ค์ ํ๋๋ฐ ๊ทธ ์ดํ๋ก ์ ๊ทธ๋ ์ด๋ ํ ์ด์ ๊ฐ ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.)
์ธ๋ถํ์ ๊ดํด์๋ ์๋ง๋ ๋ด ์ ์์ด ๋ช ํํ์ง ์์์ ๊ฒ์ ๋๋ค. ์ ๊ฐ ์นํธํ๋ ๊ฒ์ ๊ฐ๋ฐ ๋จ๊ณ๊ฐ ์๋๋ผ ํฌ์ฅ์์ ๋ ์ธ๋ถํ๋๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด f2py์ SciPy์ ๊ฐ๋ฐ์ด ๊ธด๋ฐํ ํ๋ ฅ์ ๊ณ์ํ ๊ฒ์ผ๋ก ๊ธฐ๋ํฉ๋๋ค. f2py-2018๊ณผ SciPy-2018์ ํจ๊ป ์๋ํด์ผํฉ๋๋ค. ๊ทธ๋ ๋ค๊ณ ํด์ ๋จ์ผ ๊ฐ์ฒด๋ก ํฌ์ฅ๋์ด์ผํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ๋ชฉํ๋ ์ํํธ์จ์ด ๋ฐฐํฌ ๊ด๋ฆฌ์๊ฐ ์์ ์ ์ํ ํ ์์๋ ๋ ๋ง์ ์์ ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
๋๋ Anaconda ๋๋ ๋ค๋ฅธ ๋ฐฐํฌํ์ ์ข ์์ฑ์ผ๋ก ๋ง๋ค๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ์กฐ๋ฆฝํ๋ ๊ฒ์ด ๋ง์ ์์ ์ด๋ผ๋ ์ ์ ๊ฐ์ํ ๋, ๋ถ๋ฐฐ์ ์๊ฐ "ํ๋ถํ๊ฒ"์ฆ๊ฐ ํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง๋ ์์ง๋ง, "๋ค๋ฅธ ์ฌ๋์ ํ๋ถํจ"๊ณผ ๋ ๋น์ทํฉ๋๋ค.
"์ฌ์ฉ์ ๊ธฐ๋ฐ"์ด ์ด๋ค ์ํฌ ํ๋ก๋ฅผ ์ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์๊ตฌ ์ฌํญ์ด ๋ค๋ฅธ ๋ค์ํ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ด ๋ง์ด ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ์ฌ๋ฌ ํ๊ฒฝ์ผ๋ก ๊ฐ๊ณ ์ถ์ง๋ง ๋จธ์ ๋น ๋จ์ผ ํ๊ฒฝ์ ์ํ๋ ์๋นํ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ด ์๋ค๋ฉด ์ผ๋ถ ๋ฐฐํฌํ์ด์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ ํ๊ฒฝ์ ์ด์ ๋๋ฌธ์ ๋ฐ๋ช ๋์์ผ๋ฉฐ ์ค์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. Nix ๋๋ Guix์ ๊ฐ์ ์์คํ ์์ค ๋ฐฐํฌํ์ ๋ค๋ฅธ ์์ค์ผ๋ก ์ด๋ํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด ์ฌ๋ผ์ง๊ธฐ๋ฅผ ๊ธฐ๋ํ์ง ์์ต๋๋ค.
BTW, ์ค์ ๋ก ํ๋์ Linux ๋ฐฐํฌ (Guix)์ ๋ฉ์ผ ๋ง๋ฆฌ์คํธ๋ฅผ ๋ฐ๋ฅด๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ง ์ฌ๋ฏธ๋ ์์ง๋ง ์ค์ ์ ์ธ ๋ง์ ์์ ์ด ๋ง์ต๋๋ค. ์ด๋ฐ ์ผ์ํ๋ ์ฌ๋๋ค์ด์์ด์ ๊ธฐ์ฉ๋๋ค.
@xoviat "Keep Accelerate ์ง์"์ ์ ์ํ์ง ์์์ต๋๋ค. ๋๋ ๋จ์ง SciPy ๋ณ์ข (ํ์ฌ ๊ฑฐ์ ํ์ฌ ๋ฒ์ )์ ๋ฐ๋ฌผ๊ด์ ์ค๋๋ ๋ฆด๋ฆฌ์ค๊ฐ ์๋๋ผ ํน์ ์ฌ์ฉ์ ๊ทธ๋ฃน์ ๊ด์ฌ ๋ณ์ข ์ผ๋ก ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๋ณด๋ค Accelerate๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ค์ํ ์ฌ๋๋ค์ ๋๋ค. ๋ค๋ฅธ ์ฌ๋์์ํ ์ฐฝ์๋ฌผ์ ๊ฐ์ํํ์ญ์์ค. "๊ฐ์ฅ ๋จผ์ ๊ฐ์"ํ๋ ์ฌ๋๋ค์ ์์ ์ด ์ ํํ ๊ฒฐ๊ณผ์ ํจ๊ป ์ด์์ผํฉ๋๋ค. ์ผ๋ถ ๋ฌธ์ ๋ ํด๊ฒฐ๋์ง ์์ต๋๋ค. ์๋ง ๊ทธ๋ค์๊ฒ๋ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค ( "์๋ ค์ง ๋ฒ๊ทธ๊ฐ ์๋ ค์ง์ง ์์ ๋ฒ๊ทธ๋ณด๋ค ๋ซ๋ค"). ์ ๊ทธ๋ค์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๊ฐ์ ํ ๊น์?
๋ผ๋ฒจ๋ง๊ณผ ์ปค๋ฎค๋์ผ์ด์ ์ ๊ดํ ๋ชจ๋ ๊ฒ์ ๋๋ค. ๋๋ "๋์"๋ฒ์ ๋ฒํธ๋ก ํ์๋๋ ๊ฒ์ฒ๋ผ ์๋ก์ด ๋ฒ์ ์ด "๋ ๋์"๊ฒ์ผ๋ก ์ ํ์ ์ธ ์งํ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ์ํํธ์จ์ด์ ์ด์์ ์ธ ์ด๋ฏธ์ง์์ ๋ฒ์ด๋๊ณ ์ถ์ต๋๋ค. ์ด ์ด๋ฏธ์ง๋ฅผ ์ข ๋ ํ์ค์ ์ผ๋ก ์๊ฐํ๋ ์ด๋ฏธ์ง๋ก ๋ฐ๊พธ๊ณ ์ถ์ต๋๋ค. ์ํํธ์จ์ด ๋ฆด๋ฆฌ์ค๊ฐ์ ๋ช ํํ ์์ ๊ด๊ณ๊ฐ ์์ต๋๋ค. ์ค๋ ์ง์๋๋ ์ผ๊ด๋ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ์ํด ์์ฑ ๋ ๊ฒ์ ์ผ์์ ์ธ ์์๊ฐ ์์ง๋ง, ์ด๋ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ํ์ง์ด๋ ์ ํฉ์ฑ์ ๋ํ ์ด๋ค ๊ฒ๋ ์๋ฏธํ์ง ์์ต๋๋ค.
์ด์ํ ๋ ์ด๋ฏธ์ง๊ฐ ๋ง๋ค๋ฉด ํฌํฌ๋ฅผ ๋ณผ ์์๊ณ ๊ฐ์ ํ๊ฒฝ๋ ์์ ๊ฒ์ ๋๋ค. VersionClimber ์ ๊ฐ์ ํ๋ก์ ํธ๋ ์์ต๋๋ค.
์ ๊ฐ ์ ์ํ๋ ๊ฒ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ์ด ํ์ค์ ๋ถ์ ํ๊ธฐ๋ณด๋ค๋ ์์ฉํด์ผํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ๋ค์์ฑ์ ์ธ๊ณ๋ฅผ ์ํด ์ ํ์ ๊ฐ๋ฐํด์ผํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ ๋ฌด์๋ณด๋ค๋ ํฌ์ฅ ๋ฐ ๋ผ๋ฒจ๋ง).
@khinsen ์ ํ ๋์ ํจ์์ ์๋ชป๋ ๊ฒฐ๊ณผ๊ฐ ๊ด์ฐฎ๋ค๋ฉด ๊ณ์ ๊ฐ์ํ ์ง์์๋ฐ์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฃผ๋ ๋ฌธ์ ๋ ์ด๊ฒ์ ์ํ๋ ์ ์ผํ ์ฌ๋ ์ผ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์๋๋ผ๋ ๊ฐ์ ๋ฌธ์ ์ ๋ํด ๋๊ตฐ๊ฐ SciPy๋ฅผ ๋น๋ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋๊ตฐ๊ฐ๊ฐ ์ผ์ดํฌ๋ฅผ ๋จน๊ณ ์ถ์ดํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋๋ ๊ทธ๊ฒ์ด ์ผ์ด๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
@xoviat ์๋์, ์ ํ ๋์ ํจ์์ ์๋ชป๋ ๊ฒฐ๊ณผ๊ฐ ์ข์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํฅ์๋ฐ๋ ๊ธฐ๋ฅ์ด ์ ํ ํ์ํ์ง ์์ SciPy ์ฌ์ฉ์๊ฐ ๋ง์ด์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ธ๊ธ ํ ์ค๋ ๋์์ ๋๊ตฐ๊ฐ Accelerate๊ฐ ๊ฐ์ง๋๋ฉด ์ํฅ์๋ฐ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐ / ๋นํ์ฑํ ํ ๊ฒ์ ์ ์ํ๋๋ฐ, ์ด๋ ์ข์ ํด๊ฒฐ์ฑ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค (์ฐธ๊ณ :์ด๋ฅผ ๊ตฌํํ๋ ๋ฐ ํ์ํ ๋ ธ๋ ฅ์ ํ๋จ ํ ์ ์์ต๋๋ค).
์ด๋ค๋ฉด์์ ์ด๊ฒ์ ๋ฉ๊ฐ ํจํค์ง ๋ฌธ์ ์ ์ผ๋ถ์ ๋๋ค. ๋ณด๋ค ์ธ๋ถํ ๋ ๋ฐฐํฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ์ด์ ๋ธ๋ฆฌ ์์ค ๋ชจ๋์์ ์๋ํ๋ ๊ฒ์ ์ ํํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด HPC ์ปจํ ์คํธ์์ ์ฌ์ฉํ๊ธฐ ์ํด ์๋ก ๋ค๋ฅธ ํ์ ํจํค์ง๊ฐ ์๋ก ๋ค๋ฅธ LAPACK ๋ฒ์ ์ ์ฌ์ฉํ๋ ๋๋ฉ์ธ ๋ฐ ํ๋ซํผ ๋ณ SciPy ๋ฐฐํฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฐํฌ ์ด์ ๋ธ๋ฌ๋ฅผ ์์ํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ํฅ์๋ฐ๋ ๊ธฐ๋ฅ์ด ์ ํ ํ์ํ์ง ์์ SciPy ์ฌ์ฉ์๊ฐ ๋ง์ด์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ด ์ง์ ์ ๋ํ ์ต์ํ์ ์ฆ๊ฑฐ๊ฐ ์์ผ๋ฉฐ ์ค์ ๋ก๋ ๊ทธ ๋ฐ๋์ ๋๋ค. ์ด ๊ธฐ๋ฅ์ ๋๋ฆฌ ์ฌ์ฉ๋์ง๋ง ํน์ ์๋๋ฆฌ์ค์์๋ง ์คํจํฉ๋๋ค. ์ฆ, ๊ฒฐ๊ณผ๋ ์ ํํ์ง๋ง ์ ํํ์ง ์์ ์ ์์ต๋๋ค. ์, OSX๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ฌ ์ค์น ํ SciPy์ ์ ์ฉ๋ฉ๋๋ค. ์, ์์ ํด์ผํฉ๋๋ค.
๋ณ๋์ ๋ธ๋์น๋ฅผ ์ ์งํ๋ ํ, ๋๋ ๋น์ ์ด ์ ์ง ๋ณด์ ํ ์ ์๋๋ก ํน์ ๋ธ๋์น์ ๋ํ ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ์ ๋ฐ๋ํ๋ ์ฌ๋์ด ์๋ฌด๋ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์คํ ์์ค ์ํํธ์จ์ด์ด๋ฉฐ ์ฌ๋๋ค์ ์์ ์ด ์ํ๋ ๊ฒ์ ์์ ํฉ๋๋ค. ๋๋ ๋ง์ ์ฌ๋๋ค์ด ๊ทธ ์ง์ ์ ์ ์งํ๋ ๋ฐ ๊ด์ฌ์ด์์ ๊ฒ์ด๋ผ๊ณ ํ์์ ์ ๋๋ค.
์ฌ์ค ์๋์ฝ๋ค SciPy๋ MKL๋ก ์ปดํ์ผ๋์ด ์์ผ๋ฏ๋ก์ด ๊ฒฝ์ฐ ์ํฅ์๋ฐ์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ์ง์ ๊ฐ์ํ์ ๊ด์ฌ์ด ์์ต๋๊น?
@xoviat ์ฌ๊ธฐ์ ํฐ ์คํด๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋์ด ํน์ ํ ๋ฌธ์ ์ ๋ํด ์ ํ ๊ฐ์ธ์ ์ธ ์ดํด ๊ด๊ณ๊ฐ ์์ต๋๋ค. SciPy์ ์ ํ ๋์ ๋ฃจํด์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋น์ ์ SciPy ๋ฌธ์ ์ ๋ํ ์ค๋ ๋๋ฅผ ๊ฐ๋ฆฌํค๊ณ ๊ทธ๋ฌํ ์ํฉ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ ํ ๊ฒ์ธ์ง ๋ฌผ์์ต๋๋ค. ์ค๋ ๋๋ ๋จ์ํ Accelerate ์ง์์ ์ค๋จํ๋ ๊ฒ์ ๊บผ๋ฆฌ๋ ๊ฒ์ ๋ถ๋ช ํ ๋ณด์ฌ ์ฃผ๋ฉฐ,์ด ๋ณ๊ฒฝ์ผ๋ก ์ธํด ์ํฅ์๋ฐ์ ์ค์ํ ์ฌ์ฉ์ ๊ทธ๋ฃน์ด ์์์ ์ถ๋ก ํ์ต๋๋ค. ํด๋น ์ฌ์ฉ์ ๊ทธ๋ฃน์ด ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์ด๋์ ๋ฌธ์ ๊ฐ ์์ต๋๊น? SciPy๊ฐ ์ด๋ฏธ Accelerate ์ง์์ ์ค๋จํ์ง ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@xoviat ๋ณ๋์ ๋ธ๋์น๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๊ตฌ์๊ฒ๋ ์ฝ์ต๋๋ค. ๋์ผํ GitHub ์ ์ฅ์์์ ํธ์คํ ํ ํ์๊ฐ ์์ต๋๋ค. ์ฆ, ๋ถ๊ธฐ๋ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ๋ฌธ์ ๋ ์ฌ์ฉ์ (๋ฐ ๋ฐฐํฌ ์ด์ ๋ธ๋ฌ)์๊ฒ ํฌ๋ช ํ ๊ฐ๋ณ SciPy ๋ฒ์ ์ ๋ณ๋ ฌ ์กด์ฌ๋ฅผ ๋ง๋ค๊ธฐ์ํ ๋ค์ ์คํ์ด์ค์ ๋๋ค.
์ค๋๋ , "import scipy"๋ผ๋ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ด๋ค ๋ฒ์์ SciPy ๋ฒ์ ์ด ์๋ํด์ผํ๋์ง ์ ์ ์์ต๋๋ค (์ : ์ด๋ ์ ๋ ํ ์คํธ๋ฅผ ๊ฑฐ์ณค ์). ๊ฐ์ฅ ์ข์ ๊ฒฝ์ฐ์๋ "SciPy> = 0.8"๋๋ ์ด์ ์ ์ฌํ ๋ด์ฉ์ README๊ฐ ์์ต๋๋ค. ์ด ์ต๊ด์ "์์"๋ฒ์ ์ด ํญ์ "๋ ์ข์ผ๋ฉฐ"์ด๋ค ๊ฒ๋ ์ ํ (ํ๊ดด, ์๋ ์ ํ ๋ฑ)ํ์ง ์๋๋ค๋ ๊ฐ์ ์ ๊ธฐ๋ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ฐ์ ์ ์์ฃผ ๊ฐ๋จํ๊ฒ ์๋ชป๋์์ต๋๋ค.
๋ฐ๋ฉด์ ์ฝ๋์ "scipy2017์ scipy๋ก ๊ฐ์ ธ ์ค๊ธฐ"๋ผ๊ณ ๋์ด ์์ผ๋ฉด ์ด์ ๋ฒ์ ์ด๋ ์ดํ ๋ฒ์ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์์ด ๋ชจ๋ ๋ ์์๊ฒ ๋ถ๋ช ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ SciPy ๋ฒ์ ์ด ์ฌ๋ผ์ง๋ฉด (ํจ๊ณผ์ ์ผ๋ก ์ ์ง ๊ด๋ฆฌ ๋ถ์กฑ์ผ๋ก) ์ด๋ฌํ ์ฝ๋๋ ๊ณ์ํด์ ๋ถ์์ ํ๊ฒ ์๋ํ์ง ์๊ณ ์ค๋ฅ ๋ฉ์์ง์ ํจ๊ป ์คํจํฉ๋๋ค.
์ด๊ฒ์ด ์ ๊ฐ์ด ์ค๋ ๋์์ ๋ง๋ค๊ณ ์ํ๋ ํ ๊ฐ์ง ์์ ์ ๋๋ค. ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ ๊ณต์กด์ด ํ์ค์ ๋๋ค. ๋์์๋ก ์ข๋ค๋ ์๊ฐ์ ๊ฟ์ ๋๋ค. ๋ค์ค ๋ฒ์ ์ฐ์ฃผ๋ฅผ ์ธ์ ํ๊ณ ์คํด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ชจ๋ ์ฌ๋์ ์์ฌ ์ํต์ ์กฐ์ ํ์ฌ ํ์ค ์ธ๊ณ๋ฅผ ์ํด ํ์ค์ ์ผ๋ก ์กฐ์งํฉ์๋ค.
๊ธ์, ๋ชฐ๋ผโฆ ๋ด ์๊ฐ์ ๊ฒฝ๊ณ ์ ๊ด๋ จํ์ฌ ํน์ ๋ฒ์ ๊ฐ์ ธ ์ค๊ธฐ๋ ๊ฒฝ๊ณ ๊ฐ ์๋๋ฉฐ ๋ค๋ฅธ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ธ์ง๋์ด ์์ต๋๋ค. ์ค๋ช ํ๋๋๋ก ๋ฌธ์ ๊ฐ์๋ ์ฌ์ฉ์๊ฐ ๊ฐํ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํน์ numpy ๋ฒ์ ์ ์ ์ธํ ๋ชจ๋ ๋ฒ์ ์ ๋ํด ํ ์คํธ๋์ง ์์๋ค๋ ๊ฒฝ๊ณ ๋ฅผ ์ค์น / ๋ฐํ์์ ์ธ์ํ๋ฉด ๊ฒฝ๊ณ ๊ฐ ๋ฐ์ํฉ๋๊น?
๊ทธ๋ฐ ์ ํ์ ์ถ๊ฐ ํจํค์ง๋ฅผ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๋ํ ๊ทธ๊ฒ์ด ๋ค๋ฅธ ์ ํ์ ์ง์ฅ์ ๋ง๋ค ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํฉ๋๋ค. ๋ง์ ๊ฒ์ด ์ด์๋จ์ ์ ์์ง๋ง, ์๋ฅผ ๋ค์ด ๋ ๊ฐ์ง ๋ฒ์ ์ ํผํฉํ๋ฉด ์ ํ ๊ฒ์ฌ๊ฐ ์๋ํ์ง ์๊ฑฐ๋ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ํ ๋๊น์ง ์๋ ํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค (์๋ฌด๋ ์ด๊ฒ์ ํ
์คํธํ์ง ์์ต๋๋ค!).
๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์ ์ ํผํฉํ๋๋ก ์ ์ํ์ง ์๋ ํ scipy2017 ์๋ฃจ์
์ด ์ํฉ์ ์
ํ์ํฌ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋์ / ๋ฐํ์ ๊ฐ์ ํ๊ฒฝ ์ ํ (ํ์ด์ฌ ์์ค์์ ๊ฐ์ ธ ์ค๊ธฐ ์ ์ pin_import_version("1.6<numpy<1.10", level="raise")
๊ณผ ๊ฐ์)๊ณผ ๊ฐ์ ๊ฒ์ด ๋ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
py2 / py3์ ๊ฐ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด์๋ ๊ฒฝ์ฐ ํน์ ๊ฐ์ ธ ์ค๊ธฐ๊ฐ ์๋ฏธ๊ฐ ์์ผ๋ฉฐ "์ฃผ์"๋ผ์ธ์ด ํ์๋๋ ์๊ฐ ์ฒ๋์ ๋ํด ๋ค๋ฅธ ์๊ฒฌ์ด ์์์ ์ด๋ฏธ ํ์ธํ์ต๋๋ค.
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ NEP # 11596์ด ์ ์ถ๋์์ต๋๋ค. ๋ซ์ ์ ์์ต๋๊น?
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ NEP # 11596์ด ์ ์ถ๋์์ต๋๋ค. ๋ซ์ ์ ์์ต๋๊น?
์, ๋ซ์ ์ ์์ต๋๋ค. NEP (๊ฑฐ๋ถ ๋ ๋์์ผ๋ก semver๋ฅผ ๋ช ์ ์ ์ผ๋ก ์ธ๊ธ ํจ)์๋ ๋ณ๋๋ก ์ฌ๊ธฐ์ ํต์ฌ ๊ฐ๋ฐ์์ ํฉ์๋ semver๋ก ๋ณ๊ฒฝํ๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ wontfix๋ก ๋ซ์ต๋๋ค.
ํ ๋ก ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ฏธ์ํ์ง๋ง ์ง๋ ๋ช ๋ ๋์ NumPy ๊ฐ๋ฐ์ ์ ํ ๋ฐ๋ฅด์ง ์์๊ฑฐ๋ ๋งค์ฐ ํน๋ณํ ์๊ฒฝ ์ธํธ๋ฅผ ๊ฐ์ง๊ณ ์์์ ๋ณด์ฌ์ค๋๋ค. NumPy๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ๋ํ ๋ง์ ์ฐ๋ ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ๊ธฐ์ฌํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ํ๋ก์ ํธ์ ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์๋ก์ด ๊ด๋ฆฌ์๋ฅผ ์ ์นํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๋ ์ฃผ๋ ์ด์ ์ค ํ๋์ ๋๋ค.