본문 바로가기

파이썬 팁13

Numpy 배열에서 0이 아닌 값 찾기 Numpy 라이브러리를 불러와서 4*3 크기의 행렬 x 생성 In [1]: import numpy as np x = np.array([[0, 1, 0], [2, 5, 0], [3, 1, 2], [0, 0, 3]]) x Out[1]: array([[0, 1, 0], [2, 5, 0], [3, 1, 2], [0, 0, 3]]) n차원의 행렬 x에 0이 아닌 값이 k개 있다고 할때, np.nonzero(x)를 실행하면 길이 k인 array n개가 반환된다. 각 array는 0이 아닌 값들의 i번째 차원 index를 저장하고 있음 x의 0행 1열, 1행 0열, 1행 1열... 3행 2열까지 모두 0이 아님을 확인 가능 In [2]: np.nonzero(x) Out[2]: (array([0, 1, 1, 2, 2,.. 2023. 3. 29.
주피터 노트북에서 백준 입력 편하게 받기 백준에서 입력값이 여러 줄일 경우 일일이 입력하는게 상당히 귀찮다. 이럴때 로컬 경로의 텍스트 파일에서 직접 입력을 받으면 훨씬 편하다. 해당 주피터 노트북 파일(.ipynb)이 실행되는 경로와 같은 위치에 텍스트 파일을 생성한 후, 코드의 앞 부분에 한 줄을 추가하면 직접 입력해 input을 받는 코드와 완전히 동일하다. (기존의 input 함수를 덮어쓰는 것에 유의) # input.txt에 입력된 두 정수의 합을 출력 input = open("input.txt").readline a, b = map(int, input().split()) print(a + b) # input 함수 원래대로 # del input input.txt는 다른 이름으로 대체가 가능하고, input 역시 기존의 input 함수를.. 2023. 1. 31.
random 모듈 사용하기 random 모듈 사용하기¶ In [1]: import random random.randrange(range) 범위(range())내에서 랜덤하게 추출 In [2]: # range(0, 10)에서 랜덤 추출 random.randrange(0, 10) Out[2]: 3 In [3]: # range(0, 100, 5)에서 랜덤 추출 for _ in range(10) : print(random.randrange(0, 100, 5), end=" ") Out[3]: 70 70 20 60 40 65 60 15 20 25 random.randint(a, b) a 이상 b 이하의 정수 랜덤 추출 In [4]: # 0 이상 10 이하 정수 랜덤 추출 random.randint(0, 10) Out[4]: 7 In [5]:.. 2023. 1. 3.
다차원 리스트 값 바꿀 때 여러 줄이 같이 바뀐다면 다차원 리스트 값 바꿀 때 여러 줄이 같이 바뀐다면¶ 일반적으로 다차원 리스트에서 값을 변경할 때는 인덱스를 지정해 원하는 값을 넣어주면 된다. In [21]: x = [[3, 5, 6, 7], [-3, 0, 4, 5], [-9, 7, 8, 1]] print(x) [[3, 5, 6, 7], [-3, 0, 4, 5], [-9, 7, 8, 1]] In [22]: x[2][1] = 99 print(x) [[3, 5, 6, 7], [-3, 0, 4, 5], [-9, 99, 8, 1]] 그러나 모든 값이 0인 3 * 4 리스트를 다음과 생성하니 하나의 값만 바꿨는데도 여러 줄의 값이 한꺼번에 바뀐 것을 볼 수 있다. In : y1 = [[0] * 4] * 3 print(y1) [[0, 0, 0, 0], [0, 0.. 2022. 12. 9.