반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

[Python] Numpy 기본출력 본문

프로그래밍/Python

[Python] Numpy 기본출력

비전공개미 2022. 12. 1. 19:48
반응형
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