데이터 과학의 경우 Python은 일반적으로 데이터 처리 및 변환에 널리 사용됩니다. 데이터 처리를 더욱 유연하게 만드는 강력한 데이터 구조 처리 기능을 제공합니다. 여기서 "유연성"은 무엇을 의미하나요? Python에서 동일한 결과를 얻으려면 항상 다양한 방법이 있으므로 사용하기 쉽고 시간을 절약하며 더 나은 제어 기능을 제공하는 방법을 선택해야 합니다.
이 모든 방법을 익히는 것은 불가능합니다. 따라서 모든 유형의 데이터로 작업할 때 알아야 할 4가지 Python 팁 목록은 다음과 같습니다.
List Comprehension은 목록을 생성하는 우아하고 가장 Python 친화적인 방법입니다. for 루프 및 if 문과 비교하여 목록 내포는 기존 목록의 값을 기반으로 새 목록을 생성하는 구문이 훨씬 더 짧습니다. 그러면 이 기능이 어떻게 목록의 복사본을 가져오는지 살펴보겠습니다.
목록 이해를 사용하여 목록 복사
예를 들어, 원래_목록의 정수 목록입니다.
original_list = [10,11,20,22,30,34]
이 목록은 .copy() 메서드를 사용하여 간단히 복사할 수 있습니다.
duplicated_list = original_list.copy()
목록 이해를 사용하여 정확히 동일한 출력을 얻을 수 있습니다. 목록 복사는 목록 이해를 이해하는 좋은 예입니다.
아래 코드를 보세요.
duplicated_list = [item for item in original_list]
목록을 복사할 때 List Comprehension을 사용하는 것이 더 좋다는 것이 아니라, List Comprehension의 작업 방식을 소개하기에 이 사례가 가장 좋다는 뜻입니다.
다음으로, 목록의 각 요소에 대해 수학적 연산을 수행할 때 목록 이해가 어떻게 삶을 쉽게 만드는지 살펴보겠습니다.
목록의 요소 곱하기
인 곱셈 연산자를 사용하는 것입니다. 예를 들어 목록의 각 항목에 스칼라(예: 숫자 5)를 곱하려고 합니다. . 목록의 복사본이 5개 생성되므로 여기서는 절대로 사용할 수 없습니다.
이 시나리오에서 가장 좋은 대답은 아래와 같이 목록 이해입니다.
original_list = [10,11,20,22,30,34] multiplied_list = [item*5 for item in original_list] # Output [50, 55, 100, 110, 150, 170]
여기서의 연산은 숫자를 곱하는 것에만 국한되지 않습니다. 원본 목록의 각 요소에 대해 복잡한 작업을 수행할 수 있습니다.
예를 들어, 각 항의 제곱근의 세제곱을 계산한다고 가정하면 한 줄로 풀 수 있습니다.
multiplied_list = [math.sqrt(item)**3 for item in original_list] # Output [31.6227766016838, 36.4828726939094, 89.4427190999916, 103.18914671611546, 164.31676725154983, 198.25236442474025]
숫자의 제곱근을 계산하는 데 사용되는 sqrt 함수는 수학 라이브러리에 속하므로 이 경우 사용하기 전에 가져와야 합니다.
위에 표시된 내장 함수와 유사하게 목록의 각 요소에 사용자 정의 함수를 사용할 수도 있습니다.
예를 들어 아래와 같은 간단한 함수입니다.
def simple_function(item): item1 = item*10 item2 = item*11 return math.sqrt(item1**2 + item2**2)
이 사용자 정의 함수를 목록의 각 항목에 적용할 수 있습니다.
multiplied_list = [simple_function(item) for item in original_list] # Output [148.66068747318505, 163.52675622050356, 297.3213749463701, 327.0535124410071, 445.9820624195552, 505.4463374088292]
List comprehension은 실제 시나리오에서 훨씬 더 유용합니다. 일반적으로 분석 작업에서는 nan 요소 제거와 같이 목록에서 특정 유형의 요소를 삭제해야 합니다. 목록 이해는 이러한 작업을 위한 완벽한 도구입니다.
목록에서 요소 제거
아래에 언급된 숫자 목록이 있다고 가정해보세요.
original_list = [10, 22, -43, 0, 34, -11, -12, -0.1, 1]
이 목록에서 양수 값만 유지하고 싶습니다. 따라서 논리적으로 조건부 항목 > 0에 대해 TRUE로 평가되는 항목만 유지하려고 합니다.
new_list = [item for item in original_list if item > 0] # Output [10, 22, 34, 1]
if 절은 음수 값을 삭제하는 데 사용됩니다. if 절을 사용하여 조건을 적용하면 목록에서 항목을 제거할 수 있습니다.
예를 들어 제곱이 200보다 작은 모든 항을 삭제하려면 아래와 같이 목록 합성에서 조건항 **2 > 200을 언급하기만 하면 됩니다.
new_list = [item for item in original_list if item**2 > 200] # Output [22, -43, 34]
실제 데이터 세트를 다룰 때 목록 항목 필터링 조건은 훨씬 더 복잡할 수 있지만 이 방법은 빠르고 이해하기 쉽습니다.
dict()를 사용하여 두 목록을 사전 키-값 쌍으로 변환합니다.
comprehension)를 사용할 수 있습니다. 리스트 이해와 정확히 동일하게 작동하지만 차이점은 다음과 같습니다. List Comprehension을 만들려면 모든 것을 []와 같은 대괄호로 묶는 반면, Dictionary Comprehension에서는 모든 것을 {}와 같은 중괄호로 묶습니다.
아래와 같이 필드와 세부정보라는 두 개의 목록이 있다고 가정합니다.
fields = [‘name’, ‘country’, ‘age’, ‘gender’] details = [‘pablo’, ‘Mexico’, 30, ‘Male’]
간단한 방법은 이렇게 사전 독해를 사용하는 것입니다. -
new_dict = {key: value for key, value in zip(fields, details)} # Output {'name': 'pablo', 'country': 'Mexico', 'age': 30, 'gender': 'Male'}
여기서 이해해야 할 중요한 것은 zip 기능이 어떻게 작동하는지입니다.
Python에서 zip 함수는 문자열, 목록 또는 사전과 같은 반복 가능한 개체를 입력으로 받아들이고 이를 튜플로 집계하여 반환합니다.
이 경우 zip은 목록 필드와 세부정보에서 각 항목의 쌍을 구성했습니다. 사전 이해에서 키:값을 사용할 때 이 튜플을 개별 키-값 쌍으로 압축을 풀면 됩니다.
Python에 내장된 dict() 생성자를 사용하면(사전 생성을 위해) dict()가 사전 이해보다 최소 1.3배 빠르기 때문에 프로세스가 더욱 빨라집니다
따라서 이 생성자를 훨씬 간단한 구문을 갖는 zip() 함수와 함께 사용해야 합니다 - dict(zip(fields, Details))
처음에 언급했듯이 Python은 매우 유연합니다. 동일한 결과를 얻는 방법은 여러 가지가 있습니다. 작업의 복잡성에 따라 이를 달성하는 가장 좋은 방법을 선택해야 합니다.
이 글이 도움이 되셨으면 좋겠습니다. 이 글에서 언급한 것과 동일한 작업을 수행할 수 있는 다른 방법이 있다면 알려주시기 바랍니다.
위 내용은 코드를 더욱 효율적으로 만드는 네 가지 Python 연역적 개발 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!