NumPy 치트시트

Nov 27 2022
NumPy를 빠르게 살펴보고 직접 작업해 보시기 바랍니다. 이 기사는 당신에게 필요한 것입니다! 시작하기 NumPy는 Python의 과학 컴퓨팅 패키지입니다. 선형 대수, 푸리에 변환 및 행렬을 위한 사전 정의된 함수가 함께 제공됩니다.

NumPy를 빠르게 살펴보고 직접 작업해 보시기 바랍니다. 이 기사는 당신에게 필요한 것입니다!

시작하기

NumPy 는 Python의 과학 컴퓨팅 패키지입니다. 선형 대수, 푸리에 변환 및 행렬을 위한 사전 정의된 함수가 함께 제공됩니다. NumPy는 일반적으로 데이터 과학 애플리케이션에 사용됩니다.

시작하려면 먼저 시스템에 Python과 NumPy가 있는지 확인하세요. 얻는 방법은 시스템과 선호하는 IDE에 따라 다르지만 Anaconda를 권장합니다. 기본 Anaconda 설치를 사용하면 터미널로 이동하여 "conda install numpy" & voila를 실행할 수 있습니다!

이제 작업을 시작할 example.py 파일을 만들어 보겠습니다.

참고: 작업할 단일 예제 파일 대신 프로젝트를 생성하려면 디렉토리와 그 안에 __init__.py 파일을 생성하기만 하면 됩니다.

파일 내에서 NumPy로 작업할 수 있으려면 파일 맨 위에 다음 줄을 추가해야 합니다.

numpy를 np로 가져오기

참고: NumPy에서 함수를 호출할 때마다 numpy를 입력할 필요가 없도록 일반적으로 np로 가져옵니다. 변경될 수 있지만 np 는 일반적인 규칙 임을 명심하십시오 .

그런 다음 터미널로 이동하여 다음 명령을 실행하여 예제 파일 내의 코드를 실행할 수 있습니다.

파이썬 example.py

목록 대 배열

우리는 NumPy 작업에서 배열을 많이 사용할 것이므로 한 가지를 명확히 하는 것이 좋습니다. 목록과 배열은 Python에서 다릅니다.

배열을 사용하면 행렬과 같은 다차원 구조를 선언할 수 있고 내부에서 수치 연산을 수행할 수 있지만 단순한 이전 목록의 경우에는 그렇지 않습니다. 따라서 NumPy는 어레이에 크게 의존합니다.

목록은 선언하지 않고도 값에 할당할 수 있지만 배열은 그럴 수 없습니다. 따라서 배열을 정의하려면 다음과 같이 해야 합니다.

exampleArray = np.arrray([10, 15, 20]) // 1차원 배열

또는 다차원 배열을 다음과 같이 정의할 수 있습니다.

exampleArray2 = np.array([10, 15, 20], [50, 100, 150], [1, 2, 3])

배열 내의 항목을 다음과 같이 호출할 수 있습니다.

exampleArray2 [1] // [50, 100, 150]을 반환합니다.

exampleArray2 [1] [0]// 50 반환

행동 양식

아래에서 NumPy로 작업할 때 일반적으로 사용되는 가장 기본적인 기능을 찾을 수 있습니다. 많이 있지만 다음은 시작하기에 충분할 것입니다.

어레이 생성 방법

  • np.arange(0, 10): 0에서 9까지의 숫자를 항목으로 사용하여 1차원 배열을 만듭니다.
  • np.arange(0, 10, 3): 0에서 10 사이의 숫자가 3분의 1마다 점프하는 1차원 배열을 만듭니다. 항목이 0,3,6,9인 배열을 반환합니다.
  • np.zeros(3): 각 항목에 대해 값이 0인 3개 항목 배열을 만듭니다.
  • np.ones(3): 각 항목에 대해 값이 1인 3개 항목 배열을 만듭니다.
  • np.linspace(0,20,5): 0에서 20 사이의 숫자 5개를 동일한 단계로 사용합니다. 항목 0, 5, 10, 15, 20의 배열을 반환합니다. 6개 항목을 선택한다고 하면 항목이 간섭하는 대신 부동 상태가 되어 그 사이에 동일한 공간을 보장한다는 점을 명심하십시오.
  • np.eye(3): 3개의 열과 3개의 행이 있는 항등 행렬을 만듭니다. 대각선 값은 모두 1을 반환하고 다른 모든 값은 0을 반환합니다.
  • np.random.randn(5): 5개의 난수를 항목으로 사용하여 1차원 배열을 만듭니다. 숫자는 정수 및/또는 실수, 음수 및/또는 양수 유형일 수 있습니다.
  • np.random.randn(5,5): 항목으로 25개의 임의 값이 있는 5행 5열로 행렬을 만듭니다.
  • np.random.randint(1, 10, 2): 1보다 크고 10보다 작은 두 개의 난수를 반환합니다.
  • myArray.reshape(5,5): myArray라는 1차원 배열을 가져와 5행 5열의 행렬로 반환합니다. 배열 내에 항목 수가 충분하지 않은 경우(예: 5 x 5 = 25 항목) 오류가 발생하고 작동하지 않습니다. 이 메서드는 배열 자체를 변경하지 않고 단순히 배열의 변경된 버전을 반환합니다.
  • myArray.max(): 숫자 배열의 항목 내에서 가장 큰 숫자를 반환합니다.
  • myArray.min(): 숫자 배열의 항목 내에서 가장 작은 숫자를 반환합니다.
  • myArray.argmax(): 숫자 배열 항목 내에서 가장 큰 숫자의 인덱스를 반환합니다.
  • myArray.argmin(): 숫자 배열의 항목 내에서 가장 작은 숫자의 인덱스를 반환합니다.
  • myArray.shape: 배열의 모양을 반환합니다. 배열이 10개 항목이 있는 단일 차원 배열이면 (10, )을 반환합니다. 배열이 5개의 열과 6개의 행으로 구성된 행렬인 경우 (5,6)을 반환합니다. 이것은 함수가 아니라 속성이므로 모양을 호출할 때 괄호가 없음을 명심하십시오.
  • myArray[5]: 배열에서 인덱스 번호가 5인 항목을 반환합니다 .
  • myArray[3:5]: 인덱스가 3이지만 5는 포함하지 않는 항목을 포함하여 인덱스 번호 3과 5 사이의 항목을 반환합니다.
  • myArray[3:5] = -3: 인덱스 3에서 5 사이의 항목 값을 -3으로 변경합니다.
  • myArray[:] = 30: 배열 내 모든 항목의 값을 하나씩 30씩 변경합니다.
  • myArray = 30: myArray 의 유형을 배열에서 정수로 변경하고 값을 30으로 설정합니다.
  • newArray = myArray.copy(): myArray의 복사본을 만들고 newArray로 설정합니다. .copy() 메서드를 사용하지 않은 경우 myArray에도 반영되는 newArray에 대한 모든 변경 사항을 볼 수 있습니다.

행렬을 myMatrix = ( [5, 10, 15] , [1, 2, 3] , [0, 0, 0] )로 선언해 봅시다.

  • myMatrix[0]: 배열인 행 인덱스가 0인 항목을 반환합니다. 따라서 [5, 10, 15]를 반환합니다.
  • myMatrix[0] [1]: 열 인덱스가 1이고 행 인덱스가 0인 항목을 반환하므로 이 경우 값 10을 반환합니다.
  • myMatrix[0,1]: 열 인덱스가 1이고 행 인덱스가 0인 항목을 반환하므로 이 경우 값 10을 반환합니다.
  • myMatrix[1, 1:]: 평소와 같이 인덱스가 1인 행을 가져오지만 1부터 시작하는 열 인덱스가 있는 항목을 반환합니다(스플라이스가 항상 파이썬에서 작동하므로 1 포함). 따라서 이 경우 [2, 3]을 반환합니다.
  • myMatrix[ [0,1] ]: 인덱스 0과 1의 값을 반환하므로 우리의 경우 ( [5, 10, 15] , [1, 2, 3] )를 반환합니다.

myArray = [ 5,10,15,20] 으로 작업할 myArray 배열을 정의해 봅시다.

  • myArray > 10: 조건에 따라 참과 거짓의 배열을 반환하므로 우리의 경우 [false, false, true, true]를 반환합니다. tihs는 myArray의 원래 값을 변경하지 않고 대신 새로운 awway를 생성합니다.
  • myArray [myArray > 10]: 실제로 조건을 [15, 20]으로 따르는 항목이 포함된 새 배열을 반환합니다.
  • myArray + myArray: 값이 인덱스별로 합계되고 해당 인덱스에 배치되는 배열을 반환합니다. 이 경우 [10, 20, 30, 40]을 반환합니다.
  • myArray — myArray: 인덱스별로 값을 빼서 해당 인덱스에 배치하는 배열을 반환합니다. 이 경우 [0, 0, 0, 0]을 반환합니다.
  • myArray/myArray: 값을 인덱스별로 나누고 해당 인덱스에 배치한 배열을 반환합니다. 이 경우 [1,1,1,1]을 반환합니다. 어떤 인덱스에 값으로 0이 있으면 숫자를 0으로 나눌 수 없기 때문에 경고가 발생하고 해당 인덱스에 대해 nan을 반환하지만 평소와 같이 다른 인덱스를 나눕니다.
  • np.sqrt(myArray): 각 값이 동일한 인덱스에 있는 경우 제곱근이 있는 배열을 반환합니다. 따라서 myArray가 [25, 16, 36]이면 함수는 [5, 4, 6]을 반환합니다.