Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바스크립트 prototype
- 랜섬웨어
- 보안뉴스요약
- 자바스크립트
- python
- oracle
- 자바스크립트 API
- 보안뉴스
- Oracle SQL
- 카카오프로젝트100
- php
- 자바스크립트 기본 문법
- 다크웹
- 카카오프로젝트
- 자바스크립트 node
- 자바스크립트 객체
- 보안뉴스 한줄요약
- 깃허브
- javascript
- ES6
- 파이썬
- oracle db
- 카카오프로젝트 100
- 자바스크립트 jQuery
- numpy
- GIT
- 보안뉴스한줄요약
- 보안뉴스 요약
- 자바스크립트 element api
- 오라클
Archives
- Today
- Total
FU11M00N
[ Numpy ] Numpy 배열 연산 본문
- 배열 연산
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]))
- in 그래프의 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)
'AI > Numpy' 카테고리의 다른 글
[ Numpy ] 회귀분석 , 선형 회귀분석 , sklearn.linear_model , 결정계수 (0) | 2021.04.05 |
---|---|
[ Numpy ] numpy 변환 (append, concatenate, c_, r_ , swap, flip) (0) | 2021.03.29 |
[ Numpy ] numpy 조건문, 배열의 비교연산 , and or ! , where (0) | 2021.03.29 |
[ Numpy ] 랜덤데이터 활용, 확산 직선, 군집데이터 (0) | 2021.03.29 |
[ Numpy ] Numpy 라이브러리 활용(숫자연산, 수학연산, 조건연산) ,사인 코사인 (0) | 2021.03.22 |
Comments