[TIL] Python numpy, list : June 15, 2020

RE_BROTHER·2020년 6월 15일
0

TIL

목록 보기
20/41
post-thumbnail
post-custom-banner

File Check Code

업무상 데이터를 확인할 간단한 프로그램이 필요하여 직접 코드를 작성하여 확인을 진행해보려고 도전하는 중에 신기한 경험(?), 중요한 경험(?)이 된 것 같은 기분이라 대략적인 내용을 적어볼까 한다.

직접 코드를 작성해본 프로그램에 대해 간단하게 적어보자면, 1~20000까지의 파일이 있는데 몇 개의 파일이 누락된 상태이다. 이 때 누락된 파일명이 무엇인지 찾아보는 기능을 한다.

해당 코드에서 import한 lib은 os, re, numpy 총 3가지를 사용하였다.
File I/O를 위해 os를 사용하고, 문자열 처리를 위해 re를 사용한다. numpy는 check list를 만들기 위해 사용되었다.
전체적인 구조는 위 이미지와 같다. 나름 표현한다고 그림판으로 맛깔나게 표현해보긴 했는데, 개인에 따라 이해가 될 수도 있고?.. 아닐지도 모르겠다.

numpy : Array of int32

numpy를 이용해서 check_list를 만들었는데, 예상과는 다르게 간단할거라 생각했던 코드가 말썽을 부린다. 어느 부분에서 문제가 있는지 살펴보던 도중 numpy로 만든 check_list의 type에서 1차 문제가 발생했다.

Python에서 일반적으로 사용하는 list와는 달리 numpy로 생성한 array의 type은 Array of int32 였고, 이를 내가 원하는 동작을 하는 프로그램에 사용하기엔 어려운 상황이 발생한 것이다.
코드에는 문제가 없지만, numpy에서는 재밌는 Warning을 안겨주었고, 이를 해결하는 방법으로는 numpy로 생성된 Arrray of int32를 바로 사용하는 것이 아니라, tolist() 함수를 사용하여 list로 변환하는 것이다.

etc

numpy로 생성한 check_numpytolist()를 이용해 list type으로 변경하여도 해당 elements의 type은 변하지 않는다.

나한테 하나도 도움이 되지 않을 것이라 생각하고 아무 생각없이 만들었는데, 이러한 사소한 이유로 내가 원하는 프로그램을 만들지 못하는 경우가 발생할 수 있으니 이런 짜잘한 점까지 신경써서 확인해보고 습관으로 만들어야겠다는 생각을 갖게된 약 30분 가량의 좋은 학습이였다.

profile
I hope the All-Rounder Developer & Researcher
post-custom-banner

0개의 댓글