일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코테
- 디자인 패턴
- OOP
- 합성곱 신경망
- 기계학습
- 코딩테스트
- 넘파이 기초
- 머신러닝
- 코딩테스트실력진단
- NumPy
- lambda
- 데이터 분석
- Machine Learning
- 넘파이 배열
- 클러스터링
- cpp class
- 데이터 마이닝
- 파이썬
- 자바
- cpp
- 차원축소
- 코드트리
- 넘파이
- java
- numpy 기초
- ack
- python
- Design Pattern
- c++
- 네트워크 기초
- Today
- Total
목록NumPy (11)
준비하는 대학생
K-means 알고리즘 K-means 알고리즘은 가장 간단하면서도 널리 사용되는 클러스터링 알고리즘 중 하나입니다. 이 알고리즘은 데이터를 K개의 클러스터로 나누는 방법으로 동작합니다. K-means 알고리즘의 동작 과정은 다음과 같습니다. K개의 클러스터 중심점(centroid)을 임의로 선택합니다. 각 데이터 포인트들을 가장 가까운 클러스터 중심점에 할당합니다. 할당된 데이터 포인트들의 평균값을 계산하여 새로운 클러스터 중심점을 업데이트합니다. 2-3단계를 반복합니다. 클러스터 할당이 변하지 않거나, 미리 정한 반복 횟수에 도달하면 알고리즘이 종료됩니다. K-means 알고리즘의 단점 중 하나는, 초기 클러스터 중심점의 위치가 무작위로 결정되기 때문에, 다른 결과를 도출할 수 있다는 것입니다. 따라서..
1. K-means 클러스터링이란? K-means 클러스터링은 군집분석의 한 방법으로, 데이터를 비슷한 특징을 가진 그룹으로 나누는 기법입니다. K-means 클러스터링은 각 데이터 포인트와 그룹의 중심 간의 거리를 측정하여 가장 가까운 그룹에 할당하는 방식으로 동작합니다. 이를 반복하여 그룹의 중심을 업데이트하고, 그룹 간의 거리를 줄여나가며 클러스터를 형성합니다. K-means 클러스터링은 비계층적인 방식으로 동작하며, 클러스터의 개수를 미리 지정해주어야 합니다. 클러스터의 개수는 사용자가 정해주어야 하며, 적절한 클러스터 개수를 선택하는 것이 중요합니다. 2. K-means 클러스터링 예시 K-means 클러스터링 예시를 보겠습니다. 먼저, 필요한 라이브러리들을 import합니다. import nu..
1. 난수 생성의 기본: random.rand()와 random.randn() NumPy의 random 모듈에서 가장 기본적인 난수 생성 함수는 random.rand()와 random.randn()입니다. 1.1. random.rand() random.rand() 함수는 0과 1 사이의 균일 분포(uniform distribution)를 따르는 난수를 생성합니다. 인자로는 원하는 배열의 크기를 지정합니다. 예시 import numpy as np # 0과 1 사이의 난수 생성 rand_num = np.random.rand(3, 3) print(rand_num) 결과 [[0.42656567, 0.707024 , 0.93653248], [0.1935818 , 0.56052649, 0.59793347], [0...
1. 슬라이싱 기본 개념 파이썬에서 슬라이싱은 리스트, 튜플, 문자열 등의 시퀀스 자료형에서 연속된 범위의 데이터를 추출하는 기능을 제공합니다. 슬라이싱은 다음과 같은 형식으로 사용합니다. sequence[start:stop:step] 여기서 start는 시작 인덱스, stop은 종료 인덱스, step은 간격을 나타냅니다. start와 stop은 생략 가능하며, 생략 시 기본적으로 start는 0, stop은 시퀀스의 길이로 설정됩니다. step은 생략 가능하며, 생략 시 기본적으로 1로 설정됩니다. 2. NumPy 확장 슬라이싱 NumPy에서는 기본 슬라이싱 기능을 확장하여 다차원 배열에서도 적용할 수 있습니다. 각 축(axis)에 대해 슬라이싱을 적용하여 다양한 형태의 데이터를 추출할 수 있습니다. ..
1. NumPy sort 함수 NumPy의 sort() 함수는 배열을 오름차순으로 정렬하는데 사용됩니다. 기본적으로 numpy.sort() 함수는 다음과 같은 형태로 사용할 수 있습니다. import numpy as np arr = np.array([4, 2, 1, 5, 3]) sorted_arr = np.sort(arr) print(sorted_arr) 결과 [1 2 3 4 5] 2. 정렬 알고리즘 선택하기 numpy.sort() 함수는 선택적으로 정렬 알고리즘을 지정할 수 있습니다. 이때 kind 매개변수를 사용하여 선택할 수 있는 알고리즘은 다음과 같습니다. 'quicksort': 퀵 정렬 (기본값) 'mergesort': 병합 정렬 'heapsort': 힙 정렬 'stable': 안정적인 정렬 알..
넘파이 배열에서의 중복 제거 넘파이 배열에서 중복된 값을 제거하기 위해서는 unique() 함수를 사용합니다. 이 함수는 넘파이 배열에서 중복된 값들을 제거한 배열을 반환해줍니다. 예를 들어, 다음과 같이 중복된 값이 있는 1차원 배열이 있다고 가정해봅시다. import numpy as np arr = np.array([1, 2, 3, 2, 1, 4, 5, 4, 6, 5]) unique_arr = np.unique(arr) print(unique_arr) # [1 2 3 4 5 6] 위의 코드에서는 중복된 값이 포함된 1차원 배열을 생성하고 있습니다. unique() 함수를 이용하여 중복된 값을 제거하고, 그 결과로 새로운 배열 unique_arr을 생성할 수 있습니다. unique() 함수는 디폴트로 ..
넘파이 배열 인덱싱 넘파이 배열에서의 인덱싱은 다음 4가지 방법으로 이루어집니다. 단일 값 추출 : 특정한 위치의 데이터 선택 슬라이싱(Slicing) : 연속된 인덱스 위치의 데이터 선택 팬시 인덱싱(Fancy Indexing) : 인덱스 집합을 리스트형태로 지정하여 데이터 선택 불린 인덱싱(Boolean Indexing) : True/False 기반으로 True에 해당하는 인덱스 위치의 데이터 선택 이제 각각의 방법에 대해 자세히 알아보겠습니다. 1. 단일 값 추출 단일 값 추출은 넘파이 배열에서 특정한 위치의 데이터를 선택하는 방법입니다. 이때 대괄호([]) 안에 인덱스를 지정하여 데이터를 선택합니다. 예를 들어, 다음과 같이 1차원 배열에서 단일 값 추출을 수행할 수 있습니다. import num..
넘파이 배열은 reshape() 함수를 이용하여 배열의 크기를 변경하거나 차원을 추가/제거할 수 있습니다. reshape() 함수 넘파이에서 reshape() 함수는 다음과 같이 정의됩니다. numpy.reshape(arr, newshape, order='C') arr: 변경하려는 배열 newshape: 변경하려는 배열의 새로운 shape order: 배열의 요소 순서. 'C'(기본값)는 C 언어 스타일의 요소 순서, 'F'는 포트란 스타일의 요소 순서 reshape() 함수는 arr 배열의 shape을 newshape으로 변경하여 새로운 배열을 반환합니다. 이때, 새로운 배열의 요소 개수는 원래 배열의 요소 개수와 동일해야 합니다. 만약 newshape으로 지정된 크기가 원래 배열의 크기와 다르면, r..