준비하는 대학생

[python] Numpy 기초 공부(zeros, ones, full) 본문

Programming/Machine learning

[python] Numpy 기초 공부(zeros, ones, full)

Bangii 2023. 3. 8. 17:13

zeros()

NumPy에서 zeros() 함수는 모든 요소가 0 배열을 생성하는 함수이다.

함수의 구문 다음과 같다.

numpy.zeros(shape, dtype=float, order='C')

 

  • shape: 생성할 배열의 모양(shape)을 지정한다. 정수(int) 또는 정수들로 이루어진 튜플(tuple)로 지정한다.
    - 예를 들어, (3, 4)는 3행 4열의 2차원 배열을 의미한다.
  • dtype: 생성할 배열의 자료형(data type)을 지정한다. (기본값: float)
  • order: 생성할 배열의 메모리 저장 순서(order)를 지정한다. (기본값: 'C', 'C' or 'F' 로 지정한다.)
    • 'C': C-style 메모리 저장 순서. 배열의 마지막 차원을 가장 먼저 변경
    • 'F': Fortran-style 메모리 저장 순서. 배열의 첫 번째 차원을 가장 먼저 변경
      ( 일반적으론 'C'를 사용한다.)

다음은 zeros() 함수를 사용하여 배열을 생성하는 간단한 예시이다.

import numpy as np

a = np.zeros((2, 3))  # 2행 3열의 모든 요소가 0인 2차원 배열 생성
print(a)

코드를 실행하면, 다음과 같은 결과가 출력된다.

[[0. 0. 0.]
 [0. 0. 0.]]

출력 결과에서 있듯이, zeros() 함수는 모든 요소가 0 배열을 생성한다.

함수의 인자로 배열의 모양(shape) 지정하면, 해당 모양의 배열이 생성된다. 따라서 zeros() 함수는 배열의 초기화 등에 유용하게 사용할 수 있다.

 

ones()

NumPy의 ones 함수는 지정된 모양(shape)과 데이터 타입(dtype)을 갖는 모든 요소가 1인 배열을 생성한다.

ones 함수는 다음과 같은 형태로 사용된다.

 

numpy.ones(shape, dtype=None, order='C')

위의 zeros 와 같은 형태로 사용되고, 0에서 1로만 바꾼다고 생각할 수 있다.

 

따라서 인자는 zeros와 똑같다고 생각할 수 있다.

  • shape: 생성할 배열의 모양(shape)을 지정한다. 정수(int) 또는 정수들로 이루어진 튜플(tuple)로 지정한다. 
    - 예를 들어, (3, 4)는 3행 4열의 2차원 배열을 의미한다.
  • dtype: 생성할 배열의 자료형(data type)을 지정한다. (기본값: float)
  • order: 생성할 배열의 메모리 저장 순서(order)를 지정한다. (기본값: 'C', 'C' or 'F' 로 지정한다.)

다음은 ones 함수를 사용한 예시 코드이다.

import numpy as np

# 2행 3열의 배열 생성
arr = np.ones((2, 3))
print(arr)

# 3차원 배열 생성
arr = np.ones((2, 3, 4), dtype=np.int8)
print(arr)

 

 코드를 실행하면, 다음과 같은 결과가 출력된다.

 

[[1. 1. 1.]
 [1. 1. 1.]]
 
[[[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]
 [[1 1 1 1]
  [1 1 1 1]
  [1 1 1 1]]]

 출력 결과에서   있듯이, ones() 함수는 모든 요소가 1 배열을 생성한다.

함수의 인자로 배열의 모양(shape) 지정하면, 해당 모양의 배열이 생성된다. 따라서 ones() 함수 zeros()함수와 함께 배열의 초기화 등에 유용하게 사용할 수 있다.

 

full()

NumPy의 full 함수는 지정된 모양(shape)과 지정된 값을 갖는 배열을 생성한다.

full 함수는 다음과 같은 형태로 사용된다.

numpy.full(shape, fill_value, dtype=None, order='C')

full 함수도 앞서 나온 zeros 함수, ones 함수와 같은 인자를 사용하고 있는데 이중 다른 점은 두 함수와 달리 fill_value라는 인자로 어떤 0과 1이 아닌 다른 값으로 설정할 수 있다.

  • shape: 생성할 배열의 모양(shape)을 지정한다. 정수(int) 또는 정수들로 이루어진 튜플(tuple)로 지정한다. 
    - 예를 들어, (3, 4)는 3행 4열의 2차원 배열을 의미한다.
  • fill_value: 생성할 배열의 값을 지정한다.
  • dtype: 생성할 배열의 자료형(data type)을 지정한다. (기본값: None)
  • order: 생성할 배열의 메모리 저장 순서(order)를 지정한다. (기본값: 'C', 'C' or 'F' 로 지정한다.)
    • 'C': C-style 메모리 저장 순서. 배열의 마지막 차원을 가장 먼저 변경
    • 'F': Fortran-style 메모리 저장 순서. 배열의 첫 번째 차원을 가장 먼저 변경
      ( 일반적으론 'C'를 사용한다.)

다음은 full 함수를 사용한 예시 코드이다.

 

import numpy as np

# 2행 3열의 배열 생성, 값은 모두 3으로 설정
arr = np.full((2, 3), 3)
print(arr)

# 3차원 배열 생성, 값은 모두 1.5로 설정
arr = np.full((2, 3, 4), 1.5, dtype=np.float32)
print(arr)

 

 코드를 실행하면, 다음과 같은 결과가 출력된다.

 

[[3 3 3]
 [3 3 3]]
 
[[[1.5 1.5 1.5 1.5]
  [1.5 1.5 1.5 1.5]
  [1.5 1.5 1.5 1.5]]
 [[1.5 1.5 1.5 1.5]
  [1.5 1.5 1.5 1.5]
  [1.5 1.5 1.5 1.5]]]

위 코드와 같이 full 함수를 사용하면 지정된 값을 갖는 배열을 생성할  있다. 배열은 다른 NumPy 함수와 함께 사용되어 선형 대수, 수치해석, 데이터 분석 등에 활용된다.

 

위의 세가지 함수들은 다양한 형태의 배열을 생성하고 초기화하는 데 유용하다.

이러한 배열은 다른 NumPy 함수와 함께 사용하여 수학, 공학, 물리학 등 다양한 분야의 문제를 해결할 수 있다.

예를 들어, 벡터, 행렬, 연산을 수행하거나, 그래프 그리기, 신호 처리, 이미지 처리, 기계 학습 등에 활용된다.

Comments