본문 바로가기
Programming Languages/Python

Chapter 16. Numpy

by 더 이프 2023. 3. 29.
728x90

Chapter 16. Numpy

 1. Numpy

  ⦁ numpy는 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리

  ⦁ numpy 명령 프롬프트에서 설치하며, jupyter notebook 내에서는 pip 앞에 !를 붙여 설치

pip install numpy

  ⦁ numpy를 import하여 사용 가능하며 대부분 np로 사용하기 때문에 as로 사용이름 변경

import numpy as np

 2. Numpy array

  ⦁ np.array(list)를 사용하면 numpy list가 됨

# numpy array
a1 = np.array([1,2,3,4,5])
print([1,2,3,4,5])
print(a1)
print(type(a1))

# 결과값
[1, 2, 3, 4, 5]
[1 2 3 4 5]
<class 'numpy.ndarray'>

  ⦁ 형변환 시에 문자 자료형은 정수, 실수 자료형으로 형변화 되지 않음

# 형변환
listb = [1,2,'abc','def']
a8 = np.array(listb)
print(a8)
# a8.astype(np.int64)

# 결과값
['1' '2' 'abc' 'def']

 3. Numpy arange

  ⦁ np.arange(a,b,c)를 사용하며 매개변수가 하나이면 0부터 매개변수 전까지 수를 가져옴

  ⦁ a는 시작점

  ⦁ b는 끝점이며 b는 포함하지 않음

  ⦁ c는 step으로 c만큼 갭을 가짐

# numpy arange
a2 = np.arange(10)
print(a2)

a3 = np.arange(3,100,3)
print(a3)

# 1에서부터 10아래 0.5씩 증가하는 숫자, step=0.5
a4 = np.arange(1.3,10,0.5)
print(a4)

# 결과값
[0 1 2 3 4 5 6 7 8 9]
[ 3  6  9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72
 75 78 81 84 87 90 93 96 99]
[1.3 1.8 2.3 2.8 3.3 3.8 4.3 4.8 5.3 5.8 6.3 6.8 7.3 7.8 8.3 8.8 9.3 9.8]

 4. Numpy linspace

  ⦁ np.linspace(a,b,c)를 사용하면 a에서 b까지 c등분을 해줌

# numpy linspace
a4 = np.linspace(0,10,15)
print(a4)

# 결과값
[ 0.          0.71428571  1.42857143  2.14285714  2.85714286  3.57142857
  4.28571429  5.          5.71428571  6.42857143  7.14285714  7.85714286
  8.57142857  9.28571429 10.        ]

 5. Numpy zeros, ones

  ⦁ np.zeros(a), np.ones(a)를 사용하면 a개의 index를 가진 0,1의 값을 가진 리스트를 생성

# numpy zeros, ones
a5 = np.zeros(5,int)
print(a5)

a6 = np.ones(5,int)
print(a6)
a6.astype(np.float64)

# 결과값
[0 0 0 0 0]
[1 1 1 1 1]
array([1., 1., 1., 1., 1.])

 6. 자주 사용하는 함수

  ⦁ dtype은 데이터 타입을 알려줌

  ⦁ ndim은 몇차원인지를 알려줌

  ⦁ shape는 해당 numpy의 모양 및 크기를 알려줌

  ⦁ size는 모든 elements의 갯수를 알려줌

  ⦁ itemsize는 바이트 크기를 알려줌

  ⦁ data는 해당 주소를 알려줌

# 함수
print(a7.dtype)
print(a7.ndim)
print(a7.shape)
print(a7.size)
print(a7.itemsize)
print(a7.data)

# 결과값
float64
1
(4,)
4
8
<memory at 0x000001FE3E997880>

 7. Numpy index

  ⦁ numpy array에 [0]은 첫번째 인덱스 [-1]은 마지막 인덱스를 나타냄

  ⦁ [a: b]는 a부터 b전까지 인덱스 값의 배열을 가져옴

  ⦁ [a: b: c]는 a부터 b전까지 c의 갭을 가진 인덱스의 배열을 가져옴

# numpy index
a10 = np.arange(10,100,5)
print(a10)

# 특정인덱스
print(a10[3])
# 스타트, 스탑
print(a10[0:3])
# 스타트, 스탑, 스텝
print(a10[0:3:2])

# 결과값
[10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95]
25
[10 15 20]
[10 20]

 8. Example

 a. 사칙연산

# 사칙연산
a1 = np.arange(5)
a2 = np.arange(10,15)
print(a1)
print(a2)
print('add:',a1+a2)
print(np.concatenate((a1,a2)))
print('sub:',a1-a2)
print('mul:',a1*a2)
print('div:',a1/a2)

# 결과값
[0 1 2 3 4]
[10 11 12 13 14]
add: [10 12 14 16 18]
[ 0  1  2  3  4 10 11 12 13 14]
sub: [-10 -10 -10 -10 -10]
mul: [ 0 11 24 39 56]
div: [0.         0.09090909 0.16666667 0.23076923 0.28571429]