[Python] Numpy - 배열 슬라이싱(slicing)
·
개발 타임캡슐/Python
배열 슬라이싱 파이썬 리스트와 유사하게 Numpy 배열도 슬라이싱이 가능하다. a = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) b = a[:2, 1:3] print(b) #[[2 3] #[6 7]] Numpy배열의 경우 다차원인 경우가 많기 때문에 어떻게 슬라이싱 할지 명확하게 해야한다. print(a[0, 1]) #2 b[0, 0] = 77 #b의 [0, 0]은 a의 [0, 1] print(a) #[[ 1 77 3 4] #[ 5 6 7 8] #[ 9 10 11 12]] Numpy배열의 슬라이싱은 리스트와 달리 새로운 배열을 생성하지 않는다. 기존 배열에 대한 새로운 View를 제공할 뿐이다. 따라서 위의 예시와 같이 슬라이스 된 배열의 값을 수..
[Python] Numpy - 배열 reshape
·
개발 타임캡슐/Python
배열 reshape Numpy배열은 원소의 개수가 유지되는 경우에 자유롭게 다른 shape로 변경이 가능하다. arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]) print(arr) #4*3 #[[ 1 2 3] #[ 4 5 6] #[ 7 8 9] #[10 11 12]] 4*3의 배열이 있을 때 arr1 = np.reshape(arr, (12)) print(arr1) #[ 1 2 3 4 5 6 7 8 9 10 11 12] 이런식으로 원소의 개수가 같을 경우 변경이 가능하다. arr1 = arr.reshape(12) print(arr1) #[ 1 2 3 4 5 6 7 8 9 10 11 12] 위의 코드를 이런식으로 사용할 수도 있다. arr2 =..
[Python] Numpy 배열 / Numpy배열 함수
·
개발 타임캡슐/Python
Numpy import numpy as np Numpy를 사용하기 위해 import해준다. a = np.array([1, 2, 3]) print(a) #[1 2 3] print(a[0], a[1], a[2]) #1 2 3 print(type(a)) # print(a.ndim) #배열의 차원 #1 print(a.shape) #배열의 차원 크기 #(3,) print(a.dtype) #배열의 데이터 타입 #int64 a[0] = 5 #배열의 값 변경가능 print(a) #[5 2 3] ndim / rank - 배열의 차원 shape - 배열의 차원 별 크기를 나타내는 튜플 dtype - 배열에 저장된 데이터의 타입 Numpy 배열에는 동일한 타입의 값들이 저장된다. b = np.array([[1, 2, 3],..
[Python] 백준 2581 - 소수
·
Algorithm
문제 자연수 M과 N이 주어질 때 M이상 N이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 소수는 61, 67, 71, 73, 79, 83, 89, 97 총 8개가 있으므로, 이들 소수의 합은 620이고, 최솟값은 61이 된다. 입력 입력의 첫째 줄에 M이, 둘째 줄에 N이 주어진다. M과 N은 10,000이하의 자연수이며, M은 N보다 작거나 같다. 출력 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. 정답 import math def is_pr..
[Python] 백준 1929 - 소수 구하기
·
Algorithm
문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 정답 import math def is_prime(num): if num
[Python] 백준 2798 - 블랙잭
·
Algorithm
문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 외친다. 이제 플레이어는 제한된 시간 안에 N장의 카드 중에서 3장의 카드를 골라야 한다. 블랙잭 변형 게임이기 때문에, 플레이어가 고른 카드의 합은 M을 넘지 않으면서 M과 최대한 가깝게 만들어야 한다. N장의 카드에 써져 있는 숫자가 주어졌을 때, M..