Python/Python Language 18

Numpy(๋„˜ํŒŒ์ด) ๋‚œ์ˆ˜(Random)์™€ ๋ถ„ํฌ๋„

from numpy import randomimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns   Random Numbers in NumPy (๋„˜ํŒŒ์ด ๋‚œ์ˆ˜) - ๋ฌด์ž‘์œ„๋ž€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ์ˆ˜ - ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๋‚œ์ˆ˜  randint()- ์ •์ˆ˜๋กœ ๋‚œ์ˆ˜ ์ƒ์„ฑ- ๊ฐ„ํŽธํ•˜๊ฒŒ ๋กœ๋˜๋ฒˆํ˜ธ ์ƒ์„ฑlt = random.randint(46, size=(5))print(lt)    rand() ๋ฌด์ž‘์œ„ ํ”Œ๋กฏ ์ƒ์„ฑ(Random Float) 0๊ณผ 1์‚ฌ์ด์˜ ๋ถ€๋™์†Œ์ˆ˜์  ์ƒ์„ฑ Float = random.rand() print(Float)      Data Distribution [๋ฐ์ดํ„ฐ ๋ฐฐํฌ] - ๊ฐ€๋Šฅํ•œ..

NumPy ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด์— ํšจ์œจ์ ์ธ UFUNC ํ•จ์ˆ˜ ๊ฐœ๋…

import numpy as np  NumPy ufunc๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…์„ ์ง€์›ํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ํฌ๊ธฐ์˜ ๋ฐฐ์—ด ๊ฐ„์—๋„ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ufunc๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ๋ฐฐ์—ด์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.  ์†Œ์ˆ˜์  ๋ฐ˜์˜ฌ๋ฆผํ•˜๊ธฐTruncation ์ž˜๋ฆผ ์†Œ์ˆ˜์ ์„ ์ œ๊ฑฐํ•˜๊ณ  0์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ถ€๋™์†Œ์ˆ˜์  ์ˆซ์ž๋ฅผ ๋ฆฌํ„ด trunc์™€ fix์‚ฌ์šฉ Rounding : ๋ฐ˜์˜ฌ๋ฆผ ์•ž์˜ ์ˆซ์ž ๋˜๋Š” ์†Œ์ˆ˜์ ์„ 1์”ฉ ์ฆ๊ฐ€Floor : ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‚ฎ์€ ์ •์ˆ˜๋กœ ๋‚ด๋ฆผ ์˜ˆ๋ฅผ๋“ค์–ด์„œ 3.16666 -> 3.0Ceil : ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ƒ์œ„ ์ •์ˆ˜๋กœ ์˜ฌ๋ฆผ ์˜ˆ๋ฅผ๋“ค์–ด์„œ 3.16666 -> 4.0 Logs 2์ง„์ˆ˜ 10์ง„์ˆ˜์—์„œ ๋กœ๊ทธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค ๋กœ๊ทธ๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์š”์†Œ์— -inf(๋ฌดํ•œ๋Œ€) ๋˜๋Š” inf(๋ฌดํ•œ๋Œ€)๋ฅผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค log..

Numpy ๋ฐฐ์—ด(Array)์— ๋Œ€ํ•œ ๊ฐœ๋… ์„ค๋ช…

NumPy [Numerical Python]- ๋ฐฐ์—ด ์ž‘์—…์— ์‚ฌ์šฉ๋˜๋Š” Python๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋‹ค - ์„ ํ˜• ๋Œ€์ˆ˜ํ•™, ํ‘ธ๋ฆฌ์— ๋ณ€ํ™˜ ๋ฐ ํ–‰๋ ฌ ์˜์—ญ์—์„œ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ๋„ ์žˆ๋‹ค - ์ˆซ์ž ํŒŒ์ด์ฌ์„ ์˜๋ฏธํ•œ๋‹ค - List๋Š” ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ ค์„œ ์ตœ๋Œ€ 50๋ฐฐ ๋น ๋ฅธ ๋ฐฐ์—ด ๊ฐ์ฑ„๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค ์„ค์น˜ pip install numpyimport numpy as np     #๋ณ„์นญ np   ์Šฌ๋ผ์ด์‹ฑ ์ธ๋ฑ์Šค์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ผ์ŠคํŠธ์ธ๋ฑ์Šค ๋ฏธํฌํ•จ Arr = np.array([1,2,3,4,5,6,7]) print(Arr[1:5])  Numpy์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•i - ์ •์ˆ˜ b - ๋ถ€์šธ u - ๋ถ€ํ˜ธ ์—†๋Š” ์ •์ˆ˜ c - float m - timedelta M - datetime O - object S - string U..

๋žŒ๋‹ค(Lambda) : ์ต๋ช… ํ•จ์ˆ˜ ๊ฐœ๋… ์„ค๋ช…

Lambda ์ธ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ‘œํ˜„์‹์„ ํ•˜๋‚˜๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ต๋ช… ํ•จ์ˆ˜ ๋žŒ๋‹คํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋‹ค๋ฅธ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ๋” ์ž˜ ๋“œ๋Ÿฌ๋‚œ๋‹ค #1) q = lambda a: a + 10 print(q(5)) #=> 15  #2) ์ธ์ˆ˜ a,b๋ฅผ ์š”์•ฝํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ด x = lambda m, n, b : m + n + b print(x(5,6,3))  #3) ๋™์ผํ•œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜์—ฌ ๋™์ผํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋‘๊ธฐ๋Šฅ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๋ณ€์ˆ˜ ๋‘๊ฐœ๋ฅผ ์„ค์ •ํ•˜์—ฌ ๊ฐ’์„ ๋ฆฌํ„ดdef cuc(n):     return lambda z : z * n mydoubler = cuc(2) mytripler = cuc(3)  print(mydoubler(11)) print(mytripler(11))

์ •๊ทœ์‹ ํ•จ์ˆ˜ (Python RegEx)

Python RegEx [์ •๊ทœ์‹] - ๊ฒ€์ƒ‰ ํŒจํ„ด์„ ํ˜•์„ฑํ•˜๋Š” ์ผ๋ จ์˜ ๋ฌธ์ž - ๋ฌธ์ž์—ด์— ์ง€์ •๋œ ๊ฒ€์ƒ‰ ํŒจํ„ด์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค - ๋‚ด์žฅํŒจํ‚ค์ง€์ด๋ฉฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค  import re #๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ The๋กœ ์‹œ์ž‘ํ•˜๊ณ  Spain์œผ๋กœ ๋๋‚˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค  txt = "The rain in Spain" x = re.search("^The.*Spain$",txt) if x:     print("Yes! match!") else:     print("No match")   ์ •๊ทœ์‹ ํ•จ์ˆ˜1) findall : ๋ชจ๋“  ์ผ์น˜ ํ•ญ๋ชฉ์ด ํฌํ•จ๋œ ๋ชฉ๋ก์„ ๋ฆฌํ„ด 2) search : ๋ฌธ์ž์—ด์—์„œ ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ผ์น˜ํ•˜๋Š” ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด Match๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด 3) split : ์ผ์น˜ํ• ๋•Œ ๋งˆ๋‹ค ๋ฌธ์ž์—ด์ด ๋ถ„ํ• ๋œ..

ํŒŒ์ด์ฌ Datetime ํฌ๋งท ๊ฐ€์ด๋“œ: strftime ์ฝ”๋“œ ์˜ˆ์‹œ์™€ ์„ค๋ช…

from datetime import datetime %a : ํ‰์ผ ์งง์€ ๋ฒ„์ „ ex)mon %A : ํ‰์ผ full ๋ฒˆ์ „ ex)monday %w : ์ฃผ ๋„˜๋ฒ„ 0-6 0 is sunday %d : day of month 01-31 %b : ๋‹ฌ ์ด๋ฆ„ ์ˆ ๋ฒ„์ „ %B : ๋‹ฌ ์ด๋ฆ„ ํ’€ ๋ฒ„์ „ %m : 1๋…„ 12๋‹ฌ 01-12 %y : ๋…„๋„ ์ˆ๋ฒ„์ „ (์„ธ๊ธฐ๋ฅผ ๋บธ) ex)23 %Y : ๋…„๋„ ํ’€๋ฒ„์ „ %H : Hour ์‹œ๊ฐ„ 00-23 %I : Hour ์‹œ๊ฐ„ 00-12 %p : ์˜ค์ „์ด๋ƒ ์˜คํ›„๋ƒ AM/PM %M : Minute 00-59 ๋ถ„ %s : Second 00-59 ์ดˆ %f : ๋งˆ์ดํฌ๋กœ์ดˆ 000000-999999 %z : utc offset => ์„ธ๊ณ„ํ˜‘์ •์‹œ ๊ฐ„๊ฒฉ %Z : Timezone %j : ๋…„ 365 %U : ์ผ์š”์ผ์ด..

SciPy(Scientific Python) Numpy๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ณผํ•™ ๊ณ„์‚ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

SciPy[Scientific Python] : Numpy๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ณผํ•™๊ณ„์‚ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.: ์ฃผ๋กœ ํŒŒ์ด์ฌ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ ์ผ๋ถ€ ์„ธ๊ทธ๋จผํŠธ๋Š” c๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค   SciPy์„ค์น˜ํ•˜๊ธฐ     ! pip install scipy    Unit Categories print(dir(constants))  #dir์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๋‹จ์œ„ ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค  - scipy๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹จ์œ„์— ๋Œ€ํ•œ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฏธํ„ฐ๋ฒ• [Metric]: Scipy ๋ฐ Numpy์—์„œ๋Š” ๊ฑฐ๋ฆฌ ๋ฐ ๊ธธ์ด๋ฅผ ์ธก์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” SI ๋‹จ์œ„์ธ ๋ฏธํ„ฐ(m)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฐ”์ด๋„ˆ๋ฆฌ [Binary]: ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ์€ Numpy์—์„œ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค๊ฐ๋„ [Angle]: Nump..

๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„(DataFrame)์˜ ๋ฐฐ์—ด ์กฐ์ธ(join)๊ณผ ๋ฐฐ์—ด๋ถ„ํ• (split)

๋ฐฐ์—ด ์กฐ์ธ- ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฐฐ์—ด๋‚ด์šฉ์„ ๋‹จ์ผ ๋ฐฐ์—ด์— ๋„ฃ๋Š” ๊ฒƒ์„ ์˜๋ฏธ Numpy์—์„œ๋Š” ์ถ•์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด์„ ์กฐ์ธํ•œ๋‹คstack() : ์—ฐ๊ฒฐ๊ณผ ๋™์ผํ•˜๊ณ  ์ฐจ์ด์ ์€ ์Šคํƒœํ‚น์ด ์ƒˆ์ถ•์„ ๋”ฐ๋ผ ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค ๋ช…์‹œ์ ์œผ๋กœ ์ „๋‹ฌ๋˜์ง€ ์•Š์œผ๋ฉด 0์œผ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค2) hstack() : ํ–‰์„ ๋”ฐ๋ผ ์Œ“๋Š” ๋„์šฐ๋ฏธ 3) vstack() : ์—ด์„ ๋”ฐ๋ผ ์Œ“๋Š” ๋„์šฐ๋ฏธ ๊ธฐ๋Šฅ์„ ์ œ๊ณต4) dstack() : ๊นŠ์ด์™€ ๋™์ผํ•œ ๋†’์ด๋ฅผ ๋”ฐ๋ผ ์Œ“๋Š” ๋„์šฐ๋ฏธ ๊ธฐ๋Šฅ์„ ์ œ๊ณต stack : ์ƒˆ๋กœ์šด ๋ฒ„ํ‹ฐ์ปฌ ์ถ•์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹คver1 = np.array([1,2,3])ver2 = np.array([4,5,6])verti = np.stack((ver1, ver2), axis=1)print(verti) hstack() : ํ–‰์„ ๋”ฐ๋ผ ์Œ“๊ธฐvstack() : ํ•จ์ˆ˜๋Š” ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„..

๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„(DataFrame)์˜ column, index ์„ค์ • ๋ฐฉ๋ฒ•

์ปฌ๋Ÿผ(column)์„ ์ธ๋ฑ์Šค(index)๋กœ ๋งŒ๋“ค๊ธฐ df.set_index('name', inplace = True) bikepantsshirtssuitsname    A203015.045.0B1552.07.0C2030NaNNaN    ๋‹ค์‹œ index๋ฅผ ์ปฌ๋Ÿผ์œผ๋กœ ๋งŒ๋“ค๊ธฐ df.reset_index(inplace = True)   name bike pantsshirts suits 0A203015.045.01B1552.07.02C2030NaNNaN  ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ(column) ๋งŒ๋“ค๊ธฐ # ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ name์„ ๋งŒ๋“ค๋˜, ๋ฐ์ดํ„ฐ๋Š” A,B,C๋ผ๊ณ  ๋„ฃ์ž.  hatpantsshirts suits 0203015.045.011552.07.022030NaNNaN  df['name'] = ['A' , 'B' , 'C'] df ..

Pandas์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์ž์—ด(Str) ํ•จ์ˆ˜

https://pandas.pydata.org/docs/reference/api/pandas.Series.str.upper.html pandas.Series.str.upper — pandas 2.2.1 documentationConverts first character of each word to uppercase and remaining to lowercase.pandas.pydata.org ์ด๊ณณ์—์„œ ํŒ๋‹ค์Šค์˜ ํ•จ์ˆ˜์ •๋ณด๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.    df.str.replace('a','b')  ๋ฐ์ดํ„ฐ์˜ ๋ฌธ์ž์—ด a๋ฅผ b๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค   - > df.str.replace('$','').astype(float)            #astype(float) ๋Š” df์˜ type์„ ๋ชจ๋‘ float๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. str, in..