안녕하세요. 이번 시간에는 numpy append에 대해 간단히 알아봅시다. 이 메서드는 array의 끝에 matrix를 추가하는 메서드에요. 어떻게 쓰는지 예제를 통해서 알아보겠습니다. 먼저, 2차원 array일 때 쓰는 방법을 익혀 봅시다. append가 되기 전에 matrix는 아래 그림과 같아요. 여기서, 3번째 행에 [9, 10, 11, 12]를 추가하고 싶어요. 어떻게 하면 좋을까요? 일단, 1행 4열짜리 배열로 만들어야 하니, reshape를 이용해서 [9, 10, 11, 12]를 1행 4열짜리 numpy array로 변환합니다. 다음에, axis가 문제인데요. 이것이 0이면, first element를 의미해요. 뭔 말인지 모르겠으니, 아래 코드를 보겠습니다. np.append에서 2번째 ..
중급 레퍼런스/numpy 검색 결과
numpy의 reshape 메소드는 데이터의 변경 없이 shape만 바꿉니다. 예제 프로그램 몇 개를 보면서 이해해 보도록 하겠습니다. 먼저, 2번째 줄은 numpy 배열 [1, 2, 3, 4, 5, 6]을 생성합니다. A는 이렇게 그려질 겁니다. 4번째 줄에서 A.reshape((2, 3))이라고 되어 있는데요. 이는 A의 데이터는 바꾸지 않고 모양만 2행 3열짜리로 바꾸겠다는 의미입니다. 2행 3열이면 위와 같이 그려집니다. 실행 결과는 위와 같습니다. 또 다른 예제를 들어 보겠습니다. 이것은 어떨까요? 2번째 줄까지 수행하면, 아래와 같은 넘파이 배열이 생성될 겁니다. 그런데, reshape((2, 2, 2)) 라고 하였습니다. 그러면, 이것은 높이가 2이고, 세로가 2이고, 가로가 2인 모양으로 ..
numpy에서 indexing 연산은 생각보다 많이 써먹곤 했습니다. 그런데 numpy의 indexing에 걸리는 오버헤드가 어마어마하다는 것을 최근에야 알게 되었습니다. 상세 분석에서 분석할 기회가 있을 듯 싶습니다만 언제 할 지는 모르겠습니다. 여기에서는 간단하게 문제 상황을 정의하고, 어떻게 개선해야 하는지만 주로 잡도록 하겠습니다. 먼저 문제 상황을 정의해 보겠습니다. 간단한 점화식이 있습니다. 이 때, dp[19999]를 구하는 게 제 목적입니다. 누적합을 이용해서 매우 쉽게 풀 수 있지만, 저는 dp[n]을 구하기 위해 dp의 0번째 인덱스에 있는 값부터 n-1번째 인덱스에 있는 값까지 모두 접근을 한 다음에, 이들의 합을 계산해서, mod로 나눈 나머지를 취할 겁니다. 그리고, 이 값을 다시..
백준을 풀 때 numpy를 이용할 일이 가끔 있었습니다. 이번 시간에는 어떻게 numpy array를 초기화 하고, numpy 배열을 어떻게 파이썬의 리스트로 바꾸는지 보도록 하겠습니다. 그리고 list를 어떻게 넘파이 배열로 바꾸는 지도 배워봅시다. 보통 저는 int로 이루어진 배열을 많이 이용하니, 이걸 기준으로 설명해 보도록 하겠습니다. 코드를 보시면, li는 [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]입니다. 2차원 리스트임을 알 수 있어요. 이것을 그대로 np.array의 인자로 넘겨주면 됩니다. 결과는 어떻게 나올까요? 3행 4열짜리 numpy array가 만들어 졌습니다. 이제 다른 것을 해 봅시다. 1행 10열짜리 int list가 들어갑니다. 그런데,..
최근댓글