본문 바로가기
language/Python

[Python] Numpy library 개념, 기본 사용법

by 스파이디웹 2022. 7. 12.
728x90

1. Numpy 란?

  • Numpy는 다차원 배열을 쉽게 처리하고 효율적으로 사용할 수 있도록지원하는 파이썬의 패키지
  • 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공

2. Numpy 설치

pip install numpy

3. Numpy 기본 사용법

1) ndarray 생성

import numpy as np

arr1 = np.array([1,2,3,4]) # numpy의 배열인 ndarray 생성
print(arr1,type(arr1))

# [1 2 3 4] <class 'numpy.ndarray'> 출력

2) ndarray 데이터 타입 지정

  • float
  • int
  • bool
  • str
  • object
arr2 = np.array([1,2,3,4], dtype = 'float') # dtype으로 배열의 데이터타입을 지정함

3) 1차원 이상의 배열 생성

arr2d = np.array([[1,2],[3,4]])
print(arr2d)

# 1 * 1 배열 2 * 2 배열 3 * 3 배열과 같은 형태로 만들어야 함

# [[1 2]
# [3 4]] 출력

4) 배열의 인덱싱

# ndarry indexing
arr2d = np.ndarray([[1,2],[3,4]])

print(arr2d[0,0]) # 1출력

# python list indexing
list2d = [[1,2],[3,4]]

print(list2d[0][0] # 1출력

5) 배열의 연산

arr1 = np.array([1,2,3,4])
arr2 = np.array([[1,2],[1,2]], dtype='int')
arr3 = np.array([[6,8],[2,3]], dtype='float')

print(arr1 * 2) # [2 4 6 8]
print(arr1 + 2) # [3 4 5 6]
print(arr1 * arr1) # [1 4 9 16]
print(arr2 * arr3) # [[6. 16.]]
		   #  [2.  6.]]

6) numpy.ndarray vs python list

  1. Numpy의 배열은 생성 이후 크기를 변경할 수 없음. 만약 변경해야 하는 사항이 있을 시, 새로 생성해야 함
  2. list와 다르게 Numpy 배열의 모든 값의 타입은 dtype으로 같음
  3. list보다 메모리 공간을 덜 차지함

7) 배열의 속성

x = np.random.randint(0, 10, (3, 3)) # 0 이상 10 미만의 3 * 3 2차 ndarray 생성
y = np.random.randint(0, 10, 5) # 0 이상 10 미만의 5개의 속성(열)을 가진 1차 ndarray 생성

print("ndim: ", x.ndim)
print("shape:", x.shape)
print("x size: ", x.size)
print("dtype:", x.dtype)
print("itemsize:", x.itemsize, "bytes")
print("nbytes:", x.nbytes, "bytes")

# ndim:  2
# shape: (3, 3)
# x size:  9
# dtype: int32
# itemsize: 4 bytes
# nbytes: 36 bytes

8) numpy 함수

print(np.zeros((2,3)), type(np.zeros((2,3))),np.zeros((2,3)).dtype)
# [[0. 0. 0.]
# [0. 0. 0.]] <class 'numpy.ndarray'>
print(np.arange(10,15,3), type(np.arange(10,15,3)))
# 마지막 인자는 간격의 크기를 나타내는 수
# [10 13] <class 'numpy.ndarray'>
print(np.full((3,4),1), type(np.full((3,4),1)))
# [[1 1 1 1]
# [1 1 1 1]
# [1 1 1 1]] <class 'numpy.ndarray'>
print(np.linspace(10,15,3), type(np.linspace(10,15,3))) 
# arange와 다른 점은 마지막 인자가 몇개의 일정한 간격으로 배열을 만들지를 결정하는 수
# [10.  12.5 15. ] <class 'numpy.ndarray'>

 

728x90

댓글