Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기
자격증/빅데이터분석기사

[Python] NumPy 함수 총 정리

by rnasterofmysea 2025. 5. 12.
반응형

 

📌 배열 생성 관련 함수

배열_생성_관련_함수.ipynb
0.01MB

 

 
np.array() 리스트/튜플을 NumPy 배열로 변환
np.arange(start, stop, step) 지정 범위의 정수 배열 생성
np.linspace(start, stop, num) 시작~끝 사이를 균등 간격으로 나눈 값 생성
np.repeat(array, repeats, axis=None) 기존 배열의 각 원소를 반복해서 확장
np.tile(vector, reps) 벡터 전체 반복
np.zeros(shape) 0으로 채워진 배열 생성
np.ones(shape) 1로 채워진 배열 생성
np.eye(N) 단위행렬(identity matrix) 생성
np.empty(shape) 초기화되지 않은 배열 생성 (빠르지만 값은 쓰레기값)
np.full(shape, value) 지정된 값으로 채운 배열 생성

 

1. np.array(): 리스트/튜플을 NumPy 배열로 변환

 
 
1차원 배열: [1 2 3 4]
2차원 배열:
[[1 2]
 [3 4]
 [5 6]]

 

 

2. np.arange(start, stop, step): 지정 범위의 정수 배열 생성

 
 
1부터 10까지의 a:  [ 1  2  3  4  5  6  7  8  9 10]
1부터 10까지 간격 2 씩의 b:  [1 3 5 7 9]

 

 

3. np.linspace(start, stop, num): 시작~끝 사이를 균등 간격으로 나눈 값 생성

endpoint 옵션 - np.linspace(start, stop, num, endpoint = False, True) (default True)

마지막 값을 포함 시키질지 말지 여부

 

 
 
 
a
[ 0.  5. 10.]

endpoint false의 b
[0.         3.33333333 6.66666667]

 

 

4. np.repeat(array, repeats, axis=None): 기존 배열의 각 원소를 반복해서 확장

 
 
np.repeat(8, 4):  [8 8 8 8]
np.repeat(a, 2): [8 8 8 8 8 8 8 8]
 
 
 
 5. np.tile(vector, reps): 백터 전체 반복
 
 
 
벡터 전체를 2번 반복:  [1 2 4 1 2 4]

 

 

6. np.zeros(shape) : 0으로 채워진 배열 생성

7. np.ones(shape): 1로 채워진 배열 생성

 
 
 
 
 
np.zeros([2,3]): 
[[0. 0. 0.]
 [0. 0. 0.]]

np.ones(10):
[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]

 

 

8. np.eye(N): 단위행렬(identity matrix) 생성

 

 
 
array([[1., 0., 0.],
       [0., 1., 0.],
       [0., 0., 1.]])

 

 

9. np.empty(shape): 초기화되지 않은 배열 생성 (빠르지만 값은 쓰레기값)

 
 
 
array([[0., 0., 0.],
       [0., 0., 0.]])

 

 

10. np.full(shape, value): 지정된 값으로 채운 배열 생성

 
array([[7, 7, 7],
       [7, 7, 7]])

 

 


📌 배열 속성


배열_속성_함수.ipynb
0.00MB

 

arr.shape 배열의 차원 (행, 열)
arr.ndim 차원의 수
arr.size 전체 원소의 수
arr.dtype 데이터 타입
 

 

1. arr.shape 배열의 차원 (행, 열)

 
import numpy as np

a = np.arange(15).reshape(22)
print("np.arange(1, 5).reshape(2, 2): \n", a)
 
np.arange(1, 5).reshape(2, 2): 
 [[1 2]
 [3 4]]
 

 

2. arr.ndim 차원의 수

 

 
np.arange(1, 5).reshape(2, 2) 의 차원수:  2
 

3. arr.size: 전체 원소의 수

 

 
 
np.arange(1, 5).reshape(2, 2) 의 원소:  4
 
 
4. arr.dtype: 데이터 타입
 
 
dtype('int64')

 


📌 배열 연산


np.add(a, b) 덧셈 (a + b)
np.subtract(a, b) 뺄셈 (a - b)
np.multiply(a, b) 곱셈 (a * b)
np.divide(a, b) 나눗셈 (a / b)
np.dot(a, b) 행렬 곱
np.sum(a) 총합
np.mean(a) 평균
np.std(a) 표준편차
np.max(a) / np.min(a) 최대/최소값
np.argmax(a) / np.argmin(a) 최대/최소값의 인덱스
 
 
np.add(a,b)
[[ 6  8]
 [10 12]]

np.subtract(a,b)
[[-4 -4]
 [-4 -4]]

np.multiply(a, b)
[[ 5 12]
 [21 32]]

np.divide(a, b)
[[0.2        0.33333333]
 [0.42857143 0.5       ]]

np.dot(a, b)
[[19 22]
 [43 50]]
np.sum(a)
10
np.mean(a)
2.5
np.std(a)
1.118033988749895
np.max(a)
4
np.min(a)
1
np.argmax(a)
3
np.argmin(a)
0
 

 


📌 배열 인덱싱 및 변경

배열_인덱싱_및_변경_함수.ipynb
0.01MB

 

arr.reshape(new_shape) 배열 모양 변경
arr.flatten() 1차원 배열로 변환
arr.transpose() 전치(transpose)
np.concatenate((a, b), axis=0) 배열 연결
np.split(arr, indices_or_sections) 배열 분할
 
 
  1. arr.reshape(new_shape) 배열 모양 변경
import numpy as np

a = np.repeat(1010)
print("a = np.repeat(10, 10)")
print(a)
print()

print("a.reshape(2,5)")
print(a.reshape(2,5))
 
a = np.repeat(10, 10)
[10 10 10 10 10 10 10 10 10 10]

a.reshape(2,5)
[[10 10 10 10 10]
 [10 10 10 10 10]]

 

2. arr.flatten() 1차원 배열로 변환

 
import numpy as np

a = np.array([[1,2,3],[4,5,6]])

print("a = np.array([[1,2,3],[4,5,6]])")
print(a)
print()
print("a.flatten()")
print(a.flatten())
 
a = np.array([[1,2,3],[4,5,6]])
[[1 2 3]
 [4 5 6]]

a.flatten()
[1 2 3 4 5 6]
 

3. arr.transpose() 전치(transpose)

 

import numpy as np

a = np.array([[1,2,3],[4,5,6]])

print("a = np.array([[1,2,3],[4,5,6]])")
print(a)
print()
print("a.transpose()")
print(a.transpose())
 
a = np.array([[1,2,3],[4,5,6]])
[[1 2 3]
 [4 5 6]]

a.transpose()
[[1 4]
 [2 5]
 [3 6]]

 

 

4. np.concatenate((a, b), axis=0) 배열 연결

 

import numpy as np

a = np.array([[1,2,3],[4,5,6]])
b = np.array([[7,8,9],[10,11,12]])

print("a = np.array([[1,2,3],[4,5,6]])")
print(a)

print("b = np.array([[7,8,9],[10,11,12]])")
print(b)
print()
print("np.concatenate((a, b), axis=0)")
print(np.concatenate((a, b), axis=0))
 
a = np.array([[1,2,3],[4,5,6]])
[[1 2 3]
 [4 5 6]]
b = np.array([[7,8,9],[10,11,12]])
[[ 7  8  9]
 [10 11 12]]

np.concatenate((a, b), axis=0)
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
 
 

5. np.split(arr, indices_or_sections) 배열 분할

 
 
 
 

 

a = np.array([[1,2,3],[4,5,6]])
[[1 2 3]
 [4 5 6]]

np.`split`(a, 2, axis=0)
[array([[1, 2, 3]]), array([[4, 5, 6]])]

 


📌 논리 및 조건 처리

논리_및_조건_처리.ipynb
0.00MB

 

 

np.where(condition, x, y) 조건이 참이면 x, 아니면 y
np.any(condition) 조건 중 하나라도 참이면 True
np.all(condition) 모든 조건이 참이면 True
np.isnan(a) NaN인지 확인
 
1. np.where(condition, x, y) 조건이 참이면 x, 아니면 y
 
 
[0 0 0 1 1]
 
 
2. np.any(condition) 조건 중 하나라도 참이면 True

 

 
 
True
 
 

3. np.all(condition) 모든 조건이 참이면 True

 
 
 
 
False
 
 

 

4. np.isnan(a) NaN인지 확인

 
 
[False False False False False]

 

반응형