import numpy as np
arr = np.array([1, 2, 3, 4])
# array([1, 2, 3, 4])
arr = np.array([1, 2, 3.14, 4])
# array([1., 2., 3.14, 4.]) => 모든 값들이 float화
arr = np.array([[1, 2], [3, 4]])
# array([[1, 2], [3, 4]])
arr = np.array([1, 2, 3, 4], dtype = float)
# array([1., 2., 3., 4.])
arr.dtype
# dtype('float64')
arr.astype(int)
# dtype('int64')
배열 데이터 타입

다양한 배열 만들기
import numpy as np
arr = np.zeros(5, dtype = int)
# array([0, 0, 0, 0, 0])
arr = np.ones((3, 5), dtype = float)
# array([1., 1., 1., 1., 1.],
# [1., 1., 1., 1., 1.],
# [1., 1., 1., 1., 1.],)
arr = np.arrange(0, 20, 2)
# array([0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
arr = np.linspace(0, 1, 5) # 1을 5개로 균등하게 나눠달라
# array([0., 0.25, 0.5, 0.75, 1.])
arr = np.random.random((2, 2)) # shape를 인자로 받음 2 * 2
# array([0.332423, 0.2523423432],
# [0.5123123213, 0.7532112312]])
# 정규 분포로 데이터 추출
arr = np.random.normal(0, 1, (2, 2)) # (평균, 표준편차, shpae)
# array([0.332423, 0.2523423432],
# [0.5123123213, 0.7532112312]])
arr = np.random.random(0, 10, (2, 2))
# array([3, 4],
# [3, 10]])
배열의 구조
x2 = np.random.randint(10, size = (3, 4))
# array([3, 4, 5, 7],
# [3, 10, 9, 2],
# [1, 3, 6, 8]])
x2.ndim # 2 (차원)
x2.shape # (3, 4) 행렬
x2.size # 요소의 개수
x2.dtype # dtype('int64')
인덱싱
x = np.arrange(7)
x[3] # 3
x[7] # IndexError
x[0] = 10
# array([10, 1, 2, 3, 4, 5, 6])
x[1:4]
# array([1, 2, 3])
x[1:]
# array([1, 2, 3, 4, 5, 6])
x[:4]
# array([10, 1, 2, 3])
x[::2]
# array([10, 2, 4, 6])
print("2차원 array")
matrix = np.arange(1, 16).reshape(3,5) #1부터 15까지 들어있는 (3,5)짜리 배열을 만듭니다.
print(matrix)
# Q1. matrix의 자료형을 출력해보세요.
print(type(matrix))
# Q2. matrix의 차원을 출력해보세요.
print(matrix.ndim)
# Q3. matrix의 모양을 출력해보세요.
print(matrix.shape)
# Q4. matrix의 크기를 출력해보세요.
print(matrix.size)
# Q5. matrix의 dtype(data type)을 출력해보세요.
print(matrix.dtype)
# Q6. matrix의 (2,3) 인덱스의 요소를 출력해보세요.
print(matrix[2][3])
# Q7. matrix의 행은 인덱스 0부터 인덱스 1까지, 열은 인덱스 1부터 인덱스 3까지 출력해보세요.
print(matrix[0:2, 1:4])
모양 바꾸기
x = np.arrange(8)
x.shape # (8,)
x2 = x.reshape((2, 4))
# array([[0, 1, 2, 3],
# [4, 5, 6, 7]])
x.shape # (2, 4)
이어 붙이기
x = np.array([0, 1, 2])
y = np.array([3, 4, 5])
np.concatenate([x, y])
# array([0, 1, 2, 3, 4, 5])
matrix = np.arrange(4).reshape(2, 2)
np.concatenate([matrix, matrix], axis = 0) # 행 방향으로 이어 붙이기
# array([[0, 1],
# [2, 3],
# [0, 1],
# [2, 3]])
np.concatenate([matrix, matrix], axis = 1) # 열 방향으로 이어 붙이기
# array([[0, 1, 0, 1],
# [2, 3, 2, 3]])
나누기