Numpy 라이브러리 활용하기 (배열 연산)

2021. 3. 22. 20:15·Archive/Develop
728x90
반응형

Numpy 활용하기

 

 

바로 이전 포스팅과 같이 사용하기전에 import 해주고 시작!

 

 

배열 연산

 

Numpy는 배열끼리의 연산을 지원한다.

언뜻 보면 규칙이 복잡하지만 잘만 사용하면 상당히 복잡한 기능도 배열끼리의 연산으로 간단히 구현가능하다.

 

 

na1 = np.array( [[1,2],[3,4]] )  # shape : (2,2)
na2 = np.array( [[1,2]] ) # shape : (1,2)
na3 = np.array( [[1],[2]]) # shape : (2,1)

print( na1 + na2 ) 
print( na1 + na3 ) 

 

 

 

 

 

 

Numpy 의 배열끼리의 연산은 같은 동일 차원(x축, y축등.. ) 길이가 같거나 또는 한쪽이 1일때 허용된다.

단 차원의 크기다 다를때는 앞의 차원은 1로 간주된다.

아래에는 서로 연산이 가능한 쉐이프의 예가 나와있다.

 

 

간단한 행렬연산 예시

 

 

(2,2) + (2,)
(2,2) + (1,2) 
(2,2) + (2,1)
 
(3,1) + (1,2)
 
(1,2,3) + (1,2,1)
(1,2,3) + (1,1,3)
(1,2,3) + (1,2,3)
(1,2,3) + (2,3)
(1,2,3) + (1,3)
(1,2,3) + (3,)
 

 

 

이는 3차원 이상의 배열에서도 유효하다.

차원의 크기가 다를 경우 앞쪽은 1로 계산한다.

 

 

(4,3,2) + (3,1)  = (4,3,2) + (1,3,1)
na1 = np.full((4,3,2),2)
na2 = np.full((1,2),2)

print( na1 + na2 ) 

 

 

 

 

x1,x2 = np.array([0,1,2]), np.array([[1],[2],[3],[4]]) 
print(x1)
print(x2)
print(x1 + x2)

 

 

 

 

 

구구단 행렬 만들기

 

 

 

a=np.arange(1,10,1)
b= np.array([[1],[2],[3],[4],[5],[6],[7],[8],[9]])

print(a)
print(b)

print(a*b)

 

 

 

 

 

 

(n,) 두개를 (n,2) 로 합치기

arr1= np.array([1,2,3,4,5,6]).reshape(6,1) 
arr2 =np.array([0,10,20,30,40,50]).reshape(6,1)
print(arr1 * np.array([1,0])+arr2 * np.array([0,1]))

 

 

 

그래프의 2차원화

 

- 문제 : 다음 0부터 np.pi 까지의 sin 곡선과 같은 비율로

밝기가 변화하는 (100,100) 의 2차원 흑백이미지를 생성.

 

 

x = np.sin(np.linspace(0,np.pi,100))
# plt.plot(x)
# plt.show() 



plt.imshow( x + x.reshape(100,1),cmap='gray')

 

 

 

컬러 그라데이션 배열

 

- 문제 : np.linspace 를 사용해서 다음과 같은 (100,100,3) 이미지를 갖는 배열을 생성

 

 

narr = np.zeros((100,100,3))
x = np.linspace(0,1,100)
y = x.reshape(100,1,1) * np.array([1,0,0])
plt.imshow(narr+y)




728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ C++ ] C++ 객체란? | 클래스 만들기 | 생성자 & 소멸자 | 인라인(inline) 함수  (1) 2021.03.23
[ Django ] DB 연동(makemigrations, migrate)  (0) 2021.03.22
Numpy 라이브러리 활용하기 (숫자연산, 수학연산, 조건연산) | numpy 사인 코사인  (0) 2021.03.22
[ Oracle ] 집계함수(count,min,max,sum,avg) | 조인(Join) 종류  (0) 2021.03.22
[ Django ] Django-environ 라이브러리를 활용한 SECRET_KEY 숨기기  (0) 2021.03.21
'Archive/Develop' 카테고리의 다른 글
  • [ C++ ] C++ 객체란? | 클래스 만들기 | 생성자 & 소멸자 | 인라인(inline) 함수
  • [ Django ] DB 연동(makemigrations, migrate)
  • Numpy 라이브러리 활용하기 (숫자연산, 수학연산, 조건연산) | numpy 사인 코사인
  • [ Oracle ] 집계함수(count,min,max,sum,avg) | 조인(Join) 종류
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    백준 풀이
    카카오 100일 프로젝트
    자바스크립트
    C++
    코드업
    Python
    비박스
    파이썬 백준
    oracle db
    Git
    자바스크립트 객체
    파이썬 기초 문제
    파이썬 기초
    백준
    자바스크립트 API
    백준 파이썬
    Django
    코드업 기초
    docker
    백준 문제풀이
    코드업 파이썬 기초 100제
    파이썬 문제
    Oracle
    장고
    파이썬 알고리즘
    Codeup
    오라클
    파이썬
    javascript
    보안뉴스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
Numpy 라이브러리 활용하기 (배열 연산)
상단으로

티스토리툴바