일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 패스트 캠퍼스
- 모두의연구소 오준석생존코딩 오름캠프
- 모두의 연구소 # 오준석의생존코딩# 오름캠프
- 모두연구소
- Tag #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 오름캠프플러터
- #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 오름캠프
- 오준석의생존코딩
- 플러터
- 오준석의 생존코딩
- ㅇ
- 오존석의 생존코딩
- 모두의연구소
- 생존코딩
- Today
- Total
꾸준히 하고싶은 개발자
numpy 본문
배열(array)
배열(array): 같은 타입의 변수들로 이루어진 순서가 있는 집합이다.
위치를 가리키는 숫자는 인덱스(index)라고 하며, 각각의 값은 배열 요소(element)라고 한다.
예> num=[ 3, 5, 7, 81 ]
크기 고정
파이썬 미지원 -> 리스트로 대체한다.
리스트(list)
배열과 유사하나 크기가 가변적이다. (리스트에 원소의 추가,삭제가 가능)
파이썬에서의 리스트는 어떤 원소 타입이라도 저장할 수 있다.
Ex> num=[1,2,’사과’,4,5]
num.append(7)
배열과 리스트는 각각 장점/단점이 존재
수 또는 변수등을 직사각형 모양으로 배열한 것. (수를 원소로 지니는 다차원 배열이다.)
(2행 3열) 2*3 행렬
행(Row)-가로, 열(Colum)-세로
파이썬 에서 list 형태로 표현 시
[ [1, 9, -13], [20, 5, 16] ]
행렬의 예1
2019년 | 손세정제 | 마스크 |
상반기 | 300 | 500 |
하반기 | 4500 | 1000 |
+
2020년 | 손세정제 | 마스크 |
상반기 | 3000 | 5000 |
하반기 | 400000 | 110000 |
=
2년치합산 | 손세정제 | 마스크 |
상반기 | 3300 | 5500 |
하반기 | 44500 | 11000 |
행렬의 예2
음료수 | 커피 | |
생산계획1 | 3 | 4 |
생산계획2 | 5 | 2 |
*
판매가격 | |
음료수 | 200 |
커피 | 100 |
=
판매가격 | |
생산계획1 | (3*200) +(4*100) = 1000 |
생산계획2 | (5*200)+(2*100)=1200 |
Numpy
다차원 배열처리를 위한 파이썬 외부 라이브러리
pandas, matplotlib 라이브러의 기반
빠르다, 강력하다. 간결하다. –모든 데이터 분석의 기본 라이브러리
예>모든 원소에 1씩 더해서 새로운 리스트 만들기
#list 사용시
list=[1,3,5,7,9]
list2=[]
for i in range(len(list1)):
list2.append(list1[i]+1
#numpy 사용시
import numpy as np
list1=[1,3,5,7,9]
nplist=np.array(list1)
nplist2=nplist+1
numpy
numpy에서 다루는 데이터는 배열임으로 모든 원소는 같은 자료형이어야 한다.
axis는 차원(축)을 의미. 즉, axis=0은 행, axis=1 열
shape: 차원의 구조(행,열)
dtype: 배열에 저장된 자료형
size: 크기
numpy 연산
numpy 브로드캐스트
서로 다른 형태의 배열 연산 시 발생: 형태가 다른 배열을 연산할 수 있도록 배열의 형태를 동적으로 변환한다.
numpy 초기화
np.array(리스트) : numpy 형태로 변환
arange(범위) : 범위 데이터 만들기
0으로 배열 만들기 : zeros((행,렬),dtype=데이터 타입) 예> np.zeros((4,4),dtype=int)
1로 배열 만들기 : ones() , zeors 와 동일한 사용법
random.randint(0, 10, (2, 3) ) : 0부터 9까지 랜덤으로 2*3배열을 만들어라
random.normal(0, 1, (2, 3) ) : 평균이 0이고, 표준편차가1인 표준정규 분포 데이터 만들기
random.random(5): 0~1사이의 무작위 수 5개
linspace(0, 12, 4): 시작과 끝 값을 지정하고 그 사이의 값을 균등하게 배분한다.
numpy 데이터 변형
concatenate( ) : 배열 합치기
ex> np.concatenate([array1,array2])
split():배열 나누기
ex>left, right=np.split(array,[2],axis=1)
reshape( ): 배열의 형태 변경하기 ex>np.arange(8).reshape(2,4)
배열 슬라이싱
ex> 2차원 리스트에서 모든 원소의 두 번째 원소들만 출력
list1=[[1,10],[2,20],[3,30]]
nplist1=np.array(list1)
print(nplist1[ : ,1])
- 각각의 원소의 특정 인덱스 위치에 일괄적으로 접근 가능
먼저 리스트를 numpy 형식으로 변환 후 슬라이싱 해야 함
리스트의 인덱스는 반드시 정수나 슬라이스여야함
numpy 데이터 이용하기
mean( ) : 평균값 계산 ex> array1.mean()
모든 원소 개별확인 ex>array1 > 30
all(): 배열의 모든 원소가 조건을 만족하면 True
ex> np.all( array1 >= 30)
any(): 배열에 조건을 만족하는 원소가 있으면 True
ex> np.any( array1 > 30)
sort(): 데이터 정렬 ex> array.sort() , array.sort([::-1])
unique(): 중복제거 ex> np.unique(array)
각 선택요소를 True,False로 표현 ex>bool_indexing = (array % 2 == 0)
numpy는 가변 객체임으로 복사시 함수를 이용 해야한다. ex> nplist2=nplist1 (얕은복사 수행)
nplist2=nplist1.copy() (깊은복사 수행)
불변(immutable)객체 : 할당된 값을 수정할 수 없다. int, float, bool, tuple, string, unicode
가변(mutable)객체 : 할당된 값을 수정할 수 있다. list, set, dict
깊은복사(deep copy): 원본의 내용을 실제로 복사한다. – 불변자료형 대입시
얕은복사(shallow copy):동일 값을 참조(reference)한다. – 가변자료형 대입시
실습
'python > BigdataAnalysis' 카테고리의 다른 글
로지스틱 회귀 분석 (0) | 2022.09.27 |
---|---|
텍스트 빈도 분석(영어) (0) | 2022.09.27 |
상관 분석+히트맵 (0) | 2022.09.21 |
통계분석(기술통계분석+ 그래프) (0) | 2022.09.20 |
pandas (0) | 2022.09.19 |