비전공개미 개발노트
[Python] Numpy 기본출력 본문
반응형
SMALL
# -*- coding: utf-8 -*-
# Numpy
import numpy as np
for str in dir(np):
print(str)
print(help(np))
print(help(np.dtype))
b = [i for i in range(15)]
print(b)
a = np.arange(15).reshape(3,5)
print(a)
print(a.shape)
print(a.ndim)
print(a.dtype)
print(a.itemsize)
print(a.size)
print(type(a))
t = (10, 20, 30, 40, 50)
print(type(t))
tt = np.array(t)
print(type(tt))
s = {10, 20, 30, 40, 50}
print(type(s))
ss = np.array(s)
print(type(ss))
m = [10, 20, 30, 40, 50]
print(type(m))
mm = np.array(m)
print(type(mm))
w = [-5, 4, 7, 8, 0, -7, -1, 2, -5, 6]
print(np.shape(w))
print(np.abs(w)) #양수로 변경
print(np.sqrt(w))
print(np.square(w)) #제곱
print(np.isnan(w)) #NaN값이 있는지 확인
print(np.sum(w))
print(np.mean(w)) #평균값
print(np.max(w))
print(np.min(w))
print(np.sort(w))
print(np.sort(w)[::-1])
m = [[1, 3, 5], [2, 4, 6]]
print(np.ndim(m))
print(np.shape(m))
w = [1, 2, 3, 4, 5, 6]
w = np.array(w).reshape(2, 3)
print(np.shape(w))
# w = np.reshape(3, 3)
# axis = 0 ↓ 행방향 계산
# axis = 1 → 열방향 계산
print(np.sum(w))
print(np.sum(w, axis=0))
print(np.sum(w, axis=1))
print(np.mean(w))
print(np.mean(w, axis=0))
print(np.mean(w, axis=1))
print(np.median(w))
print(np.median(w, axis=0))
print(np.median(w, axis=1))
print(np.var(w)) #분산
print(np.std(w)) #표준편차
m = [10, 20, 30, 40, 50]
# print(m + 2)
m = np.array(m)
print(m + 2) #element wise
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
a = np.array(a)
b = np.array(b)
print(a - b)
print(a ** 2) #각 값의 제곱
print(a >= 3) #각 값이 참/거짓 확인
c = np.arange(1, 7).reshape(2, 3)
d = np.arange(11, 17).reshape(2, 3)
print(c)
print(d)
print(np.add(c, d)) #각각 배열을 더하기
print(np.subtract(c, d)) #빼기
print(np.multiply(c, d)) #곱하기
print(np.divide(c, d)) #나누기
print(c + d)
print(c - d)
print(c * d)
print(c / d)
print(c * 2)
print(c ** 2)
a = np.array([[1, 1], [1, 1]])
b = np.array([[2, 3], [4, 5]])
print(a)
print(b)
print(a * b)
print(a @ b) # @행렬 곱셈
print(a.dot(b))
print(np.zeros(10))
print(np.zeros((2, 3)))
print(np.ones((2, 3)))
c = np.random.randn(10) #랜덤한 수 10자리 출력
d = np.random.randn(10)
print(np.maximum(c, d)) #둘중에 큰값을 출력
print(np.minimum(c, d)) #둘중에 작은값은 출력
a = [i for i in range(10, 20)]
print(a)
print(a[:]) #모든것
print(a[1:5]) #1번째에서 5번째까지
print(a[:5]) #첫번째부터 5번째까지
print(a[5:]) #5번째부터 끝까지
print(a[1:10:2]) #1번째부터 9번째까지 2씩증가하는 수를 출력
print(a[:-1])
print(a[10:1:-1]) #10번째부터 1번째까지 리스트를 거꾸로 출력
print((a[::-1])) #리스트를 거꾸로 출력(내림차순)
b = "ABCDEFG"
print(b[1:5]) #문자열도 리스트기 때문에 자르기 가능
print(b[::-1])
c = np.arange(10, 20) #numpy로 출력시에는 리스트와 다르게 ,콤마가 없음
print(c)
print(c[:])
print(c[1:5])
print(c[::2]) #전체출력 2씩증가하는값
print(c[10:1:-1])
d = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]]
print(d)
print(d[2][3])
print(d[:][:])
print(d[0:2][0:2]) #앞에가 다중행일경우 뒤에도 다중행으로 똑같이 출력됨(일부분 추출은 pandas활용)
print(d[2][:])
# print(d[0:2,0:2]) #list에서는 안됨(numpy에서 가능)
e = np.arange(1, 16).reshape(3, 5)
print(e)
print(e[2][2])
print(e[2][:])
print(e[:2][:2])
print(e[:-1][:-1])
print("-------------------------------")
print(e[:2, :2]) #행, 열
print(e[:-1, :-1])
print(e[1:2, :])
print(e[2, 2])
#numpy에서만 가능함(list는 안됨)
a = np.arange(32).reshape(8, 4)
print(a)
print(a[[7, 3, 1, 4]]) #원하는 행의 번호를 입력해 뽑을 수 있다(배열2개 사용)
print(a[[-4, -5, 0, 3]]) #[[행]]
print(a[[1, 5, 7, 2], [0, 3, 1, 2]]) #[[행], [열]]
print(a.T) #전치행렬(행과 열을 변경)
b = np.arange(2 * 3 * 4).reshape(2, 3, 4) #2면 3행 4열
print(b)
print(b.shape)
print(b[1, 2, 3]) #1번째면 2번째행 3번째열 출력
print(b[1, :, :]) #1면의 모든것
print(b[1, ...]) #...은 모든것
print(b[:, :, 2]) #모든면의 모든행의 2번째열 출력
print(b[..., 2])
print(a.reshape(4, 8))
a.resize(4, 8)
print(a)
print(a.reshape(4, -1)) #-1은 행의 갯수에 맞게 알아서 정렬됨
# print(a.reshape(-1, 7)) #데이터 크기는 맞춰줘야됨
print(a.reshape(-1, 8))
a = np.floor(np.random.rand(2, 2) * 100)
b = np.floor(np.random.rand(2, 2) * 100)
print(a)
print(b)
print(np.vstack((a, b))) #세로 #값이 두개일때 tuple로 값을 주면됨
print(np.hstack((a, b))) #가로
c = np.floor(np.random.rand(2, 12) * 100)
print(c)
print(np.hsplit(c, 3))
print(np.hsplit(c, (3, 7)))
a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])
c = np.array([True, True, False, False, True])
print(list((a if c else b) for a, b, c in zip(a, b, c)))
#if c가 참이면 a를 출력 거짓이면 b를 출력
#zip은 출력이 안됨 --> list로 변경하여 출력
print(np.where(c, a, b)) #where --> 첫번째 조건, 두번째 참, 세번째 거짓
print("--------------------------")
d = np.random.randn(4, 4)
print(d)
print(np.where(d>0, True, False))
print(np.where(d>0, d, 0))
np.save("ndarray", a)
aa = np.load("ndarray.npy")
print(aa)
np.savez("ndarray", a=a, b=b)
arr = np.load("ndarray.npz")
print(arr["a"])
print(arr["b"])
반응형
LIST
'프로그래밍 > Python' 카테고리의 다른 글
[Python] matplotlib.pyplot, seaborn 기본연습 (0) | 2022.12.01 |
---|---|
[Python] Pandas 기본출력 (0) | 2022.12.01 |
python 5일차 - 성적 관리 프로그램 (0) | 2022.09.02 |
python 5일차 - NumPy (0) | 2022.09.02 |
python 5일차 - OOP, 클래스 (0) | 2022.09.02 |
Comments