지난 시간에는 넘파이 배열의 차원을 변환/추가/제거/교체하는 API들에 대해서 알아봤습니다. 이번에는 서로 다른 배열을 합치는 메서드에 대해서 알아보려고 합니다. 나눠져 있는 데이터를 합칠 때 주로 사용하는데 그 빈도가 높은 만큼 각 메서드 사용법을 기억해두면 좋을 것 같습니다. 2차원 배열 합치기 2차원 배열(행렬)을 합칠 때 np.vstack(), np.hstack(), np.dstack() 메서드를 사용할 수 있습니다. np.vstack() np.vstack(tup) a = np.random.randint(0, 10, (1, 4)) b = np.random.randint(0, 10, (1, 4)) c = np.random.randint(0, 10, (1, 4)) print(a) # [[3 2 8 ..
선형대수학을 공부하면서 컴퓨터로는 벡터와 행렬의 곱셈 연산을 어떻게 하는지 궁금해하던 기억이 있습니다. 이번 포스팅에서는 벡터의 내적과 행렬의 곱셈 관련 API에 대해 알아보겠습니다. import numpy as np 벡터의 내적 np.dot(a, b, out=None) u = np.random.uniform(0, 5, (4, )) v = np.random.uniform(0, 5, (4, )) vec_sum = np.sum(u * v) print(vec_sum.round(2)) # 56.47 vec_sum_dotprod = np.dot(u, v) print(vec_sum_dotprod.round(2)) # 56.47 np.dot() 메서드를 사용해서 벡터의 내적을 구할 수 있습니다. 매개변수로 전달하는 ..
파이썬 random 모듈을 사용하면 여러 메서드를 사용해 난수를 생성할 수 있습니다. 주로 랜덤 데이터셋을 만들 때 사용합니다. 우선 모듈을 불러오도록 하겠습니다. import random random() a = random.random() print(a) # 0.5792535900838466 random() 메서드는 [0, 1) 사이의 임의의 실수를 리턴합니다. uniform() random.uniform(x, y) b = random.uniform(10, 20) print(b) # 13.975223079513814 uniform() 메서드는 [x, y) 사이의 임의의 실수를 리턴합니다. 두 개의 매개변수 값을 전달해서 랜덤 실수를 추출할 범위를 지정할 수 있습니다. randint() random.ra..
파이썬은 모든 것이 객체입니다. 그만큼 객체의 비중은 엄청나며 클래스와 같은 개념을 이해하기 위해서 반드시 알아야 하는 개념입니다. 그렇다면 이제부터 파이썬의 객체와 객체의 알 듯 말 듯 한 스페셜 메서드에 대해 알아보도록 하겠습니다. 객체란? 데이터와 메서드의 모음. 객체에 대한 수많은 정의가 존재하지만 개인적으로 내린 객체의 정의는 위와 같습니다. 사실 일상의 모든 물체는 객체라고 할 수 있습니다. 예를 들어 자동차는 연료의 양, 여분의 타이어 존재 유무와 같은 데이터 그리고 전진, 후진, 멈춤 등의 메서드로 구성된다고 볼 수 있습니다. arr = [1, 2, 3, 4] arr.append(10) # append 함수는 리스트의 메서드입니다 print(arr) # [1, 2, 3, 4, 10] 이와 ..
✅ 코드 def solution(participant, completion): tmp = {} for player in participant: tmp[player] = tmp.get(player, 0) + 1 for fin_player in completion: tmp[fin_player] -= 1 if tmp[fin_player] == 0: del tmp[fin_player] return list(tmp.keys())[0] participant 리스트에는 동명이인이 존재하기 때문에 집합 자료형은 사용하지 않았습니다. 대신에 동명이인의 수를 카운팅 할 수 있는 딕셔너리 자료형을 사용했습니다. 그렇게 리스트의 정보를 딕셔너리로 변환한 결과 문제를 해결할 수 있었습니다. 그 과정에서 자바스크립트 객체의 초기..