1. 난수 생성 난수 생성은 컴퓨터 프로그래밍에서 자주 사용되는 기능 중 하나입니다. 통계적 분석, 머신러닝, 시뮬레이션, 암호화 등 다양한 분야에서 사용됩니다. NumPy는 효과적인 난수 생성을 위한 몇 가지 함수를 제공합니다. 아래 함수들은 모두 랜덤 값을 생성하는 역할을 합니다. 이 값들은 모두 의사 난수(pseudo random number)입니다. 즉, 수학적 알고리즘을 통해 생성된 랜덤한 값입니다. np.random.rand() : 0과 1 사이에서 균일 분포를 따르는 난수를 생성합니다. 함수에 전달된 인수의 개수에 따라 다차원 배열을 생성하는 데 사용할 수 있습니다. 예를 들어, np.random.rand(5,3)을 호출하면 5x3 크기의 배열이 생성되며, 각 요소는 0과 1 사이의 랜덤한 ..
1. 벡터화 연산 벡터화 연산은 데이터 배열에 대해 반복적인 연산을 빠르고 효율적으로 수행할 수 있는 방법을 말합니다. 이는 NumPy의 핵심 기능 중 하나이며, 특히 대용량 데이터 처리에서 훨씬 더 빠른 결과를 제공합니다. 이는 'for'문이나 다른 반복 구조를 사용하지 않고도 배열의 모든 요소에 대해 연산을 수행하므로, 코드가 간결해지고 실행 시간이 단축됩니다. 아래 코드에서 두 개의 NumPy 배열 'a'와 'b'를 생성하였습니다. 그 다음에는 '+' 연산자를 사용하여 'a'와 'b'를 더하는 벡터화 연산을 수행합니다. 이 경우 '+' 연산자는 배열 'a'와 'b'의 모든 요소 간에 요소별로(add element-wise) 작동합니다. 따라서 이렇게 하면 'c'라는 새로운 배열이 생성되며, 이 배열..
1. 파일 입출력 Numpy는 배열 데이터를 파일에 저장하거나 파일에서 로드하는 데 사용할 수 있는 함수를 제공합니다. Numpy는 데이터 저장을 위한 기본적인 2가지 함수를 제공합니다. 이는 np.save, np.load이며, 이들을 사용하여 Numpy 배열을 저장하고 불러올 수 있습니다. 또한, np.savetxt, np.loadtxt, genfromtxt 의 함수를 사용하여 텍스트 파일을 저장하고 불러올 수도 있습니다. 그러나 CSV 파일을 가져오는 방법의 경우 Pandas 패키지를 사용하는 것이 일반적입니다. 1.1 numpy.save(), numpy.load() numpy.save()는 Numpy 배열 객체를 .npy 파일로 저장합니다. 파일이 이미 존재하는 경우에는 덮어씁니다.아래 코드에서는 ..
1. Numpy 집계 함수 Numpy는 데이터 분석을 위해 다양한 집계 함수(Aggregate functions)를 제공합니다. 이러한 함수를 사용하면 배열의 요소에 대해 특정 계산을 수행할 수 있습니다. 대표적인 집계 함수들은 다음과 같습니다. np.sum(): 배열의 모든 요소의 합을 계산합니다. np.min(), np.max(): 배열의 최소값 또는 최대값을 찾습니다. np.mean(): 배열의 평균 값을 계산합니다. np.median(): 배열의 중간값(median)을 찾습니다. np.std(): 배열의 표준 편차를 계산합니다. np.var(): 배열의 분산을 계산합니다. 1.1 np.sum() 이 함수는 배열의 모든 요소의 합계를 계산합니다. 데이터의 전체적인 누적치를 알고 싶을 때 유용합니다...
1. 기본적인 수학 연산 Numpy는 배열에 대한 기본적인 수학 연산을 지원합니다. 이 연산은 배열의 각 요소에 개별적으로 적용되며, 새 배열을 생성하여 결과를 반환합니다. 1.1 Addition (덧셈) Numpy 배열에서 덧셈은 '+' 연산자 또는 'np.add() 함수를 사용하여 수행할 수 있습니다. 두 가지 방법 모두 배열 a와 b의 각 요소를 더한 결과인 [5, 7, 9]를 출력합니다. import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) # Using '+' print(a + b) # Using np.add() print(np.add(a, b)) # 출력: [5 7 9] 1.2 Subtraction (뺄셈) Numpy에서 뺄셈은..
1. Numpy 인덱싱 Numpy 배열 인덱싱(indexing)은 리스트 인덱싱과 매우 유사하게 작동합니다. 인덱싱(Indexing)은 특정 위치의 데이터에 접근하는 것을 의미합니다. 인덱싱을 이용해 특정 위치에 있는 값을 가져오거나 설정할 수 있습니다. 아래 코드는 numpy 배열에 대한 기본적인 인덱싱 방법을 설명하는 코드입니다. 1에서 5까지의 정수 원소를 포함한 1차원 넘파이 배열 arr을 생성합니다. 그리고 인덱싱을 통해 첫 번째 원소와 마지막 원소에 접근하고, 접근한 원소를 출력합니다. 배열의 인덱스는 0부터 시작하며, -1은 배열의 마지막 원소를 가리킵니다. 배열의 원소에 접근하여 읽는것 뿐만 아니라 원소를 직접 변경할 수도 있습니다. 첫 번째 원소의 값을 10으로 변경합니다. 그리고 변경한..
1. Numpy 배열 Numpy 배열은 값들이 동일한 데이터 타입을 갖는 그리드 형태의 데이터 구조입니다. 여기서 그리드 형태란 Numpy 배열 요소들이 행(row)과 열(column)로 이루어진 구조를 말합니다. 각 값은 양의 정수로 색인(index)화됩니다. 배열의 차원 수는 배열의 rank로 표현되며, 배열의 모양은 각차원에 따라 몇 개의 항목이 있는지를 나타내는 정수의 튜플로 표현됩니다. Numpy 배열은 파이썬의 기본 리스트와는 다른 형태를 가집니다. Numpy 를 공부하다보면 ndarray라는 단어를 듣게됩니다. ndarray는 "N-dimensional array"의 줄임말로, 임의의 차원으로 구성된 배열을 의미합니다. N차원 배열은 단순한 배열로, 1차원이나 2차원부터 시작하여 임의의 수의..
1. Numpy 란? Numpy는 "Numerical Python"의 줄임말로, Python에서 과학 계산을 위한 핵심 라이브러리입니다. Numpy는 파이썬의 기본 데이터 구조를 확장하여, 다차원 배열을 효과적으로 처리할 수 있는 기능을 제공합니다. Numpy의 가장 큰 특징은 다차원 배열 객체인 ndarray를 제공한다는 점입니다. 이 배열은 동일한 유형의 원소들로 구성되며, 파이썬의 리스트에 비해 빠른 연산과 더 적은 메모리를 사용합니다. 1.1 Numpy 장점 1.1.1 효율적인 메모리 사용 Numpy 배열은 동일한 데이터 타입을 가진 원소들로 이루어져 있어, 메모리를 효율적으로 활용합니다. 그 결과, 대용량 데이터를 다룰 때에도 높은 성능을 보장합니다. 1.1.2 빠른 연산 속도 Numpy는 내부..