Post

NumPy 데이터 분석: 배열 생성

NumPy 배열을 생성하는 방법과 다양한 배열 생성 함수

NumPy 배열은 데이터 분석과 수치 계산의 핵심 구조입니다. 이번 글에서는 NumPy 배열을 생성하는 방법다양한 배열 생성 함수를 살펴보겠습니다.

1. 배열 생성의 기본

NumPy 배열은 array() 함수로 생성할 수 있습니다.

1) Python 리스트를 배열로 변환

1
2
3
4
5
6
7
8
9
10
11
12
13
import numpy as np

# 1차원 배열 생성
arr1 = np.array([1, 2, 3, 4])
print(arr1)
# 출력: [1 2 3 4]

# 2차원 배열 생성
arr2 = np.array([[1, 2], [3, 4]])
print(arr2)
# 출력:
# [[1 2]
#  [3 4]]

2) 데이터 타입 지정

1
2
3
arr = np.array([1, 2, 3], dtype=float)
print(arr)
# 출력: [1. 2. 3.]

2. 배열 생성 함수

NumPy는 다양한 배열 생성 함수를 제공하여, 배열을 효율적으로 초기화할 수 있습니다.

1) 초기화 배열 생성

1. zeros() 함수

  • 모든 값이 0인 배열을 생성합니다.
    1
    2
    3
    4
    5
    
    arr = np.zeros((2, 3))  # 2행 3열 배열 생성
    print(arr)
    # 출력:
    # [[0. 0. 0.]
    #  [0. 0. 0.]]
    

2. ones() 함수

  • 모든 값이 1인 배열을 생성합니다.
    1
    2
    3
    4
    5
    6
    
    arr = np.ones((3, 2), dtype=int)  # 정수형 3행 2열 배열
    print(arr)
    # 출력:
    # [[1 1]
    #  [1 1]
    #  [1 1]]
    

3. full() 함수

  • 지정된 값으로 채워진 배열을 생성합니다.
    1
    2
    3
    4
    5
    
    arr = np.full((2, 2), 7)  # 모든 값이 7인 2x2 배열
    print(arr)
    # 출력:
    # [[7 7]
    #  [7 7]]
    

2) 범위 기반 배열 생성

1. arange() 함수

  • 지정된 범위와 간격으로 배열을 생성합니다.
    1
    2
    3
    
    arr = np.arange(1, 10, 2)  # 1부터 10까지 2 간격
    print(arr)
    # 출력: [1 3 5 7 9]
    

2. linspace() 함수

  • 지정된 구간을 균등한 간격으로 나눈 배열을 생성합니다.
    1
    2
    3
    
    arr = np.linspace(0, 1, 5)  # 0부터 1까지 5개 구간
    print(arr)
    # 출력: [0.   0.25 0.5  0.75 1.  ]
    

3) 난수 기반 배열 생성

NumPy의 random 모듈은 난수 배열을 생성할 때 사용됩니다.

1. rand() 함수

  • 0과 1 사이의 난수를 가지는 배열 생성.
    1
    2
    
    arr = np.random.rand(2, 3)  # 2행 3열 배열
    print(arr)
    

2. randint() 함수

  • 지정된 범위의 정수 난수를 가지는 배열 생성.
    1
    2
    
    arr = np.random.randint(1, 10, size=(3, 3))  # 1부터 9 사이의 정수
    print(arr)
    

3. normal() 함수

  • 정규분포를 따르는 난수를 가지는 배열 생성.
    1
    2
    
    arr = np.random.normal(0, 1, size=(2, 2))  # 평균 0, 표준편차 1
    print(arr)
    

4) 단위 행렬 생성

1. eye() 함수

  • 단위 행렬(identity matrix)을 생성합니다.
    1
    2
    3
    4
    5
    6
    
    arr = np.eye(3)  # 3x3 단위 행렬
    print(arr)
    # 출력:
    # [[1. 0. 0.]
    #  [0. 1. 0.]
    #  [0. 0. 1.]]
    

2. identity() 함수

  • 단위 행렬을 생성합니다.
    1
    2
    3
    4
    5
    6
    7
    
    arr = np.identity(4)  # 4x4 단위 행렬
    print(arr)
    # 출력:
    # [[1. 0. 0. 0.]
    #  [0. 1. 0. 0.]
    #  [0. 0. 1. 0.]
    #  [0. 0. 0. 1.]]
    

3. 배열 속성 확인

생성된 배열의 속성을 확인하여 배열 구조를 이해할 수 있습니다.

1) 배열의 크기

1
2
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.shape)  # 출력: (3, 2)

2) 배열의 차원

1
print(arr.ndim)  # 출력: 2

3) 배열의 데이터 타입

1
print(arr.dtype)  # 출력: int64

정리

  • NumPy 배열은 다양한 초기화 함수(zeros, ones, full)와 범위 기반 함수(arange, linspace)로 생성할 수 있습니다.
  • 난수 배열은 random 모듈을 활용하여 효율적으로 생성할 수 있습니다.
  • 배열의 크기, 차원, 데이터 타입 등의 속성을 확인하며 데이터를 더 잘 이해할 수 있습니다.

다음 글 예고:
NumPy 배열의 인덱싱과 슬라이싱을 다뤄보는 “배열 인덱싱과 데이터 선택”을 배워보겠습니다!

This post is licensed under CC BY 4.0 by the author.