본문 바로가기
BIG DATA STUDY/Python

파이썬 배우기 #10 numpy, 행렬

by StrongRiver 2022. 1. 20.
728x90
반응형

리스트 연습문제

  • list 연산
#scoreList에서 각각 10점을 올려준다
scoreList = [11,12,13,14]
scoreList3 = []
for score in scoreList:
  scoreList3.append(score+10)

scoreList3
#List Comprehension 활용해서 위 문제 풀어보기
scoreList3 = [(score+10)for score in scoreList]
scoreList3
  • 2차원 List 만들기
# 2차원 list 만들기
lst=[[1,2,3],
     [4,5,6],
     [7,8,9]
     ]

# 2차원 리스트의 각 요소에 1 더하기
lst=[[1,2,3],
     [4,5,6],
     [7,8,9]
     ]

lst2 =[]

for i in range(len(lst)):
  lst_in =[]
  for j in range(len(lst[i])):
    lst_in.append(lst[i][j] +1)
  lst2.append(lst_in)
lst2

# 또는 방법2
for i in range(len(lst)):
  for j in range(len(lst[i])):
    lst[i][j] += 1

numpy 활용

  • numpy import 및 numpy 활용하여 각 행렬에 1씩 더하기
import numpy as np
scoreNdarray = np.array(lst)
scoreNdarray
array=([1,2,3],
      [4,5,6],
      [7,8,9])
scoreNdarray+1
  • axis의 이해 axis =0일 경우 행 방향, 1일 경우 열 방향이다.
np.mean(scoreNdarray,axis=0)
#axis=0일경우 행 방향


np.mean(scoreNdarray,axis=1)
#axis=1일경우 열 방향
  • 2차원 랜덤값으로 2x2행렬 생성 random.rand
#2차원 랜덤값 받기 2*2 행렬
sample2D=np.random.rand(2,2)
sample2D
  • 랜덤 값으로 리스트 만들기 tolist()
#랜덤값으로 리스트 만들기
sample2Dlist= sample2D.tolist()
sample2Dlist
  • sum을 계산하는데 걸리는 시간 (datetime응용)
#sum 계산하는데 걸리는 시간
import datetime
sum = 0
start=datetime.datetime.now()
for rows in sample2Dlist:
  for e in rows:
    sum+=e

print(sum)
datetime.datetime.now()-start
  • 데이터 타입(dtype) & transmit(T)
x= np.array([[1,2],[3,4]], dtype=np.int8)
x

#transmit
y=x.T
y
  • 평균, 가중평균
np.mean(range(1,11))

#가중평균
np.average(range(1,11),weights=range(10,0,-1))
  • empty 활용하여 행렬만들기
#기본
np.empty((4,3))


#empty 행렬을 만들며, A의 형태로 만든다 (4행3렬로 만든다)

A =np.array([[1,2,3],
            [4,5,6],
            [7,8,9]])

np.empty_like(A)
  • 기타 행렬 만들기
np.zeros((2,3))
#0으로 된 2행 3렬짜리 어레이를 만든다

np.ones((2,3))
# 2행 3렬로 1을 채운다

np.identity((2))
#항등행렬을 나타낸다 (2행2열) 

np.full((2,3),10)
# 2행3열을 10으로 채운다.

np.ptp(A,axis=0)
#최대값에서 최소값을 뺀 것

np.median(B,axis=0)
#중간값

np.amin(A,axis=0)
#최소값

np.amax(A,axis=0)
#최대값

np.mean(B,axis=0)
#평균
  • reshape(a,b) axb형태로 행렬을 바꾼다
A =np.arange(4).reshape(2,2)
  • 분산 및 표준편차
#분산 구하기
np.var(B,axis=1)

#표준편차 구하기
np.std(B,axis=1)
  • 행렬 슬라이싱
a = np.arange(12).reshape(3,4)
#array([[ 0,  1,  2,  3],
#       [ 4,  5,  6,  7],
#       [ 8,  9, 10, 11]])
#0번째 행부터 1번째 행까지 + 0번쨰 열부터 3번째 열까지 슬라이싱
a[0:2,0:4]

# 행렬 a의 0~1행과 전체 열을 출력
a[:2,:]
a[[0,2],]

#행렬의 형태 확인
a.shape

 #a가 몇차원인지 확인
a.ndim
728x90
반응형

'BIG DATA STUDY > Python' 카테고리의 다른 글

파이썬 배우기 #Pandas  (0) 2022.01.25
파이썬 배우기 #11 행렬2  (0) 2022.01.21
파이썬_연습문제  (0) 2022.01.19
파이썬 배우기 #9 파이썬 내장함수  (0) 2022.01.18
파이썬 배우기 #8 모듈  (0) 2022.01.17

댓글