본문 바로가기

Python/파이썬 기초

(13)
dataframe 이중 for문 없애기 위의 dataframe의 전처리 작업을 위해 아래와 같이 코드를 작성하였다. 코드는 dataframe 내의 모든 셀들을 특정 threshold 이상이면 None을 주고 나머지 값들은 살려두려고 한다. 즉, threshold 이상의 값이면 None 값으로 replace 한다는 뜻이다. 기존에는 이중포문으로 시행을 했었으며, 출력된 시간을 확인하면 시간이 꽤 소요된다는것을 알 수 있다. pandas의 boolean indexing 이라는 것을 확인했다. pandas documentation 위와 같이 변경했으며, 현저하게 빠른 속도로 처리했음을 확인했다.
이미지 회전시키기 가끔 이미지 처리를 해야할 경우가 온다. 필자의 경우에는 이러한 데이터였으며, 이 데이터의 윤곽선을 따라 따로 저장했다. 하지만, 세로로 된 이미지가 필요했다. 따라서, 간단하게 if문을 추가하여 가로로 된 이미지들을 세로로 회전시키는 작업을 했다. height, width = warped.shape[:2] if height < width: warped = cv2.rotate(warped, cv2.ROTATE_90_CLOCKWISE) 이미지(warped)의 가로 세로를 확인하여 가로가 더 길 경우 시계방향으로 90도 회전하겠다는 코드이다.
함수-1 코딩하다 보면 특정 기능을 반복해서 수행해야 할 때가 있습니다. 그때마다 같은 기능을 수행하는 코드를 반복해서 작성한다면 비효율적일 것입니다. 이떄 사용할 수 있는 것이 함수(function)입니다. 함수는 특정 기능을 수행하는 코드의 묶음입니다. 함수를 이용하면 같은 기능을 수행하는 코드를 반복해서 작성할 필요가 없습니다. 또한 코드가 깔끔해지고 한번 만든 코드를 재사용할 수 있어서 코드를 작성하기가 편해집니다. 앞 장에서 파이썬 코드를 작성하면서 이미 몇몇 내장 함수를 이용했습니다. 출력을 위한 print()함수, 데이터 타입을 알기 위한 type()함수 등이 바로 내장 함수입니다. 이번 장에서는 코드의 묶음인 함수를 만들고, 함수를 이용하는 방법을 알아보고 주요 내장 함수의 사용법도 살펴보겠습니다...
입력과 출력-2 키보드 입력 키보드로 데이터를 입력하기 위해서는 input() 함수를 이용합니다. 이번에는 input() 함수를 이용해 데이터를 입력하고 그값을 받아서 처리하는 방법을 살펴보겠습니다. input() 함수로 데이터를 입력하기 위한 기본 구조는 다음과 같습니다. data = input("문자열") input() 함수 안의 '문자열'은 화면에 표시되고 키보드로 데이터를 입력한 후 Enter를 누르면 입력된 데이터는 문자열 형태로 data 변수에 대입됩니다. 다음 예는 input() 함수로부터 입력받은 데이터를 print() 함수로 출력하는 코드입니다. In : yourName=input("당신의 이름은? ") print("당신은 {}이군요.".format(yourName)) Out : 당신의 이름은 ? 홍길동..
입력과 출력-1 코딩할 때 실행한 결과를 화면이나 파일로 출력해야 할 때가 있습니다. 또한 입력을 키보드로 받거나 파일에 있는 데이터를 읽어서 처리해야 할 때도 있습니다. 이번 장에서는 파이썬으로 코드를 작성할 때 키보드와 화면으로 입출력하는 방법을 살펴보겠습니다. 화면 출력 작성한 코드의 결과를 확인하는 가장 기본적인 방법은 결과를 화면으로 출력하는 것입니다. 파이썬에서는 print()함수를 이용해 원하는 내용을 화면으로 출력할 수 있습니다. print() 함수에는 출력 형식을 지정하지 않는 기본출력 방법과 다양한 형식으로 출력할 수 있는 형식 지정 출력방법이 있습니다. 이 두 가지 방법에 대해 모두 알아보겠습니다. 기본 출력 먼저 print() 함수의 기본 출력 방법을 이용해 문자열과 숫자를 출력하는 방법을 알아보겠..
제어문-2 반복 수행을 할 수 있는 또 다른 방법은 while 문을 이용하는 것입니다. while 문은 조건에 따라 반복 여부를 결정합니다. 반복 범위가 정해진 반복을 수행할 경우에는 for 문을 주로 이용하고 반복 범위 없이 조건에 따라서 반복 수행 여부를 결정하는 경우에는 while 문을 주로 이용합니다. while 문의 구조 while 문의 구조는 다음과 같습니다. while : 위의 while 문에서 을 만족하면 을 계속 수행하고 을 만족하지 않으면 을 실행하지 않고 while문을 빠져나오게 됩니다. 앞에서와 마찬가지로 다음에는 콜론(:)을 쓰고 은 들여쓰기합니다. 이제 몇 가지 예를 살펴보겠습니다. 만약 '자연수 1부터 순차적으로 더해서 출력하다가 합이 20보다 크면 멈춰라'를 실행하는 코드를 작성하려면 ..
제어문-1 일상생활에서 조건이나 상황에 따라 처리 결과가 달라지는 경우가 있습니다. 예를 들어, 어떤 시험에서 특정 점수 이상은 합격이고, 미만은 불합격입니다. 대중교통 요금의 경우도 나이 구간에 따라 다릅니다. 실생활과 마찬가지로 컴퓨터 프로그래밍에서도 조건에 따라서 명령을 다르게 수행할 수 있습니다. 또한 어떤 일을 할 때 특정한 조건을 만족할 때까지 계속 반복하기도 합니다. 예를 들어, 줄넘기 백 번 하기, 노래 열 번 부르기는 해당 숫자까지 지속해서 반복하는 것입니다. 사람이 어떤 일을 지속해서 반복하는 것은 어렵지만 컴퓨터 프로그램에서 반복하는 것은 어려운 일이 아닙니다. 심지어 어떤 작업을 무한 반복할 수도 있습니다. 지금까지 작성한 코드는 앞에서부터 순차적으로 수행됐는데 조건에 따라 코드의 특정 부분만..
변수와 자료형-4 변수와 자료형의 마지막인 딕셔너리에 대해 알아보도록 하겠습니다. 딕셔너리 딕셔너리란 우리말로 사전입니다. 딕셔너리르 설명하기 전에 먼저 사전을 생각해봅시다. 사전의 구성을 보면 표제어가 있고 그에 대한 설명이 있습니다. 따라서 표제어만 찾으면 그에 대한 설명을 전부 확인할 수 있습니다. 파이썬의 딕셔너리도 사전과 유사하게 구성돼 있습니다. 사전의 표제어와 설명은 파이썬에서 각각 키(key)와 값(value)이라고 합니다. 이처럼 딕셔너리는 키와 값이 항상 쌍으로 구성됩니다. 따라서 키를 안다면 그에 해당하는 값을 쉽게 알 수 있습니다. 리스트나 튜플은 인덱스를 이용해 항목을 다뤘지만 딕셔너리는 인덱스 대신 키를 이용해 값을 다룹니다. 리스트나 튜플에서 인덱스는 0부터 시작하는 숫자였지만 딕셔너리의 키는 ..