Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

NumPy 배열:초보자를 위한 가이드

목록은 정렬된 요소 시퀀스를 포함하는 데이터 유형입니다. 목록은 하나의 변수에 여러 관련 값을 저장할 수 있기 때문에 유용한 데이터 유형입니다. 목록을 사용하면 10켤레의 신발 이름을 하나의 변수에 저장할 수 있습니다. 상점에서 구매한 목록을 하나의 변수에 저장할 수 있습니다.

기본 제공 목록 데이터 유형은 이미 강력하지만 고급 사용 사례의 경우 부족할 수 있습니다. 여기서 NumPy의 배열 데이터 유형이 등장합니다. NumPy 라이브러리를 사용하여 여러 차원의 배열을 쉽게 생성할 수 있습니다.

이 가이드에서는 NumPy 배열이 무엇인지, 왜 유용한지, 코드에서 어떻게 사용할 수 있는지에 대해 이야기할 것입니다. 시작하겠습니다!

넘파이 배열이란 무엇입니까?

NumPy 배열은 NumPy Python 라이브러리 내에서 사용되는 배열 객체입니다. Numerical Python의 약자인 NumPy는 과학 및 수학 컴퓨팅에 자주 사용되는 패키지입니다. 여기에는 데이터 분석 및 고급 수학을 지원할 수 있는 다양한 도구가 함께 제공됩니다.

바닐라 Python(외부 패키지가 없는 Python)에서 배열은 강력하지만 처리 속도가 느릴 수 있습니다. 반면 NumPy 배열은 기존 Python 배열보다 훨씬 빠른 속도를 목표로 합니다.

이 성능 향상은 NumPy 배열이 메모리의 연속적인 한 위치에 값을 저장하기 때문에 달성됩니다. 이렇게 하면 Python이 목록에 쉽게 액세스하고 조작할 수 있습니다.

NumPy 배열을 선언하는 방법

시작하려면 NumPy 배열을 설정해 보겠습니다. 이 튜토리얼에서는 배열에 문자열 값을 저장할 것입니다. 이 문자열 값은 지역 커피숍에서 제공되는 달콤한 음식의 목록입니다. NumPy 라이브러리를 가져오는 것부터 시작하겠습니다.

numpy를 np로 가져오기

이 코드 줄은 numpy를 가져옵니다. Python에서 가져오고 라이브러리에 np 이름을 할당합니다. . 즉, 배열로 작업해야 할 때마다 np만 호출하면 됩니다. .

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

다음으로 배열 인터페이스를 사용하여 배열을 선언하겠습니다.

treats =np.array(["블루베리 머핀", "시나몬 빵", "Jammy Shortbread"])print(treats)

배열에는 4개의 문자열 값이 있습니다. 전통적인 Python 배열과 마찬가지로 목록의 모든 항목을 대괄호로 묶었습니다. NumPy 배열을 선언하기 위해 np의 일부인 배열 메서드를 사용했습니다. . 이것은 ndarray를 생성합니다. 내장 NumPy 배열 유형인 객체.

코드는 NumPy 배열로 정렬된 원래 배열의 복사본을 반환합니다.

['블루베리 머핀' '시나몬 번' '제이미 쇼트브레드']

이제 작업할 수 있는 어레이가 생겼습니다.

NumPy 배열:차원

NumPy의 차원에 대해 이야기할 때 영화에서 볼 수 있는 것과 같은 새로운 세계를 의미하는 것은 아닙니다. 배열의 차원은 해당 배열 내의 한 수준 깊이입니다. 차원이라는 용어가 사용될 때 중첩 배열을 나타냅니다. 이것은 배열을 포함하는 배열입니다.

배열은 임의의 수의 차원을 가질 수 있습니다. 작업할 배열의 대부분은 1차원, 2차원 또는 3차원 배열입니다. "D"는 차원을 나타냅니다.

넘파이 1차원 배열

첫 번째 예에서는 1차원 배열을 만들었습니다. 이것은 0차원 배열(또는 항목)을 요소로 포함하는 배열입니다. 작업할 배열의 대부분은 1차원입니다.

커피숍의 간식 가격을 저장하는 배열을 만들어 보겠습니다.

numpy를 nprices =np.array([1.95, 2.00, 2.05])print(prices)로 가져오기

코드는 [1.95 2. 2.05] 값을 저장하는 1차원 배열을 반환합니다.

1차원 배열의 요소에 액세스하려면 Python 목록에서와 동일한 구문을 사용할 수 있습니다. 목록에서 두 번째 항목을 검색해 보겠습니다.

인쇄(가격[1])

코드는 인덱스 값이 1인 항목을 반환합니다. 즉, 2입니다.

Python 배열에 대해 자세히 알아보려면 Python 배열에 대한 초보자 가이드를 읽어보세요.

넘파이 2차원 배열

모든 배열이 1차원은 아닙니다. 두 개의 배열이 포함된 배열을 저장하려고 한다고 가정합니다. 한 어레이는 커피숍에서 판매되는 달콤한 간식을 저장합니다. 다른 어레이는 상점에서 판매된 커피 목록을 저장합니다. 함께 menu items의 일부입니다. 정렬.

NumPy를 사용하여 이 배열을 생성해 보겠습니다:

numpy를 npmenu_items로 가져오기 =np.array([ ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"], ["Cappuccino", "Espresso", "Mocha"]])print(menu_items) 

결과 배열은 다음과 같습니다.

[['블루베리 머핀' '시나몬 번' '제이미 쇼트브레드'] ['카푸치노' '에스프레소' '모카']]

새로 생성된 배열에는 2차원이 있습니다. 배열의 첫 번째 배열에는 달콤한 음식 목록이 포함되어 있습니다. 두 번째 배열에는 커피 목록이 포함됩니다. 이 두 배열은 두 배열을 연결하는 한 쌍의 대괄호로 묶여 있습니다.

2차원 배열에서 항목을 검색하는 것은 Python에서와 NumPy에서 약간 다르게 작동합니다. 2차원 배열의 요소에 액세스하려면 배열에서 검색하려는 값의 인덱스 번호를 분리해야 합니다.

다음 코드를 고려하십시오.

인쇄(menu_items[0, 2])

코드는 Jammy Shortbread를 반환합니다. 인덱스 값이 0인 배열 내부에 저장된 인덱스 값이 2인 항목을 검색했습니다. 이 경우 커피숍에서 판매되는 과자를 저장하는 배열의 마지막 항목을 검색했습니다.

넘파이 3차원 배열

다른 차원을 추가합시다! NumPy 배열은 3차원 배열을 포함할 수 있습니다. 이것은 2차원 배열을 포함하는 배열입니다.

다음 값을 저장하려고 한다고 가정합니다.

  • 달콤한 음식과 달지 않은 음식 제공물(쌍을 이루지만 별도의 배열로 제공) 그리고
  • 카페인 음료 및 비카페인 음료(쌍, 별도 배열)

이 모든 값은 하나의 배열에 저장되어야 합니다. 이 배열의 차원은 다음과 같습니다.

  • 1-D:모든 메뉴 항목
  • 2-D:달콤한 그리고 달지 않은 음식, 카페인 무카페인 음료
  • 3-D:단 음식, 단맛이 없는 음식, 카페인이 함유된 음료, 카페인이 없는 음료

NumPy를 사용하여 이 배열을 생성해 보겠습니다. 다음 코드를 Python 파일에 붙여넣습니다.

numpy를 npmenu_items =np.array([ [["블루베리 머핀", "시나몬 롤빵", "Jammy Shortbread"], ["훈제 베이컨 롤", "Tuna Melt Panini", "Cheese and Tomato Toastie"로 numpy 가져오기) ] ], [ ["카푸치노", "에스프레소", "모카"], ["사과 주스", "물", "오렌지 주스"] ]])print(menu_items)

코드 반환:

[[['블루베리 머핀' '시나몬 번' '잼 숏브레드'] ['훈제 베이컨 롤' '참치 녹인 파니니' '치즈 앤 토마토 토스티']] [['카푸치노' '에스프레소' '모카'] ['사과 주스' '물' '오렌지 주스']]]

앞에서 논의한 모든 정보로 3차원 배열을 만들었습니다. 이 배열은 커피숍에서 제공하는 모든 메뉴 항목의 포괄적인 목록입니다.

3차원 배열에서 항목에 액세스하는 것은 2차원 배열에서 항목에 액세스하는 데 사용하는 구문과 유사하게 작동합니다. 차이점은 3차원 배열에서 항목을 검색하려면 세 번째 인덱스 번호를 지정해야 한다는 것입니다. 배열에서 "Mocha"를 검색해 보겠습니다.

인쇄(메뉴_항목[1, 0, 2])

코드는 Mocha를 반환합니다.

1은 액세스하려는 1차원의 인덱스 번호입니다(1은 음료에 해당). 0은 2차원의 인덱스 번호입니다(0은 카페인 음료에 해당). 2는 3차원의 인덱스 번호입니다(2는 Mocha에 해당).

배열의 차원 계산

NumPy 배열은 새 차원을 추가하기 시작할 때 상당히 복잡해 보일 수 있습니다. 우리는 3차원 이상의 배열을 탐색하지도 않았습니다! 다행스럽게도 배열의 차원 수를 계산하는 데 사용할 수 있는 편리한 단축키가 있습니다.

다음 코드를 Python 파일에 붙여넣습니다.

numpy를 npmenu_items =np.array([ ["Blueberry Muffin", "Cinnamon Bun", "Jammy Shortbread"], ["Cappuccino", "Espresso", "Mocha"]])print(menu_items.ndim으로 가져오기 )

코드를 실행해 보겠습니다. 값 "2"가 반환됩니다. 이것은 배열에 2차원이 포함되어 있음을 알려줍니다. 위 배열을 분석하면 이것이 사실임을 알 수 있습니다.

결론

NumPy 배열은 유사한 값을 저장하는 유연한 방법입니다. 기존 Python 어레이보다 빠르고 효율적입니다. NumPy 배열을 사용하여 여러 차원으로 쉽게 작업할 수 있습니다. 이것은 바닐라 파이썬에서 하기 더 어렵습니다.

이제 전문 프로그래머처럼 NumPy 배열을 사용할 준비가 되었습니다!