2024 동계 모각코 3주차

강리아·2025년 1월 27일
0

2024 동계 모각코

목록 보기
3/5

오늘의 목표 : 넘파이, 차트 공부하기

넘파이

대용량의 배열과 행렬연산을 빠르게 수행하며, 고차원적인 수학 연산자와 함수를 포함하고 있는 파이썬 라이브러리

  • ndarray는 C 언어에 기반한 배열 구조이므로 메모리를 적게 차지하고 속도가 빠르다.
  • ndarray를 사용하면 배열과 배열 간에 수학적인 벡터 연산을 이용할 수 있다.
  • ndarray는 고급 연산자와 풍부한 함수들을 제공한다.

넘파이를 사용 프로그램에서

imrpot numpy as np

이 코드의 호출은 필수이다. 혹시 이 코드없이 np.array()가 나타날 경우 위의 코드를 삽입해야만 오류없이 실행된다.

다차원 배열

다차원 배열의 속성

  • ndim : 배열 축 혹은 차원의 개수
  • shape : 배열의 차원으로 (m, n) 형식의 튜플 형이다. 이 때, m, n은 각 차원의 원소의 크기를 알려주는 정수
  • size : 배열 원소의 개수이다. 이 개수는 shape 내의 원소의 크기의 곱과 같다. 즉 (m, n) 형태의 배열의 size는 m*n 이다.
  • dtype : 배열 내의 원소의 형을 기술하는 객체이다. 넘파이는 파이썬 표준 자료형을 사용할 수 있으나 넘파이 자체의 자료형인 bool, character, int, int8, int16, int64, float, float8, float16, float32, float64, complex, complex64, object 형을 사용할 수 있다.
  • itemsize : 배열내의 원소의 크기를 바이트 단위로 기술한다. 예를 들어 int32 자료형의 크기는 32/8 = 4 바이트가 된다.
  • data : 배열의 실제 원소를 포함하고 있는 버퍼
  • stride : 배열 간 차원별로 다음 요소로 점프하는 데에 필요한 거리를 바이트로 표시한 값을 모은 튜플

다차원 배열 예시

a = np.array([1, 2, 3])		#넘파이 ndarray 객체의 생성
a.shape		# a 객체의 형태(shape)
=> (3,)

a.ndim		# a객체의 차원
=> 1

a.dype		# a 객체 내부 자료형
=> dtype('int32')

a.itemsize	# a 객체 내부 자료형이 차지하는 메모리 크기(byte)
=> 4

a.size		# a 객체의 전체 크기(항목의 수)
=> 3

넘파이의 계산이 빠른 이유

넘파이의 배열 안에는 동일한 타입의 데이터만 저장할 수 있다.
동일한 자료형으로만 데이터를 저장하면 각각의 데이터 항목에 필요한 저장 공간이 일정하다. 따라서 몇 번째 위치에 있는 항목이든 그 순서만 안다면 바로 접근할 수 있기 때문에 빠르게 데이터를 다룰 수 있는 것이다. 이렇게 원하는 위치에 바로 접근하여 데이터를 읽고 쓰는 일을 임의 접근이라고 한다.

인덱싱

  • 넘파이 배열에서 특정한 요소를 추출하려면 인덱스를 사용한다.
  • 파이썬 리스트와 마찬가지로 인덱스는 0부터 시작한다.
import numpy as np
score = np.array([88, 72, 93, 94, 89, 78, 99])
score[2]

=> 93

2차원 배열의 인덱싱

import numpy as np
y = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]		# 2차원 배열(리스트 자료형)
y
=> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

python
np_array = np.array(y)		#2차원 배열(넘파이 다차원 배열)
np_array

=> array([[1, 2, 3],
		[4, 5, 6],
        [7, 8, 9]])
  • 2차원 배열에서 특정한 위치에 있는 요소 또한 인덱스를 사용한다.
  • 다만 2차원이기 때문에 인덱스가 2개 필요하다.
  • 첫 번째 인덱스는 행의 번호이고, 두 번째 인덱스는 열의 번호이다.
np_array[0][2]

=> 3

차트

데이터 시각화

  • 점이나 선, 막대 그래프 등의 시각적 이미지를 사용하여 데이터를 화면에 표시하는 것
  • 데이터 분석에 있어서 빼놓을 수 없는 중요한 기능
  • 사람들은 시각적으로 보이는 데이터를 직관적으로 이해

matplotlib 사용해보기

# matplotlib.pyplot와 numpy 라이브러리 import
import matplotlib.pyplot as plt
import numpy as np

# 10개의 난수를 2열 배열로 생성
values = np.random.rand(10, 2)

# values 배열을 이용해 그래프를 그림
# 2차원 배열이므로 각각의 열이 y값으로 해석되며,
# x축 값은 자동으로 배열의 인덱스(0, 1, 2, ...)로 설정됨
plt.plot(values)


이런 식으로 데이터를 시각화할 수 있다.

0개의 댓글