[넘파이 기초] 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. [넘파이 기초] 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. [넘파이 기초] 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. [넘파이 기초] np.resize vs np.reshape 시리즈[2] 데이터 분석을 하다보면 A = ~~~~ B = A.copy() 이런식으로 .copy()라는 메소드가 쓰인 코드를 보신적이 많이 있으실거에요. 이건 왜 쓰는것일까요? copy()를 쓰지않으면 A 에 담겨있는 값을 B라는 변수명에 담는데.. 같은 메모리를 공유를 하게되요. 다시 말하면 같은 공간을 쓰면서 명칭을 두개나 가지고있게 되는거죠.. 그래서 그게 뭐가 문제란 말인가? 쉽게 말하면 같은 공간을 쓰기때문에 B값을 수정하면 원래 값인 A값도 변경되는 문제가 발생됩니다. B값을 수정해도 변경하지 않게하려면 B만을 위한 새로운 공간을 만들어줘야 해요 이때 사용하는게 copy() 라는 메소드입니다. 지금 이해가 당장 되지 않아도 좋아요! 우리가 알아볼 reshape와 resize의 비교를 통해서 차츰차츰 알아가.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 9. [넘파이 기초] np.resize vs np.reshape 시리즈[1] 넘파이를 사용하다보면 자주 만나게 되는 두녀석! 비슷 한듯 다른 두 API np.resize, np.reshape 여러분들은 잘 사용하고 계신가요? 아마 비슷한거같은데 다르기도 한것같고 애매하신분들이 많을 것 같습니다. 오늘은 이 둘의 사용법과 차이를 확인하고 , 잘못 사용하면 어떤 문제가 발생될 수 있는것까지 확인해보는 시간을 가지도록 하겠습니다. np.reshape 먼저 reshape의 사용법입니다. import numpy as np # numpy 를 import 해주고요! a= np.arange(10) # 1~9 까지 숫자 배열을 a 변수에 넣어줍니다. b = np.reshape(a, (2,5)) # 2행 5열 형태로 변경해줘!(re + shape) print("a ndarray :{}\n a sh.. 머신러닝,딥러닝/넘파이,numpy 2021. 4. 9. 이전 1 2 3 4 5 다음