본문 바로가기

numpy13

데이터 인코딩(레이블 인코딩, 원-핫 인코딩) □ 데이터 전처리 ○ 데이터클린징 ○ 결손값 처리(NULL/NaN처리) ○ 데이터인코딩(레이블,원핫인코딩) *머신러닝은 문자열을 취급하지않기 때문에 숫자열로 치환해야함 ○ 데이터스케일링 ○ 범위 척도를 맞추는것 ○ 이상치 제거 ○ Feature 선택, 추출 및 가공 □ 데이터 인코딩 : 머신러닝 알고리즘은 문자열 데이터 속성을 입력 받지 않으며 모든 데이터는 숫자형으로 표현되야함 ○ 레이블(Lable) 인코딩 - LabelEncoder 클래스 - fit(), transform() 이용 #데이터 인코딩 : 레이블 인코딩 from sklearn.preprocessing import LabelEncoder items = ["TV","냉장고","전자랜지","컴퓨터","선풍기","선풍기","믹서","믹서"] # .. 2024. 4. 6.
비지도학습 : K-means(평균) 알고리즘 □ K-means(평균) 알고리즘 ○ 평균값이 클러스터 중심에 위치하기 때문에 클러스터 중심 또는 센트로이드라고 부름 ○ 무작위로 k개의 클러스터 중심을 정함 ○ 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 클러스터의 샘플로 지정 ○ 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경 ○ 클러스터 중심에 변화가 없을때까지 2번으로 돌아가 반복 □ 코드 **비지도학습이라 fit 과정에서 타겟데이터를 사용하지 않음. ○ 데이터 로드 #데이터 로드 import numpy as np fruits = np.load("C:/dPython/fruits_300.npy") fruits_2d = fruits.reshape(-1,100*100) #차원죽소를 통한 2차원 변경 for 모델훈련을 위해 fr.. 2024. 4. 6.
Numpy sort/argsort □ 기본적으로 오름차순 / 내림차순은 [::-1] □ np.sort(ndarray) : 인자로 들어온 행렬은 그대로 유지한 채 원 행렬의 정렬된 행렬 반환 □ ndarray.sort : 행렬 자체를 정렬한 형태로 변환하며 반환값은 None org_array = np.array([3,1,9,5]) print(org_array) print("\n") print("오름차순") sort_org_array = np.sort(org_array) print(sort_org_array) print("\n") print("내림차순") desc_sort_org_array = np.sort(org_array)[::-1] print(desc_sort_org_array) print("\n") org_array = np.arra.. 2024. 3. 14.
Numpy 차원축소 □ 차원추가 : .expand_dims(변수명, axis = 0 or 1) □ 차원축소 : .squeeze(변수명, axis = 0 or 1) #1차원 arr=np.array([1,2]) print(f"arr :\n{arr}") print(f"arr 차원 :\n{arr.ndim}") print("\n") #차원 추가 arr1=np.expand_dims(arr,axis=1) print(f"arr 차원추가 행방향 :\n{arr1}") print("\n") arr2=np.expand_dims(arr,axis=0) print(f"arr 차원추가 열방향 :\n{arr2}") print("\n") print(f"arr1 :\n{arr1}") print("\n") print(f"arr2 :\n{arr2}") prin.. 2024. 3. 9.
Numpy 배열연산4 □ 브로드캐스팅 #브로드케스팅 arr1 = np.array([[0,0,0],[1,1,1],[2,2,2]]) arr2 = np.array([[5,6,7]]) print(f"arr1 :\n{arr1}") print("\n") print(f"arr2 :\n{arr2}") print("\n") print(f"arr1 + arr2 :\n{arr1+arr2}") print("\n") arr3 = np.array([[1,1,1]]) arr4 = np.array([[0],[1],[2]]) print(f"arr3 :\n{arr3}") print("\n") print(f"arr3 :\n{arr4}") print("\n") print(f"arr3 + arr4 :\n{arr3+arr4}") 2024. 3. 9.
Numpy 배열연산3 #비교연산 arr1 = np.array([[1,2,3],[4,5,6]]) arr2 = np.array([[1,0,3],[4,-2,9]]) print(f"arr1 :\n{arr1}") print("\n") print(f"arr2 :\n{arr2}") print("\n") print(f"np.array_equal :\n{np.array_equal(arr1,arr2)}") print("\n") print(f"arr1 == arr2 :\n{arr1 == arr2}") print("\n") print(f"arr1 > arr2 :\n{arr1 > arr2}") print("\n") print(f"arr1 < arr2 :\n{arr1 < arr2}") #삼각함수 tri_array = np.array([[1,2,3],.. 2024. 3. 9.
Numpy 배열연산2 □ .min 최소값 / .max 열방향 / .mean 평균 / .std 표준편차 / .cumsum : 누적합 / .median 중간값 arr = np.array([[1,2,3],[0,1,4]]) print(f"arr : \n{arr}") print("\n") print(f"arr sum :\n{np.sum(arr)}") print("\n") print(f"arr min :\n{np.min(arr)}") print(f"arr max :\n{np.max(arr)}") print(f"arr max 열방향 :\n{arr.max(axis=1)}") print(f"arr mean 평균 :\n{np.mean(arr)}") print(f"arr mean 행방향 :\n{arr.mean(axis=1)}") print(f".. 2024. 3. 9.
Numpy 배열연산1 □ 사칙연산 arr1 = np.array([[1,2,3,4,5],[6,7,8,9,10]]) arr2 = np.array([[2,2,2,2,2],[2,2,2,2,2]]) print(f"2차원배열 arr1 : {arr1}") print('\n') print(f"2차원배열 arr2 : {arr2}") print('\n') print(f"arr1+arr2 : {arr1+arr2}") print(f"arr1+arr2 : {np.add(arr1,arr2)}") print('\n') print(f"arr1-arr2 : {arr1-arr2}") print(f"arr1-arr2 : {np.subtract(arr1,arr2)}") print('\n') print(f"arr1*arr2 : {arr1*arr2}") print.. 2024. 3. 9.
Numpy 특정범위로 N차원 배열생성 □ arange : 특정범위의 값을 가지는 N차원 배열 #0~9 범위에서 2씩 커지는 값으로 배열 생성 : 미만 a = np.arange(0,9,2) print(a) b = np.arange(start=3, stop=21, step=3) print(b) □ linspace(시작값, 끝값, 원소개수) : 특정범위의 값을 균등하게 배열생성 arr = np.linspace(0,20,30) □ logspace(시작값, 끝값, 원소개수, base=값) arr = np.logspace(1,10,10, base=2) □ 난수로 N차원 배열생성 및 히스토그램 arr = np.random.normal(0, 1, 10000) #0~1까지 10000개의 원소 생성 plt.hist(arr,bins=100) □ Seed을 통한.. 2024. 3. 8.