아나콘다로 머신 러닝을 실습하다 보면, 가상 환경이라는 개념이 나와버립니다. 이에 대해서 간단하게 실습해 보도록 하겠습니다. 물론, 아나콘다에서는 편리하게 사용할 수 있습니다. 여기에서는 자세한 pip 명령어들은 다루지 않습니다. 윈도우 10에, python 3.8.x에서 실습하였습니다. pip 버전은 20.2.x입니다. 먼저, 빈 프로젝트 폴더에 들어가서, python -m venv numpy_ex 명령어를 실행해 보겠습니다. 그러면, numpy_ex 폴더 아래에 numpy_ex라는 이름의 가상 환경을 만듭니다. 그러면, 가상환경 이름 밑에, Scripts가 있는데요. powershell에서는 Activate.ps1을 실행하면 됩니다. 그러면, numpy_ex라는 가상 환경이 올라간 상태가 됩니다. t..
코딩 검색 결과
백준 1325번은 c,c++로 풀면 쉽게 풀리는 dfs, bfs 문제 중 하나입니다. 그런데 Java로 풀면 시간이 빡빡한데요. 그 이유 중 하나는 박싱, 언박싱에 의한 객체 생성 때문입니다. 이에 대해서 아직 익숙하지 않으시다면, 이 포스트를 보고 오시는 것도 좋습니다. 통과를 하시고 나서, java로 통과한 코드 중에서 1등과 2등 코드의 차이를 보면 대충 3초 가량이 나는 것을 볼 수 있습니다. 이 두 코드를 보시면, 하나는 primitive type 배열을 썼고, 다른 하나는 그렇지 않았음을 볼 수 있는데요. 3초 차이라니. O(nm) 복잡도에서, 아슬아슬하게 통과할 복잡도에서, 3초면 상당히 큽니다. 그 원인 중 하나가 필요 없는 객체 생성이라 했으니, trace를 해 보겠습니다. jdk 8 기..
파이썬에는 built in 함수로 id가 있습니다. 문서에 따르면, 이것은 객체의 고유값을 리턴하는 메서드입니다. cpython은 주솟값을 돌려준다고 문서에 언급이 되어 있습니다. 저는 이 메서드를 어떤 객체를 가리키는지 보기 위해서 쓰곤 합니다. 몇 개의 예를 보고, 톡방에 질문 들어왔던 내용도 보도록 하겠습니다. 예제 1입니다. 그리 어려울 것은 없습니다. a는 배열 [5]를 가리키고, b는 [10]을 가리킵니다. 이 상태에서 id(a)와 id(b)를 출력합니다. 다음에, b에 a를 대입합니다. 다음에, id(b)를 출력합니다. id 값을 찍어보니 위와 같이 나왔습니다. 이것을 trace 해 보도록 하겠습니다. 먼저 4번째 줄 상황을 보겠습니다. id(a)와 id(b)가 달랐습니다. a와 b가 다른 ..
파이선에서 n차원 배열을 초기화 할 일은 꽤 많습니다. 어제도 그러한 코드를 작성했거든요. n = 2일 때만 작성해 보도록 하겠습니다. n > 2이상일 때는 2일 때만 잘 응용하면 되기 때문입니다. 어떻게 해야 하는지 예제 코드들을 보도록 하겠습니다. 요구 사항은 int형 Object를 저장할 2차원 배열을 만들라는 것입니다. 저는 9x9짜리 배열을 만들었습니다. 그런데, 이 코드는 어떻게 동작할까요? 저는 2번째 줄에서 arr[0][0]만 1로 바꾸었습니다. 그런데, arr[0][0]과 arr[1][0]을 출력해 보니, 둘 다 1이 나왔습니다. 왜 그럴까요? 어디선가 주소값만 복사되는 얕은 복사가 일어났기 때문입니다. python에서 id는 해당 객체의 값을 얻어오는 코드입니다. 9개의 루프를 돌면서 ..
레코드에 double, float과 같은 실수 타입이 있습니다. 예를 들자면, 0.1달러, 0.2달러와 같은 것들입니다. 이것을 double로 저장했을 때와 decimal로 저장했을 때 어떤 차이가 있을까요? 간단하게 알아보겠습니다. NewTable은 deci, dou, deci2, dou2 필드가 있습니다. deci가 prefix인 것은 decimal(10,5)로, dou가 prefix인 것은 double로 저장하였습니다. 데이터들을 넣어 보겠습니다. 이 테이블에 있는 데이터들을 보겠습니다. 그러면 1.3, 1.3, 1.3, 1.3과 1.1, 1.1, 1.1, 1.1이 나옵니다. 여기서 deci+deci2와 dou+dou2를 출력해 보도록 하겠습니다. 위와 같이 나오는데요. 각각 2.6, 2.6과 2...
최근댓글