ndarray : 1가지 type의 값들로 구성, axis = 차원
속성
ndarray.ndim : 차원수
ndarray.shape : 데이터 모양
ndarray.size : 전체 값 개수
ndarray.dtype : 값의 type
ndarray.itemsize : 각 값의 크기 (byte)
1~5 행 4개 열 1개로
모든 값 0.0 으로
ar1= np.arange(15).reshape (3,5)
# 1~14 까지 3행 5열로
np.arange(5, 20, 2)
# 5~19 까지 두개씩 뛰면서
np.random.randn(3,2)
# 3행2열 정규분포 랜덤값
np.random.randint(1, 100, size=6).reshape(3,2)
#1~99까지 6개
주요 파라메터 : axis =차원 기준
ex) B 생성
B=np.arange(12).reshape (3,4)
# 첫번째 차원 =3개 element , 두번째 차원 =각기 element
B.sum (axis=0)
# B에서 행인 3개의 element 끼리 더함
B.sum (axis=1)
# B에서 2번째 차원인 열 4개의 element 끼리 더함
A[ i : j : k ]
# i부터 j-1까지의 범위 내에서 k개씩 뛰면서 가져오라는 것
A = np.arange(35).reshape(5, 7)
# A = [[ 0, 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, 32, 33, 34]]
print(A[1:5:2, ::3])
출력
# [[7, 10, 13],
# [21, 24, 27]]
#최종출력
[[7, 10, 13],
[21, 24, 27]]
맨 뒤가 열, 그다음이 행, 그다음이 종이 장!
1차원(축 0): 3D 배열의 레이어(깊이)
2차원(축 1): 각 레이어 내의 행
3차원(축 2): 각 행 내의 열
인덱싱 표기법 'C[:, :, 1:2]'는 다음과 같이 읽을 수 있습니다.
: - 첫 번째 차원(모든 레이어)을 따라 모든 요소를 선택합니다.
: - 두 번째 차원을 따라 모든 요소를 선택합니다(각 레이어 내의 모든 행).
1:2 - 인덱스 1(두 번째 열)부터 시작하여 인덱스 2(포함하지 않음)까지 세 번째 차원을 따라 요소를 선택합니다.
A = np.arange(35).reshape(5, 7)
# A = [[ 0, 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, 32, 33, 34]]
print(A[np.array([0,2,4]), np.array([0,1,2])])
출력
#[ 0, 15, 30]
우선 np.array([0, 2, 4])는 행, np.array([0,1,2])은 열
0,2,4번째 행을 뽑아오고:[ 0, 1, 2, 3, 4, 5, 6],[14, 15, 16, 17, 18, 19, 20],[28, 29, 30, 31, 32, 33, 34]
np.array([0,1,2])는 위에 행에서 0행의 0열 , 1행의 1열 2행의 2열을 뽑기
=> [ 0, 15, 30]