์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ๋ฐ์ดํฐ๋ถ์์ ๋ฌธ๊ฐ
- pandas
- ์ฃผ์ฑ๋ถ๋ถ์
- t-test
- ์ธ๋์ํ๋ง
- ๋ฐ์ดํฐ๋ถ๊ท ํ
- PCA
- ๋ฐ์ดํฐ๋ถ์
- ๋ ๋ฆฝํ๋ณธ
- Lambda
- ํฌ๋กค๋ง
- ๋น ๋ฐ์ดํฐ๋ถ์๊ธฐ์ฌ
- dataframe
- ํ์ด์ฌ
- ๋น ๋ฐ์ดํฐ
- ๋ฐ์ดํฐ๋ถ์์ค์ ๋ฌธ๊ฐ
- ADsP
- Python
- datascience
- opencv
- ๋์ํ๋ณธ
- ์๋ํด๋ผ์ฐ๋
- ํ ์คํธ๋ถ์
- LDA
- iloc
- ์ค๋ฒ์ํ๋ง
- DBSCAN
- ADP
- numpy
- ๊ตฐ์งํ
Data Science LAB
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level 2 (ํ์ผ๋ช ์ ๋ ฌ) ๋ณธ๋ฌธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฐ์ต level 2 (ํ์ผ๋ช ์ ๋ ฌ)
ใ ใ ใ ใ 2022. 11. 6. 19:021. ๋ฌธ์ ์ค๋ช
์ธ ์ฐจ๋ก์ ์ฝ๋ฉ ํ ์คํธ์ ๋ ์ฐจ๋ก์ ๋ฉด์ ์ด๋ผ๋ ๊ธฐ๋๊ธด ๋ธ๋ผ์ธ๋ ๊ณต์ฑ๋ฅผ ๋ฌด์ฌํ ํต๊ณผํด ์นด์นด์ค์ ์ ์ฌํ ๋ฌด์ง๋ ํ์ผ ์ ์ฅ์ ์๋ฒ ๊ด๋ฆฌ๋ฅผ ๋งก๊ฒ ๋์๋ค.
์ ์ฅ์ ์๋ฒ์๋ ํ๋ก๊ทธ๋จ์ ๊ณผ๊ฑฐ ๋ฒ์ ์ ๋ชจ๋ ๋ด๊ณ ์์ด, ์ด๋ฆ ์์ผ๋ก ์ ๋ ฌ๋ ํ์ผ ๋ชฉ๋ก์ ๋ณด๊ธฐ๊ฐ ๋ถํธํ๋ค. ํ์ผ์ ์ด๋ฆ ์์ผ๋ก ์ ๋ ฌํ๋ฉด ๋์ค์ ๋ง๋ค์ด์ง ver-10.zip์ด ver-9.zip๋ณด๋ค ๋จผ์ ํ์๋๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฒ์ ๋ฒํธ ์ธ์๋ ์ซ์๊ฐ ํฌํจ๋ ํ์ผ ๋ชฉ๋ก์ ์ฌ๋ฌ ๋ฉด์์ ๊ด๋ฆฌํ๊ธฐ ๋ถํธํ๋ค. ์์ปจ๋ ํ์ผ ๋ชฉ๋ก์ด ["img12.png", "img10.png", "img2.png", "img1.png"]์ผ ๊ฒฝ์ฐ, ์ผ๋ฐ์ ์ธ ์ ๋ ฌ์ ["img1.png", "img10.png", "img12.png", "img2.png"] ์์ด ๋์ง๋ง, ์ซ์ ์์ผ๋ก ์ ๋ ฌ๋ ["img1.png", "img2.png", "img10.png", img12.png"] ์์ด ํจ์ฌ ์์ฐ์ค๋ฝ๋ค.
๋ฌด์ง๋ ๋จ์ํ ๋ฌธ์ ์ฝ๋ ์์ด ์๋, ํ์ผ๋ช ์ ํฌํจ๋ ์ซ์๋ฅผ ๋ฐ์ํ ์ ๋ ฌ ๊ธฐ๋ฅ์ ์ ์ฅ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ๊ธฐ๋ก ํ๋ค.
์์ค ํ์ผ ์ ์ฅ์์ ์ ์ฅ๋ ํ์ผ๋ช ์ 100 ๊ธ์ ์ด๋ด๋ก, ์๋ฌธ ๋์๋ฌธ์, ์ซ์, ๊ณต๋ฐฑ(" "), ๋ง์นจํ("."), ๋นผ๊ธฐ ๋ถํธ("-")๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ํ์ผ๋ช ์ ์๋ฌธ์๋ก ์์ํ๋ฉฐ, ์ซ์๋ฅผ ํ๋ ์ด์ ํฌํจํ๊ณ ์๋ค.
ํ์ผ๋ช ์ ํฌ๊ฒ HEAD, NUMBER, TAIL์ ์ธ ๋ถ๋ถ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
- HEAD๋ ์ซ์๊ฐ ์๋ ๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ต์ํ ํ ๊ธ์ ์ด์์ด๋ค.
- NUMBER๋ ํ ๊ธ์์์ ์ต๋ ๋ค์ฏ ๊ธ์ ์ฌ์ด์ ์ฐ์๋ ์ซ์๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์์ชฝ์ 0์ด ์ฌ ์ ์๋ค. 0๋ถํฐ 99999 ์ฌ์ด์ ์ซ์๋ก, 00000์ด๋ 0101 ๋ฑ๋ ๊ฐ๋ฅํ๋ค.
- TAIL์ ๊ทธ ๋๋จธ์ง ๋ถ๋ถ์ผ๋ก, ์ฌ๊ธฐ์๋ ์ซ์๊ฐ ๋ค์ ๋ํ๋ ์๋ ์์ผ๋ฉฐ, ์๋ฌด ๊ธ์๋ ์์ ์ ์๋ค.
์ ๋ ฅ ํ์
์ ๋ ฅ์ผ๋ก ๋ฐฐ์ด files๊ฐ ์ฃผ์ด์ง๋ค.
- files๋ 1000 ๊ฐ ์ดํ์ ํ์ผ๋ช ์ ํฌํจํ๋ ๋ฌธ์์ด ๋ฐฐ์ด์ด๋ค.
- ๊ฐ ํ์ผ๋ช ์ 100 ๊ธ์ ์ดํ ๊ธธ์ด๋ก, ์๋ฌธ ๋์๋ฌธ์, ์ซ์, ๊ณต๋ฐฑ(" "), ๋ง์นจํ("."), ๋นผ๊ธฐ ๋ถํธ("-")๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ํ์ผ๋ช ์ ์๋ฌธ์๋ก ์์ํ๋ฉฐ, ์ซ์๋ฅผ ํ๋ ์ด์ ํฌํจํ๊ณ ์๋ค.
- ์ค๋ณต๋ ํ์ผ๋ช ์ ์์ผ๋, ๋์๋ฌธ์๋ ์ซ์ ์๋ถ๋ถ์ 0 ์ฐจ์ด๊ฐ ์๋ ๊ฒฝ์ฐ๋ ํจ๊ป ์ฃผ์ด์ง ์ ์๋ค. (muzi1.txt, MUZI1.txt, muzi001.txt, muzi1.TXT๋ ํจ๊ป ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ ์๋ค.)
์ถ๋ ฅ ํ์
์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌ๋ ๋ฐฐ์ด์ ์ถ๋ ฅํ๋ค.
2. ๋ด ํ์ด
- ์ ํ๋ : 55%
import re
def solution(files):
answer = []
for i in files:
number = re.findall('\d+', i)[0]
head, tail = re.split('\d+', i)
answer.append([head, number, tail])
answer.sort(key=lambda x:(x[0].lower(),int(x[1])))
answer = [''.join(x) for x in answer]
return answer
tail์ ์ซ์๊ฐ ์กด์ฌํ ์ ์์
import re
def solution(files):
answer = []
for i in files:
number = re.findall('\d+', i)
word = re.split('\d+', i)
if len(word) <=1:
answer.append([word[0], number[0]])
elif len(number)>=2:
answer.append([word[0], number[0],i.replace(word[0],'',1).replace(number[0],'',1)])
else:
answer.append([word[0], number[0], word[1]])
answer.sort(key=lambda x:(x[0].lower(),int(x[1])))
answer = [''.join(x) for x in answer]
return answer
1. re.findall()ํจ์๋ฅผ ์ฌ์ฉํด ๋ชจ๋ ์ซ์ ์ถ์ถ
2. ์ซ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ split() ํด์ ๋ฆฌ์คํธ๋ก ๋ฐํ
3. tail์ด ์๋ ๊ฒฝ์ฐ (len(word)<=1) : word[0]์ number[0] answer์ ์ถ๊ฐ
tail์ ์ซ์๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ (len(number)>=2): ๋ฌธ์์ด์์ word[0]์ number[0]๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๋ณํ ํ ์ถ๊ฐ
4. ๋, ์๋ฌธ์ ๊ตฌ๋ถํ์ง ์์ผ๋ฏ๋ก split๋ ๋ฌธ์์ด ๋ฆฌ์คํธ๋ฅผ ๊ธฐ์ค์ผ๋ก head๋ถ๋ถ์ ๋ชจ๋ ์๋ฌธ์๋ก ๋ณํ, number๋ถ๋ถ์ ์ ์ ๋ณํ ํ ์ ๋ ฌ
5. ๋ชจ๋ ๋ฆฌ์คํธ๋ฅผ join()ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํฉ์น ํ ๋ฐํ
3. ๋ค๋ฅธ ์ฌ๋ ํ์ด
import re
def solution(files):
a = sorted(files, key=lambda file : int(re.findall('\d+', file)[0]))
b = sorted(a, key=lambda file : re.split('\d+', file.lower())[0])
return b
1. ๋ฌธ์์ด์์ ์ซ์ ์ถ์ถ ํ ์ ๋ ฌ
2. ์ซ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด ๋ถํ ํ ๋ฆฌ์คํธ์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์๋ฌธ์๋ก ๋ณํํ์ฌ ์ ๋ ฌ