[넘파이 기초] 차원 추가/축소/ 변경 완벽 정리 이번 포스팅에서는 ndarray의 size는 유지하면서 차원을 변경하는 법에 대해 알아보도록 할게요. reshape을 이용한 차원 확대 1. 1차원 --> 2차원 이전시간에 언급했듯이 reshape은 말그대로 shape을 바꿔주는 api입니다. 내가 확장하고 싶은 차원의 위치에 1를 넣어주면 되는데요. import numpy as np a = np.arange(9) b = a.reshape((1,9)) c = a.reshape((9,1)) print(f"a: {a.shape}\n {a}\n") print(f"b: {b.shape}\n {b}\n") print(f"c: {c.shape}\n {c}\n") output : b는 row 위치에 1를 위치 시킴으로써 (9,)를 1개 가진 형태의 행렬을 만들어줍니.. 머신러닝,딥러닝/파이썬, 넘파이 구현 2021. 5. 12. [파이썬 중급] *args 사용법( 2편) 오늘 배울 내용은 *args입니다. 1편에서 다룬 *과는 뭐가 다른것일까요? *args는 쉽게 말해 함수에서 쓰는 *라고 보면 됩니다. 둘은 비슷하면서도 달라 매번 헷갈리는 녀석들인데요. 오늘 포스팅을 통해 두개가 무엇이 비슷하고 다른지 하나 하나 알아가보도록 합시다. 일반적인 형태에서 *사용과 함수에서 *사용의 비교 1) 먼저 복습차원에서 일반적인 * 사용을 보죠. 아래 코드의 결과가 무엇이 나올까요? a, b, *c = 10, 20, 'a', 'c' print(a) print(b) print(c) output : 1편에서 배웠던 것 처럼 c는 a와 , b가 값을 받고 남은 값들을 리스트로 형태로 부여 받게 됩니다. 바로 이어 함수에서 쓰이는 *를 볼까요? def func1(a, b, *c): prin.. 파이썬/파이썬 중급 2021. 5. 4. [넘파이 기초] bool ndarray로 인덱싱하기(np.nonzero, np.where) 지금까지는 int ndarray를 통해서만 인덱싱을 해보았습니다. 하지만 넘파이에선 int ndarray이외에도 bool ndarray인덱싱도 가능합니다. 자세한건 코드를 통해 확인해보시죠! bool ndarray 기본형 import numpy as np a = np.arange(5) print(f"ndarray: \n{a}") b_indices = np.array([True, False, True, False, True]) # indices는 a shape과 같아야한다. print(f"a[b_indices]: \n{a[b_indices]}") output : 코드를 보시면 감이 오시겠지만 b_indices를 True와 False 로 이루어진 boolean 형태의 array로 만듭니다.. 이때 b_ind.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 28. [넘파이 기초] 반올림, 올림, 버림 이번시간에는 넘파이를 이용해 반올림, 올림, 버림을 어떻게하는지, 그리고 소수점 몇째자리까지 나오게 하고싶을때 어떻게 하는지 알아보도록 하겠습니다. 반올림(np.around/ np.round/ x.round) import numpy as np x = np.random.uniform(-5, 5, (5,)) # 반올림의 다양한 표현 np_around = np.around(x, decimals =2) np_round = np.round(x, decimals=2) x_round = x.round(decimals=2) print(f"x: n {x}\n") print(f"np_around: \n {np_around}") print(f"np_round: \n {np_round}") print(f"x_round: \n.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 27. [넘파이 기초] axis, keepdims 마스터하기 안녕하세요 이번 시간에는 넘파이를 이용할때마다 자주보는 axis, keepdims! 하지만 할때마다 헷갈리는 두녀석을 완벽하게 이해하는 시간을 가져보고자 합니다. "axis = 0" 과 "axis =1" | np.sum() 연산 1. axis = 0일 때 import numpy as np a= np.arange(12).reshape((3,-1)) # 3행으로만들고 나머지는 원소갯수에 따라 알아서 맞추라고 지정. sum_ = a.sum(axis=0) # np.sum(a,axis=0)이랑 같음 print("ndarray: {}\n{}".format(a.shape, a)) print("ndarray.sum(axis=0): {}\n{}".format(sum_.shape,sum_)) output : 2. axis.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 23. [matplotlib 기초] 눈금/눈금선 커스터마이징 | ax.tick_params, ax.set_xticks 많은 분들이 matplotlib을 이용할때 y축 눈금을 없애고 싶기도하고, 눈금선을 진하게 만들고 싶기도하고 본인이 원하는대로 커스터 마이징을 하고싶은데 막막하셨을 겁니다. 이번시간을 통해서 완벽하게 커스터마이징 능력을 키워보아요! ax.tick_params 1. 눈금 레이블/글자 크기 조절 import matplotlib.pyplot as plot fig, ax = plt.subplots(figsize=(7,7)) ax.tick_params(labelsize=20) output : 디폴트 값으로 적용시 label 크기는 x, y축 label에 모두 적용됩니다. x 나 y축만 적용하고 싶다면..? import matplotlib.pyplot as plt fig, ax = plt.subplots(figsi.. 머신러닝,딥러닝/matplotlib 시각화 2021. 4. 22. [넘파이 기초] int ndarray로 인덱싱 (indexing) 하기 넘파이에서는 기본 파이썬에서 제공하지 않는 강력한 무기가 있습니다. 그건 바로 ndarray를 이용한 인덱싱이 가능하다는 점입니다. ndarray 인덱싱 기본 형태 import numpy as np a = np.arange(10) print(f"ndarray: \n{a}\n") indices = np.array([0, 3, 4]) print(a[indices]) output : indices 변수 안에 np.array를 지정하고 그 array안에 원하는 값의 인덱스를 넣어주는 형태입니다. ' 인덱스들의 배열인 indices를 다시 a[indices] 형태로 넣어주면 최종적으로 인덱스의 해당하는 값들이 출력되는 것이지요. 기본 파이썬 문법에서는 a[0,3,4] 이런식으로 한번에 넣을 수 없는데 넘파이를 사.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 22. [파이썬 중급] unpacking에 대해서 잘 알고 계시나요?(*, ** 사용법) 안녕하세요 혹시 여러분은 UNPACKING(언패킹)에 대해서 잘 이해하고 쓰시고 계신가요? 아래 문제를 풀어보시겠어요? l1 = [1,2,3] l2 = ['python'] l3 = [*l1,*l2] a, *b, (c, *d) = l3 print(a) print(b) print(c) print(d) a, b, c, d 에 각각 어떤 값이 나올 것 같으신가요.? 혹시 헷갈리신다면 이번 포스팅을 통해 확실히 개념을 익히시기 바랍니다.. 해당 코드에 정답은 마지막에 공부를 마친 후 다시 보죠! 기본 unpacking a, b, c = [1, 2, 3] # 리스트 print(a) print(b) print(c) 보시는것처럼 오른쪽에 위치한 리스트의 각 원소들이 위치에 상응하는 a, b, c에 들어가는 형태입니다... 파이썬/파이썬 중급 2021. 4. 22. [넘파이 기초] broadcasting(브로드 캐스팅) 파헤치기 2편 1편에 이어 2편 시작하겠습니다. [넘파이 기초] broadcasting(브로드 캐스팅) 파헤치기 1편 오늘은 넘파이를 사용할때 필수적으로 사용하는 기능인 broadcasting 에 대해서 알아보도록 하겠습니다. 사실 이 녀석은 잘알면 너무나도 편한 기능이지만 애매 하게 알면.. 혼란을 야기하는 녀석 yeko90.tistory.com 2편에서는 연산하는 두 값이 서로 다른 차원일때 내부적으로 어떻게 연산이 되고 무엇을 주의해야하는지 알아보도록 하겠습니다. 스칼라값과 연산 import numpy as np a = np.array(3) # 스칼라값 = 0차 u = np.arange(5) # 1차 print("shapes: {}/{}".format(a.shape, u.shape)) print("a: ", a).. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 17. [파이썬 중급] 클래스(CLASS) body 스코프(scope) 개념 정리! 먼저 여러분이 클래스 바디 스코프(class body scope)에 대한 개념을 잘 알고 있는지 테스트 해보겠습니다.! 아래의 코드를 보시고 어떤 값이 출력 될것 같은가요? MAJOR = 0 MINOR = 0 REVISION = 1 def gen_class(): MAJOR = 0 MINOR = 4 REVISION = 2 class Language: MAJOR = 3 MINOR = 7 REVISION = 4 def version(self): return '{}.{}.{}'.format(MAJOR, MINOR, REVISION) return Language() # 객체 생성 lang = gen_class() lang.version() 정답은... 0.4.2 입니다. 위 문제를 틀리신 분들은 끝까지 이번 내용.. 파이썬/파이썬 중급 2021. 4. 16. [넘파이 기초] broadcasting(브로드 캐스팅) 파헤치기 1편 오늘은 넘파이를 사용할때 필수적으로 사용하는 기능인 broadcasting 에 대해서 알아보도록 하겠습니다. 사실 이 녀석은 잘알면 너무나도 편한 기능이지만 애매 하게 알면.. 혼란을 야기하는 녀석이기도 한데요. 왜냐하면 shape에 따라 작동을 안하기도 하고, 또한 차원에 따라 다른 동작을 하거든요! 각 차원별로 어떻게 내부적으로 연산을 하는지 그림을 통해서 하나하나 뜯어보도록 하겠습니다. 브로드캐스팅이 어떤 기능인지 낯선 분들을 위해 간단한 설명을 하고 시작하도록 하겠습니다. 브로드 캐스팅(broadcasting) 실제 수학에서는 (2,3,4) X 2 = (4,6,8) 이런식으로 가능하죠? 하지만 실제수학에서는 (2,3,4) + (2)에 연산은 가능하지 않습니다. 하지만.. 넘파이에선 가능하죠. im.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 16. [넘파이 기초] flatten 와 ravel의 차이 | 메모리 관리(.copy() vs .view()) 넘파이에서 이 둘의 기능은 사실상 같습니다. 그래서 아마 많은 분들이 둘이 어떤 차이가 있을지 잘 모르실텐데요. 오늘은 이 둘의 기능 및 차이를 알아보고 주의해야 할점을 공부해봅시다. 먼저 둘을 이해하기 위해선 .copy()와 .view() 메소드를 통해 메모리 공유에 대한 개념부터 알아야 합니다. .copy() import numpy as np a = np.arange(5) # array([0, 1, 2, 3, 4]) b = a.copy() b[0] = 100 print(a) print(b) 위와 같이 5개의 원소를 가진 배열을 a 변수에 넣고. 이 값을 복사(copy)에서 다시 b에 넣은 후 b[0] 의 값을 바꾼 경우입니다. a, b 의 값이 어떻게 나올까요? 위와같이 b배열의 값을 변경했으니 b의.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 10. 이전 1 ··· 27 28 29 30 31 32 다음