
Shape: 배열의 형태나 모양을 알려줌
1. 1차원 배열
import numpy as np
arr1=np.array([1,2,3])
print(arr1.shape)
#출력 결과: (3,)
import numpy as np
arr1=np.array([[1,2,3],[4,5,6]])
print(arr1.shape)
#출력 결과: (2,3)
import numpy as np
arr1=np.array([1,2,3])
print(type(arr1))
#출력 결과: class 'numpy.ndarray'
dtype: 데이터 타입 확인
import numpy as np
arr1=np.array([[1,2,3],[4,5,6]])
print(arr1.size)
#출력 결과: 6
배열을 차원을 알고자 할 때
import numpy as np
arr1=np.array([[1,2,3],[4,5,6]])
print(arr1.ndim)
#출력 결과: 2
배열 원소가 모두 0
import numpy as np
print(np.zeros((3,3)))
#출력
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
배열 원소가 모두 1
import numpy as np
print(np.zeros((3,3)))
#출력
[[1. 1. 1.]
[1. 1. 1.]
[1. 1. 1.]]
배열 원소가 초기화가 안된 상태
import numpy as np
print(np.empty((3,3)))
#출력
[[0.00e+000 0.00e+000 0.00e+000]
[0.00e+000 0.00e+000 1.74e-321]
[0.00e+000 0.00e+000 0.00e+000]]
import numpy as np
print(np.arange(3))
#출력
[0 1 2]
0부터 10까지 2씩 증가하는 배열
import numpy as np
print(np.arange(0,11,2))
#출력
[ 0 2 4 6 8 10]
import numpy as np
arr1=np.array([1,2,3,4,5])
print(arr1.dtype)
arr2=arr1.astype(np.float64)
print(arr2.dtype)
#출력 결과
int32
float64
-ndarray의 데이터 선택하기
의-특정 위치의 단일 값 측정
-팬시 인덱싱
-불린 인덱싱차원과 크기를 변경
reshape(-1,1): 2차원으로 변형하되 컬럼 열 크기가 1로 고정
reshape(-1,): 1차원으로 변환
reshape(2,5): 2행 5열로 변경
import numpy as np
arr1=np.arange(10)
arr2=arr1.reshape((2,5))
-ndarray의 데이터 선택하기
-특정 위치의 단일 값 측정: 원하는 위치의 인덱스 값 지정
-팬시 인덱싱: 리스트나 ndarray로 인덱스 집합을 지정하면 해당 위치의 인덱스에 해당하는 ndarray값을 반환하는 방법
-불린 인덱싱: True에 해당하는 인덱스 위치에 있는 ndarray값 반환
-슬라이싱
import numpy as np
#1차원
arr1=np.arange(10)
arr[0:3] #인덱스 번호가 0부터 3까지
arr[:3] #인덱스 번호가 처음부터 3까지
arr[3:] #인덱스 번호가 3부터 끝까지
arr[:] #모두
#2차원
arr=np.arange(1,10).reshape(3,3)
arr[0:2,0:1]//행: 0부터 2까지, 열: 0부터 1까지
-팬시 인덱싱
import numpy as np
#1차원
arr=np.arange(1,10)
arr[[2,4,7]]
#2차원
arr=np.arange(1,10).reshape(3,3)
arr[[0,1],2] #행: 0행과 1행, 열: 2열
-불린 인덱싱
#불린 인덱싱 사용 X
import numpy as np
arr=np.arange(1,10)
target=[]
for i in range(0,9):
if arr[i]>5:
target.append(i)
result=np.array(target)
print(result)
#불린 인덱싱 사용 O
import numpy as np
arr=np.arange(1,10)
arr>5
#참
arr[arr>5]
#거짓
arr[~[arr>5]]
-덧셈
np.add(arr1, arr2)
-곱셈
np.multiply(arr1, arr2)
-배열의 곱(내적)
1. arr1.dot(arr2)
2. np.dot(arr1, arr2)
linspace(): 시작점과 끝점을 균일 간격으로 나눈 점들을 생성해주는 함수
import numpy as np
import matplotlib.pyplot as plt
arr=np.linspace(0,10,5) #0부터 10까지 숫자 중 5개만
print(arr)
plt.plot(arr,"x") #해당 값 x로 표시
plt.show() #모든 점 다 보여주기
#랜덤 수
import numpy as np
import matplotlib.pyplot as plt
arr=np.random.rand(100) # 0.0~1.0 사이의 균등 분포에서 난수 추출
plt.hist(arr, bins=50) #막대기 그래프, 50개 구간으로 나누기
plt.show() #모든 점 다 보여주기
#정규 분포
import numpy as np
import matplotlib.pyplot as plt
arr=np.random.randn(3,4) # 기댓값이 0이고 표준편차가 1인 가우시안 표준 정규 분포를 따르는 난수 생성(3행 4열)
np.mean(arr) # 평균값
np.std(arr) # 표준편차
arr=np.random.randn(1000)
plt.hist(arr, bins=100) #막대기 그래프, 50개 구간으로 나누기
plt.show() #모든 점 다 보여주기
#정수형
import numpy as np
import matplotlib.pyplot as plt
arr=np.random.randint(-100,100,1000) #정수로 추출
plt.hist(arr, bins=100) #막대기 그래프, 50개 구간으로 나누기
plt.show() #모든 점 다 보여주기