넘파이 라이브러리를 설치합니다.
# 주피터 노트북 사용자
!pip install numpy
넘파이를 np라는 이름으로 불러오고 버전을 출력합니다.
import numpy as np # numpy의 별칭을 np로 설정
print(np.__version__) # 파이썬 라이브러리의 버전 확인
arange로 생성한 배열을 reshape로 모양 변경합니다.
d=np.arange(12).reshape(3,4)
print(d,d.shape)
배열의 데이터 타입을 확인합니다.
print(d.dtype)
배열의 차원 수를 확인합니다.
print(d.ndim)
배열의 전치(transpose)를 구합니다.
print(d.T) # 전치 행렬
배열의 전체 원소 개수를 반환합니다.
print(d.size) # 요소의 개수
배열이 차지하는 바이트 수를 반환합니다.
print(d.nbytes) # 64bit는 8byte이므로 총 96byte(8*12)
flat을 사용하여 모든 원소를 1로 설정합니다.
d.flat=1
print(d)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
mynpa1=np.array([1, 2, 3])
print(type(mynpa1))
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
mylist2=[[1, 2, 3],
[4, 5, 6]]
print(type(mylist2))
mynpa2=np.array(mylist2) # 변수명 직접 입력
print(type(mynpa2))
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
import pandas as pd
mypd1=pd.DataFrame([1, 2, 3])
print(type(mypd1))
mynp1=np.array(mypd1)
print(type(mynp1))
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
mylist2=[[1, 2, 3],
[4, 5, 6]]
print(type(mylist2))
mypd2=pd.DataFrame(mylist2)
print(type(mypd2))
mynpa2=np.array(mypd2)
print(type(mynpa2))
mypd2
넘파이를 np라는 이름으로 불러오고 버전을 출력합니다.
import numpy as np
a=np.arange(3)
print(a, type(a), a.ndim, a.shape)
arange로 정수 배열을 생성합니다.
a2=np.arange(4)
a2
arange로 정수 배열을 생성합니다.
a2=np.arange(2, 4)
print(a2, a2.shape)
arange로 정수 배열을 생성합니다.
a3=np.arange(0, 5, 2)
print(a3, a3.shape)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
m=np.array([[0, 1, 2],
[3, 4, 5]])
print(m, m.shape)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
m=np.array([np.arange(3), np.arange(3, 6)])
print(m, m.shape)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
m=np.array([[0, 3],
[1, 4],
[2, 5]])
print(m, m.shape)
print(m.shape[0], m.shape[1])
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
m=np.array([np.arange(0, 4, 3), np.arange(1, 5, 3),
np.arange(2, 6, 3)])
print(m, m.shape)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
m=np.array([[[0, 1, 2],
[3, 4, 5]],
[[0, 1, 2],
[3, 4, 5]]])
print(m)
print(m.shape)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
m=np.array([[[0, 1],
[2, 3]],
[[4, 5],
[6, 7]],
[[8, 9],
[10, 11]]])
print(m, m.shape)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
m=np.array([[[0, 1, 2]],
[[3, 4, 5]],
[[0, 1, 2]],
[[3, 4, 5]]])
print(m, m.shape)
넘파이 배열 관련 기능을 시연합니다.
list=[1, 2, 3, 4, 5]
for i in list:
print(i)
넘파이 배열 관련 기능을 시연합니다.
list=[1, 2, 3, 4, 5]
for i in range(1, 6):
print(i)
넘파이 배열 관련 기능을 시연합니다.
list=[1, 2, 3, 4, 5]
for i in range(1, 6, 2):
print(i)
넘파이 배열 관련 기능을 시연합니다.
arr=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr
arange로 정수 배열을 생성합니다.
arr=np.arange(start=1, stop=11, step=1)
arr
arange로 정수 배열을 생성합니다.
arr=np.arange(1, 11)
arr
arange로 정수 배열을 생성합니다.
arr=np.arange(start=1, stop=10, step=2)
arr
arange로 정수 배열을 생성합니다.
arr=np.arange(1, 10, 2)
arr
넘파이를 np라는 이름으로 불러오고 버전을 출력합니다.
import numpy as np
nda=np.array([0, 1, 2, 3, 4, 5])
print(nda, type(nda)) # nda 변수의 데이터형 반환
print(nda.dtype) # 넘파이 배열인 nda 요소의 자료형 반환
nda # 넘파이 배열이므로 array([]) 형식으로 표시
배열의 데이터 타입을 확인합니다.
nda1=np.array([0, 1, 2, 3.0, 4, 5])
print(nda1, nda1.dtype)
배열의 데이터 타입을 확인합니다.
nda2=np.array([0, 1, 2, 3, 4, 5])
print(nda2, nda2.dtype)
arange로 정수 배열을 생성합니다.
m1=np.arange(6)
print(m1)
print(m1.shape)
배열의 구조를 변경합니다.
m2=m1.reshape(6, 1)
print(m2, m2.shape) # 1행 6열을 6행 1열로 변경
배열의 구조를 변경합니다.
m2=m1.reshape(2, 3)
print(m2, m2.shape)
arange로 생성한 배열을 reshape로 모양 변경합니다.
m1=np.arange(12)
m3=m1.reshape(2, 2, 3)
print(m3, m3.shape)
arange로 생성한 배열을 reshape로 모양 변경합니다.
m1=np.arange(6)
print(m1, m1.shape)
m2=m1.reshape(-1, 2) # 행 수는 자동, 2열 생성
print(m2, m2.shape)
m2=m1.reshape(-1, 3) # 행 수는 자동, 3열 생성
print(m2, m2.shape)
m2=m1.reshape(-1, 1) # 행 수는 자동, 1열 생성
print(m2, m2.shape)
arange로 생성한 배열을 reshape로 모양 변경합니다.
m1=np.arange(6)
m3=m1.reshape(-1, 2, 3)
print(m3, m3.shape)
m3=m1.reshape(-1, 3, 2) # 면 수 자동, 3행 2열 생성
print(m3,m3.shape)
m3=m1.reshape(2, 3, -1) # 열 수 자동, 2면 3행 생성
print(m3, m3.shape)
arange로 생성한 배열을 reshape로 모양 변경합니다.
a=np.arange(12).reshape(3, 4)
a
flat을 사용하여 모든 원소를 1로 설정합니다.
f=a.flatten()
print(f, f.shape)
넘파이 배열 관련 기능을 시연합니다.
a
행 또는 열의 순서를 뒤집습니다.
print(a[::-1]) # 행 순서를 거꾸로 변경
넘파이 배열 관련 기능을 시연합니다.
a
넘파이 배열 관련 기능을 시연합니다.
print(a[:,::-1]) # 열 순서를 거꾸로 변경
넘파이 배열 관련 기능을 시연합니다.
a
넘파이 배열 관련 기능을 시연합니다.
print(a[::-1,::-1]) # 행과 열 순서를 거꾸로 변경
넘파이 배열 관련 기능을 시연합니다.
t=a.transpose()
print(a, a.shape) # a 배열은 3행 4열
print(t, t.shape) # t 배열은 a 배열을 4행 3열로 변경한 것
배열의 전치(transpose)를 구합니다.
print(a.T) # transpose() 함수와 결과 동일
arange로 생성한 배열을 reshape로 모양 변경합니다.
a=np.arange(9).reshape(3, 3)
b=a*2
print(a)
print(b)
넘파이 배열 관련 기능을 시연합니다.
r=np.vstack((a, b))
print(r, r.shape)
넘파이 배열 관련 기능을 시연합니다.
c=np.row_stack((a, b))
print(c, c.shape)
넘파이 배열 관련 기능을 시연합니다.
x=np.concatenate((a, b), axis=0)
print(x, x.shape)
넘파이 배열 관련 기능을 시연합니다.
r=np.hstack((a, b))
print(r, r.shape)
넘파이 배열 관련 기능을 시연합니다.
c=np.column_stack((a, b))
print(c, c.shape)
넘파이 배열 관련 기능을 시연합니다.
x=np.concatenate((a, b), axis=1)
print(x, x.shape)
arange로 생성한 배열을 reshape로 모양 변경합니다.
a=np.arange(12).reshape(4, 3)
print(a)
넘파이 배열 관련 기능을 시연합니다.
print(np.vsplit(a, 4))
넘파이 배열 관련 기능을 시연합니다.
print(np.split(a, 4, axis=0))
넘파이 배열 관련 기능을 시연합니다.
print(a[0:1], a[1:2], a[2:3], a[3:])
arange로 생성한 배열을 reshape로 모양 변경합니다.
a=np.arange(12).reshape(3, 4)
print(a)
넘파이 배열 관련 기능을 시연합니다.
print(np.hsplit(a, 4))
넘파이 배열 관련 기능을 시연합니다.
print(np.split(a, 4, axis=1))
arange로 정수 배열을 생성합니다.
d=np.arange(6)
print(d, d.shape)
넘파이 배열 관련 기능을 시연합니다.
# 1차원 배열의 인덱싱
print(d[0], d[1], d[2], d[-1], d[-2])
행 또는 열의 순서를 뒤집습니다.
# 1차원 배열의 슬라이싱
print(d[2:3], d[:], d[:-1])
print(d[::2], d[::-1])
d[0]=10 # 요소 값 변경
print(d)
arange로 생성한 배열을 reshape로 모양 변경합니다.
d=np.arange(12).reshape(3, 4)
print(d, d.shape)
넘파이 배열 관련 기능을 시연합니다.
# 2차원 배열의 인덱싱
print(d[0][0]) # 배열명[행][열] 형태
print(d[0,0]) # 배열명[행,열] 형태
print(d[2,1])
넘파이 배열 관련 기능을 시연합니다.
# 2차원 배열의 슬라이싱
print(d[0]) # 0행만 슬라이싱
print(d[0,:]) # 0행의 전체 열 슬라이싱
print(d[:,:-1]) # 마지막 열 제외한 전체 행과 열 슬라이싱
print(d[::2,::2]) # 2행 2열 간격으로 전체 행과 열 슬라이싱
넘파이 배열 관련 기능을 시연합니다.
d[0]=20 # 0번 행 요소를 모두 20으로 변경
print(d)
넘파이 배열 관련 기능을 시연합니다.
d[::2,::3]=30 # 슬라이싱된 요소값을 한꺼번에 변경
print(d[::2,::3])
print(d)
넘파이 배열 관련 기능을 시연합니다.
d[:,:]=-1 # 전체 요소값을 한꺼번에 변경
print(d)
arange로 생성한 배열을 reshape로 모양 변경합니다.
d=np.arange(12).reshape(2, 2, 3)
print(d, d.shape)
넘파이 배열 관련 기능을 시연합니다.
# 3차원 배열의 인덱싱
print(d[0][0][0]) # 0면 0행 0열 인덱싱
print(d[0, 0, 0]) # 0면 0행 0열 인덱싱
print(d[0, 1, 2]) # 0면 1행 2열 인덱싱
넘파이 배열 관련 기능을 시연합니다.
# 3차원 배열의 슬라이싱
print(d[:,:-1,:-1])
넘파이 배열 관련 기능을 시연합니다.
print(d[:,1:,1:])
넘파이 배열 관련 기능을 시연합니다.
print(d[:,:,-1])
넘파이 배열 관련 기능을 시연합니다.
print(d[:,-1,-1])
print(d[-1,-1,-1])
arange로 정수 배열을 생성합니다.
a=np.arange(12)
print(a, a.shape)
print(a[0]) # 스칼라
print(a[0:1]) # 배열(ndarray)
넘파이를 np라는 이름으로 불러오고 버전을 출력합니다.
import numpy as np
a=np.array([1, 2, 3, 4, 5, 6])
print(a)
넘파이 배열 관련 기능을 시연합니다.
print(a>2)
넘파이 배열 관련 기능을 시연합니다.
print(a[a>2])
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
a=np.array([1, 2, 3, 4, 5, 6])
result=a>2
result
넘파이 배열 관련 기능을 시연합니다.
a[a>2]
넘파이 배열 관련 기능을 시연합니다.
a[a!=3]
넘파이 배열 관련 기능을 시연합니다.
print(a[(a>2) & (a<6)]) # 2보다 크고 6보다 작은 요소만 추출
print(a[a % 2==0]) # 2로 나눈 나머지가 0인 요소만 추출
print(a[a<a.mean( )]) # 평균보다 작은 값만 추출
넘파이 배열 관련 기능을 시연합니다.
print(a[True])
print(a[False])
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
a=np.array([2, 8, 9, 7, 3, 1, 4, 5, 6])
print(a, a.shape)
r=np.sort(a) # 원본 변경 없이 오름차순 정렬
print(r, a)
넘파이 배열 관련 기능을 시연합니다.
# 오름차순 정렬
a.sort()
print(a)
행 또는 열의 순서를 뒤집습니다.
# 내림차순 정렬
r=np.sort(a)[::-1]
print(r)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
a=np.array([2, 8, 9, 7, 3, 1, 4, 5, 6])
print(a, a.shape)
넘파이 배열 관련 기능을 시연합니다.
np.argsort(a)
넘파이 배열 관련 기능을 시연합니다.
sort_index=np.argsort(a)
print(sort_index)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
arr2d=np.array([[5, 6, 7, 8],
[4, 3, 2, 1],
[10, 9, 12, 11]])
print(arr2d)
print(arr2d.shape)
넘파이 배열 관련 기능을 시연합니다.
# 열 방향으로 같은 행의 요소 정렬
np.sort(arr2d, axis=1)
넘파이 배열 관련 기능을 시연합니다.
# 행 방향으로 같은 열의 요소 정렬
np.sort(arr2d, axis=0)
넘파이 배열 관련 기능을 시연합니다.
# 열 방향으로 같은 행 정렬
print(arr2d)
print(np.sort(arr2d))
np.argsort(arr2d, axis=1)
넘파이 배열 관련 기능을 시연합니다.
# 행 방향으로 같은 열 정렬
print(arr2d)
print(np.sort(arr2d, axis=0))
np.argsort(arr2d, axis=0)
넘파이를 np라는 이름으로 불러오고 버전을 출력합니다.
# 같은 배열 내 요소의 합 구하기
import numpy as np
a=np.array([[1, 2, 3],
[4, 5, 6]])
np.sum(a, axis=0), np.sum(a, axis=1)
넘파이 배열 관련 기능을 시연합니다.
a.sum()
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
a=np.array([[1, 2, 3],
[4, 5, 6]])
b=2
print(a+b)
print(a-b)
print(a*b)
print(a/b)
arange로 생성한 배열을 reshape로 모양 변경합니다.
A=np.arange(1, 13).reshape(3, 4)
print(A+10)
print(A-10)
print(A*10)
print(A/10)
arange로 생성한 배열을 reshape로 모양 변경합니다.
A=np.arange(1, 13).reshape(3, 4)
A-1
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
a=np.array([[1, 2, 3],
[4, 5, 6]])
b=np.array([1, 2, 3]) # b=np.array([[1, 2, 3]])도 가능
print(a+b)
print(a-b)
print(a*b)
print(a/b)
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
a=np.array([[1, 2],
[3, 4]])
b=np.array([[1, 2],
[1, 2]])
print(a*b)
print(a.dot(b))
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
A=np.array([[1, 2],
[3, 4]])
B=np.array([1, 2])
A+B
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
A=np.array([[1, 2, 3],
[4, 5, 6]])
B=np.array([2])
A+B
리스트나 데이터프레임을 넘파이 배열로 변환합니다.
A=np.array([[1, 2, 3],
[4, 5, 6]])
B=np.array([[2],
[4]])
A+B
넘파이 배열 관련 기능을 시연합니다.