본문 바로가기

Language/Python

Numpy_Create Array

- Numpy란?

  • 과학 계산을 위한 라이브러리
  • 행렬/ 배열 처리 및 연산
  • 난수생성
  • 다차원 배열을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 Python의 Package

배열의 생성에 대해서 다뤄보자.

 

import numpy as np

a = [[1,2,3],[4,5,6]]
b = np.array(a)
print(b) # [[1,2,3],[4,5,6]]

print(b.ndim) # 배열의 차원

print(b[0,0]) # b[0][0]과 똑같다.

기본적인 배열은 numpy.array()로 생성한다.

기존의 파이썬문법과 다르게 numpy는 2차원이상 인덱싱을 괄호 하나에 좌표형식으로 적어도 가능하게끔 지원해준다.

 

## 특수한 배열의 생성

lst1 = np.arange(10)
print(lst1) # [0,1,2,3,4,5,6,7,8,9]

lst2 = np.arange(5,10)
print(lst2) # [5,6,7,8,9]

lst3 = np.arange(5,10,3)
print(lst3) # [5,8]

lst_zeros = np.zeros((2,2))
print(lst_zeros) # 2x2 0행렬

lst_ones = np.ones((2,3))
print(lst_ones) # 2x3 원소가 1인 행렬

lst_full = np.full((2,3),5)
print(lst_full) # 2x3 원소가 5인 행렬

identity_Matrix = np.eye(3) # 3차원 단위행렬
print(identity_Matrix)

for문으로 생성해야할 순서와 규칙이 존재하는 배열은 python에서는 range, numpy에서 arange메소드로 제공해준다.

결과값이 그냥 배열인지, numpy 배열인지 차이뿐이다.

0부터 시작해서 원소 직전까지 생성해준다.

arange 말고도 linspace도 배열을 생성해주는데, 다음에 확인하자.

 

영행렬(zeros), 모든원소가 1(ones) 혹은 원하는 원소(full)를 채워줘서 행렬을 만들어주는 메소드도 존재한다.

## 배열의 차원 변환

a = np.arange(20)
b = a.reshape((4,5))
print(b) #4x5 행렬

1차원의 a행렬을 4x5로 reshape도 가능하다.

 

# concatenate 이어붙이기
x = np.array([0,1,2])
y = np.array([3,4,5])
print(np.concatenate([x,y])) # [0,1,2,3,4,5]

# concatenate 행렬통째로 이어붙이기
x = np.array([[1,2],[3,4]])
y = np.array([[1,2],[3,4]])
print(np.concatenate([x,y],axis=1)) # 기본으로 세로로 붙는다. axis=1로 가로로 연결할수도 있다.

# split 행렬 axis 축 기준으로 분할
matrix = np.arange(16).reshape(4,4)
upper, lower = np.split(matrix, [3], axis=0)
print(upper, lower)

행렬 붙이고, 분할(concatenate, split)

 

'Language > Python' 카테고리의 다른 글

Pandas 심화  (0) 2023.02.26
Pandas_Operations&function, Sort  (0) 2023.02.26
Pandas_Series, DataFrame  (0) 2023.02.24
Numpy_Broadcasting, masking  (0) 2023.02.23
Numpy_Indexing, Slicing, Operator  (1) 2023.02.23