본문 바로가기
IT,SW,Data,Cloud,코딩/Python

2023년6월2일 파이썬공부 - 데이터사이언스스쿨 3장 넘파이 배열 프로그래밍 3.2 배열의 생성과 변형 :: 코드 따라 쳐보기

by 착실하게 2023. 6. 2.
반응형

https://datascienceschool.net/01%20python/03.02%20%EB%B0%B0%EC%97%B4%EC%9D%98%20%EC%83%9D%EC%84%B1%EA%B3%BC%20%EB%B3%80%ED%98%95.html

 

3.2 배열의 생성과 변형 — 데이터 사이언스 스쿨

.ipynb .pdf to have style consistency -->

datascienceschool.net

 

# 3.2 배열의 생성과 변형 
import numpy as np 

# ndarray는 원소가 모두 같은 자료형이어야 한다

x = np.array([1, 2, 3])
print(x.dtype) #int64 
print(x[0]+x[1]) #3

x = np.array([1, 2, 3],dtype='str') 
print(x.dtype) #<U1 #'a','b','c'
#unicode문자열 #'str'과 'U'는 같은 결과가 나왔음 
print(x[0]+x[1]) #12 

print(np.inf)
print(np.nan)

print(np.array([0,1,-1,0]) / np.array([1,0,0,0]))
#array([  0.,  inf, -inf,  nan])

print(np.log(0)) # -inf
print(np.exp(-np.inf)) #0.0

a = np.zeros(5)
print(a)
b = np.zeros([2,3])
print(b)
c = np.zeros([2,3],dtype='i')
print(c)
d = np.zeros(5,dtype="U4") # 4글자 유니코드 문자열 
print(d)

d[0] = "abc"
d[1] = "abcd"
d[2] = "ABCDE" #짤린다 
print(d)

e = np.ones((2,3,4),dtype="i8")
print(e)
e = np.ones([2,3,4],dtype="i8")
print(e)

print(b)
e=np.ones_like(b,dtype="f")
print(e)
f=np.zeros_like(e,dtype="i")
print(f)
g=np.empty((4,3))
print(g)

흠 ㅠㅠ 

 

import numpy as np 

#arange = 넘파이의 range
print(np.arange(10))
print(np.arange(3,21,2))

#선형구간 혹은 로그구간을 지정한 구간의 수만큼 분할한다.
print(np.linspace(0,100,5))
print(np.logspace(0.1,1,10))

# 2차원 배열의 전치 transpose 연산 
# 행과 열을 바꾸는 작업 
A=np.array([[1,2,3],[4,5,6]])
print(A)
print(A.T)

a = np.arange(12)
print(a)

#배열의 크기 변형
b=a.reshape(3,4)
print(b)

# -1은 newaxis 자동으로 계산됨 
c=a.reshape(3,-1)
print(c)
print(a.reshape(2,2,-1))

#다차원배열 ㅡ> 1차원배열 
print(b.flatten())
print(c.ravel())

x = np.arange(5)
print(x) #1번
x.reshape(1,5) #2번
print(x)
x.reshape(5,1) #3번 #1번,2번,3번은 다름
print(x)
x[:,np.newaxis] # x.reshape(5,1) 과 동일함
print(x)

#데이터 내용이 같아보여도 다른 객체라고함

#hstack
a1 = np.ones((2,3))
print(a1)
a2=np.zeros((2,2))
print(a2)

print(np.hstack([a1,a2]))
#hstack: 행의 개수가 같은 배열을 옆으로 연결해줌
#horizontal 

#vstack
b1=np.ones((2,3))
print(b1)
b2=np.zeros((3,3))
print(b2)
print(np.vstack([b1,b2]))
#vstack: 열의 개수가 같은 배열을 밑으로 연결해줌 
#vertical

#dstack
#depth 방향으로 배열을 합친다. 
c1 = np.ones((3,4))
print(c1)
c2=np.zeros((3,4))
print(c2)

print("==========")
c3=np.dstack([c1,c2])
print(c3)
print(c3.shape)
#연결하려는 배열들의 크기가 모두 같아야 한다.

print("==========")
#stack함수는 dstack의 확장판
#default는 axis=0
c4=np.stack([c1,c2])
print(c4)
print(c4.shape)

 

 

 

반응형

댓글