배열

Namung's Sea·2021년 10월 27일
0

NIPA AI 온라인 교육

목록 보기
8/18
post-thumbnail

배열의 기초

배열의 데이터 타입 dtype

  • numpyarray는 파이썬 리스트와 달리 같은 데이터 타입만 저장 가능!
  • 예를 들어, 리스트는 [1, 1.4, True, "S"]와 같이 정수형, 실수형, 불린형, 문자형 등 다양한 타입의 데이터가 들어갈 수 있다.
    그러나 넘파이에서는 여러 데이터를 사용할 수 없고 한가지 타입의 데이터(단일 데이터)만 저장할 수 있다.
  • .dtype : 배열의 데이터 타입을 지정하고 확인하는 데 사용
  • .astype(변환형): 데이터 타입을 변환할 때 사용
arr = np.array([0, 1, 2, 3, 4], dtype = float) # 배열을 실수형으로 변환
print(arr) # 뒤에 '.'이 붙어 실수형으로 변환 된 것 확인 가능 | 출력: [0. 1. 2. 3. 4.]
print(arr.dtype) # 'float64' <- 뒤에 붙은 64는 64비트를 의미함. 비트는 한번에 데이터를 읽어오는 or 저장하는 용량. 
print(arr.astype(int)) # 정수형으로 변환 | [0 1 2 3 4]
dype설명다양한 표현
int정수형 타입i, int_ , int32, int64(=i8)
float실수형 타입f, float_, float32, float64(=f8)
str문자열 타입str, U(unicode의 약자), U32
bool(True/False)부울 타입?, bool_

배열의 속성

ndarray의 차원 관련 속성: ndim & shape

  • ndim: n + dimension, 즉 차원의 약자로 몇 차원인지 구하는 함수
  • shape: 모양에 대한 함수
# 1차원 배열.py
list = [0, 1, 2, 3] # 1차원 배열
arr = np.array(list)
print(arr.ndim) # 1
print(arr.shape) # (4,) | 4개의 데이터가 하나의 공간에 있음.
# 2차원 배열.py
list = [[0, 1, 2], [3, 4, 5]] # 2개의 행으로 이루어진 리스트 -> 2차원
arr = np.array(list)
print(arr.ndim) # 2
print(arr.shape) # (2, 3) | 2개의 행이 3개의 열로 나타남.

ndarry의 크기 속성과 shape 조절

  • size() : 배열 안에 들어가는 요소의 개수
  • len() : 첫번째 차원의 개수 (= 행의 수)
  • " : {}".format() : 중괄호에 format()의 내용을 넣음!
# 크기속성.py

arr = np.array([0, 1, 2, 3, 4, 5])
print("arr.shape : {}".format(arr.shape)) # arr.shape : (6,)
print("배열 요소의 수 : {}".format(arr.size)) # 배열 요소의 수 : 6
print("배열의 길이 : {}".format(len(arr))) # 배열의 길이 : 6

...

arr.shape = 3, 2
print("arr.shape : {}".format(arr.shape)) # arr.shape : (3, 2)
print("배열 요소의 수 : {}".format(arr.size)) # 배열 요소의 수 : 6
print("배열의 길이 : {}".format(len(arr))) # 배열의 길이 : 3

[실습 2] 배열의 기초(1): 1차원 배열의 속성

문제(따라해보기)

  1. array의 자료형을 출력해보세요. type() 함수로 변수의 자료형을 구할 수 있습니다.
    print(type(array))
    type(array)의 의미는 array라는 변수가 파이썬에서 어떤 자료형으로 저장되고 있는지를
    알 수 있는 것입니다.
  2. array의 차원을 출력해보세요.
    print(array.ndim)
  3. array의 모양을 출력해보세요.
    print(array.shape)
  4. array의 크기를 출력해보세요.
    print(array.size)
  5. array의 dtype을 출력해보세요.
    dype이란, numpy 배열이 갖고 있는 요소의 자료형을 의미합니다.
    print(array.dtype)
  6. array의 인덱스 5의 요소를 출력해보세요.
    print(array[5])
  7. array의 인덱스 3의 요소부터 인덱스 5의 요소까지 출력해보세요.
    print(array[3:6])

code

import numpy as np

print("1차원 array")
array = np.array(range(10))
print(array)

# 1. array의 자료형을 출력해보세요.
print(type(array)) # type은 어느 라이브러리에서나 사용가능한 글로벌 함수.

# 2. array의 차원을 출력해보세요.
print(array.ndim) # ndim은 numpy 라이브러리에서만 사용가능한 속성.

# 3. array의 모양을 출력해보세요.
print(array.shape)

# 4. array의 크기를 출력해보세요.
print(array.size)

# 5. array의 dtype(data type)을 출력해보세요.
print(array.dtype)

# 6. array의 인덱스 5의 요소를 출력해보세요.
print(array[5])

# 7. array의 인덱스 3의 요소부터 인덱스 5 요소까지 출력해보세요.
print(array[3:6])

실행 결과

1차원 array

[0 1 2 3 4 5 6 7 8 9]

<class 'numpy.ndarray'>

1

(10,)

10

int64

5

[3 4 5]

[실습 3] 배열의 기초(2): 2차원 배열의 속성

선행 학습✍

  • astype() : 기존의 배열을 복사하여 데이터 자료형을 변환하여 반환함.

문제 (따라해보기)

  1. matrix의 자료형을 출력해보세요.
    type(matrix)로 자료형을 구할 수 있습니다.
  2. matrix의 차원을 출력해보세요.
  3. matrix의 모양을 출력해보세요.
  4. matrix의 크기를 출력해보세요.
  5. matrix의 dtype을 출력해보세요.
  6. matrix의 dtype을 str로 변경하여 출력해보세요.
    `print(matrix.astype('str'))
  7. matrix의 인덱스 (2, 3)번째 요소를 출력해보세요.
  8. matrix의 인덱스 (0,1)번째 요소부터 (1,3)번째 요소까지 출력해보세요.
    print(matrix[0:2,1:4])

실행 결과

2차원 array

[[ 1 2 3 4 5]
[ 6 7 8 9 10]
[11 12 13 14 15]]

<class 'numpy.ndarray'>

2

(3, 5)

15

int64

[['1' '2' '3' '4' '5']
['6' '7' '8' '9' '10']
['11' '12' '13' '14' '15']]

14

[[2 3 4]
[7 8 9]]

profile
개발자로 시작| 공부한 것을 기록합니다.

0개의 댓글