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')

배열 데이터 타입

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/46014815-2b9e-4e91-ab11-5a1138e68770/Untitled.png

다양한 배열 만들기

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]])

나누기