Python NumPy 초보자 튜토리얼

⚡ 스마트 요약

NumPy는 기초적인 라이브러리입니다. Python NumPy는 배열, 행렬, 선형 대수 및 난수 생성을 지원하는 수치 계산 라이브러리입니다. 이 NumPy 튜토리얼에서는 설치, 배열 생성, 재구성 과정을 안내합니다.ping슬라이싱, 통계 및 행렬 연산을 실행 가능한 방식으로 수행합니다. Python 예.

  • 주요 용도: 빠른 N차원 배열 및 벡터화된 연산 Python.
  • ⚙️ 주요 기능 : 0, 1, 재구성, hstack, 점, linspace.
  • 📚 Foundations: 선형대수, 방송, 통계, 슬라이싱.
  • 🚀 현재 버전 : NumPy 2.x 버전(2024년 6월 출시)이 안정화되었습니다.
  • 🤖 AI 활용: Py의 핵심Torch, TensorFlow, JAX 및 CuPy 텐서.

Python NumPy 튜토리얼

NumPy는 무엇입니까? Python?

눔 파이 오픈 소스 Python 수학, 과학, 공학 및 데이터 과학 프로그래밍을 위한 라이브러리입니다. 수학 및 통계 연산에 매우 유용한 라이브러리입니다. Python이 프로그램은 다차원 배열 및 행렬 곱셈에 완벽하게 작동하며 C/와 쉽게 통합됩니다.C++ Fortran.

과학 프로젝트라면 NumPy는 반드시 알아야 할 도구입니다. N차원 배열, 선형 대수, 난수 생성, 푸리에 변환 등 다양한 분야에 활용할 수 있도록 설계되었습니다.

NumPy는 다음과 같은 것을 제공합니다. Python 다차원 배열 및 행렬에 대한 완벽한 지원과 더불어 이러한 배열 및 행렬에 작용하는 다양한 수학 연산 기능을 제공합니다. 이 가이드에서는 '다차원 배열 및 행렬' 튜토리얼로 넘어가기 전에 알아야 할 필수 함수들을 살펴보겠습니다.TensorFlow. '

NumPy를 사용하는 이유는 무엇입니까?

NumPy는 메모리 효율성이 뛰어나므로 순수 수치 계산 방식보다 대용량의 수치 데이터를 더 쉽게 처리할 수 있습니다. Python 리스트 기능도 있습니다. 행렬 곱셈과 resha 연산에도 매우 편리합니다.ping컴파일된 C 루틴에 무거운 작업을 위임하기 때문에 속도가 빠릅니다. 실제로 TensorFlow, Py와 같은 라이브러리가 그렇습니다.Torch와 Scikit-learn은 백엔드에서 행렬 연산을 위해 NumPy 배열을 사용하므로 NumPy는 대부분의 최신 데이터 과학 및 AI 워크플로의 숨은 핵심 역할을 합니다.

NumPy를 설치하는 방법

NumPy 라이브러리를 설치하려면 튜토리얼을 참조하세요. 텐서플로우 설치 방법. NumPy는 기본적으로 Anaconda와 함께 설치됩니다.

NumPy가 설치되어 있지 않은 드문 경우에는 아래 옵션 중 하나를 사용하십시오.

Anaconda를 사용하여 NumPy를 설치할 수 있습니다.

conda install -c anaconda numpy
  • In Jupyter 노트북 :
import sys
!conda install --yes --prefix {sys.prefix} numpy

Pip 사용자는 단 하나의 명령으로 설치 또는 업그레이드할 수 있습니다.

pip install --upgrade numpy

NumPy 가져오기 및 버전 확인

numpy를 가져오는 명령은 다음과 같습니다.

import numpy as np

위 줄은 NumPy 네임스페이스의 이름을 변경합니다. np이 단축키를 사용하면 NumPy 함수, 메서드 및 속성에 접두사를 붙일 수 있습니다. np. ty 대신에ping numpy.그리고 이는 NumPy 생태계 전반에서 찾아볼 수 있는 표준적인 관례입니다.

설치된 NumPy 버전을 확인하려면 아래 명령어를 사용하세요.

print(np.__version__)

출력:

2.1.3

NumPy 2.0은 2024년 6월에 출시되었으며 현재 안정적인 주요 시리즈입니다. 프로젝트가 여전히 1.x API에 의존하는 경우, 최신 버전을 사용하세요. numpy<2 요구 사항 파일에 다음과 같은 기존 별칭이 포함되어 있기 때문입니다. np.float 2.0 버전에서 제거되었습니다.

무엇이 Python NumPy 배열?

NumPy 배열은 다음과 비슷하게 생겼습니다. Python 언뜻 보기에는 비슷해 보이지만, 실제로는 매우 다르게 작동합니다. 이 주제에 익숙하지 않은 독자들을 위해 ndarray가 무엇이며 왜 중요한지 설명드리겠습니다.

이름에서 알 수 있듯이, NumPy 배열은 NumPy 라이브러리의 핵심 데이터 구조입니다. 이름 자체는 "Numeric"의 줄임말입니다. Python” 또는 “수치 Python그리고 ndarray는 모양과 데이터 유형이 알려진 균일하고 고정된 크기의 메모리 블록입니다.

NumPy 배열 만들기

NumPy에서 배열을 만드는 가장 간단한 방법은 다음과 같이 시작하는 것입니다. Python 명부.

myPythonList = [1,9,8,3]

[변환] Python 리스트를 NumPy 배열로 변환하기 np.array.

numpy_array_from_list = np.array(myPythonList)

배열의 내용을 출력합니다.

numpy_array_from_list

출력:

array([1, 9, 8, 3])

실제로는 선언할 필요가 없습니다. Python 먼저 목록을 작성하세요. 두 단계는 하나로 합칠 수 있습니다.

a = np.array([1,9,8,3])

알림: NumPy 문서에도 언급되어 있습니다. np.ndarray하지만, np.array 이는 일상적인 사용을 위한 권장 공장 설정 기능입니다.

같은 방식으로 튜플에서 NumPy 배열을 생성할 수도 있습니다.

매우 정확한 Opera어레이에 대한 옵션

덧셈, 뺄셈과 같은 수학 연산을 수행할 수 있습니다.trac배열에 대한 곱셈, 나눗셈, 곱셈 연산을 수행할 수 있습니다. 구문은 배열 이름 뒤에 연산자( )를 붙이는 것입니다.+, -, *, /), 그 뒤에 피연산자가 옵니다. 이러한 연산은 벡터화되어 있으므로 NumPy는 명시적인 요소 지정 없이 모든 요소에 이러한 연산을 적용합니다. 즉, NumPy는 명시적인 요소 지정 없이 모든 요소에 이러한 연산을 적용합니다. Python 고리.

예:

numpy_array_from_list + 10

출력:

array([11, 19, 18, 13])

이 연산은 NumPy 배열의 각 요소에 10을 더합니다.

배열의 모양

배열의 형태는 다음을 통해 확인할 수 있습니다. shape 배열 이름 뒤에 속성을 붙여 접근할 수 있습니다. 마찬가지로, 다음과 같은 방법으로 타입을 확인할 수 있습니다. dtype.

import numpy as np
a = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

정수는 소수점이 없는 값입니다. 소수점을 포함하여 배열을 생성하면 데이터 유형이 부동 소수점으로 변경됩니다.

#### Different type
b = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

2차원 배열

괄호 안에 쉼표를 넣어 치수를 추가할 수 있습니다.

내부 튜플은 외부 괄호 안에 있어야 한다는 점에 유의하십시오. [].

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

3차원 배열

더 높은 차원도 같은 방식으로 구축할 수 있다.

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
목표 Code
배열 생성 배열([1,2,3])
모양을 인쇄하다 배열([.]).모양

numpy.zeros()란 무엇입니까?

numpy.zeros() or np.zeros 하는 Python 0으로 채워진 행렬을 생성하는 데 사용되는 함수입니다. numpy.zeros() TensorFlow에서 첫 번째 반복 중에 가중치를 초기화하거나 다른 통계 작업을 위한 자리 표시자 버퍼를 설정해야 할 때 유용합니다.

numpy.zeros() 함수 구문

numpy.zeros(shape, dtype=float, order='C')

Python numpy.zeros() 매개변수

여기

  • 셰이프NumPy 0 배열의 형태입니다.
  • D 타입요소의 데이터 유형입니다. 선택 사항이며 기본값은 입니다. float64.
  • 주문번호기본값은 다음과 같습니다. C이는 행 우선 레이아웃으로 사용됩니다. numpy.zeros() in Python.

Python numpy.zeros() 예

import numpy as np
np.zeros((2,2))

출력:

array([[0., 0.],
          [0., 0.]])

데이터 유형을 사용한 numpy XNUMX의 예

import numpy as np
np.zeros((2,2), dtype=np.int16)

출력:

array([[0, 0],
         [0, 0]], dtype=int16)

numpy.ones()란 무엇입니까?

np.ones() 함수 모든 요소가 1로 채워진 행렬을 생성합니다. numpy.ones() in Python TensorFlow에서 첫 번째 반복 중에 가중치를 초기화할 때와 다른 통계 작업에 유용합니다.

Python numpy.ones() 구문

numpy.ones(shape, dtype=float, order='C')

Python numpy.ones() 매개변수

여기

  • 셰이프: np.ones의 모양 Python 배열.
  • D 타입요소의 데이터 유형입니다. 선택 사항이며 기본값은 입니다. float64.
  • 주문번호기본값은 다음과 같습니다. C이는 행 우선 레이아웃입니다.

Python numpy.ones() 데이터 유형의 2D 배열 예

import numpy as np
np.ones((1,2,3), dtype=np.int16)

출력:

array([[[1, 1, 1],
       [1, 1, 1]]], dtype=int16)

numpy.reshape() 함수 Python

Python NumPy 모양 변경 배열의 데이터는 변경하지 않고 배열의 형태만 바꿉니다. 모델에 입력하기 전에 데이터를 넓은 형식에서 긴 형식으로 바꾸거나 1차원 벡터를 2차원 행렬로 변환해야 할 수 있습니다. np.reshape 이 함수는 한 번의 호출로 이를 처리합니다.

np.reshape() 구문

numpy.reshape(a, newShape, order='C')

여기

a형태를 변경하려는 배열입니다.

새로운모양: 새롭게 원하는 모양.

주문번호기본값은 다음과 같습니다. C행 우선 레이아웃입니다.

NumPy 재구성의 예

import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

출력:

 // Before reshape
[[1 2 3]
 [4 5 6]]
//After Reshape
array([[1, 2],
	[3, 4],
	[5, 6]])

numpy.Flatten() Python

Python NumPy 플래튼 배열을 1차원으로 축소한 복사본을 반환합니다. 컨볼루션 신경망과 같은 신경망을 사용할 때, 이미지 텐서를 완전 연결 레이어에 전달하기 전에 평면화해야 하는 경우가 많습니다. np.flatten() 이 함수는 단일 호출로 이를 처리합니다.

np.Flatten() 구문

numpy.flatten(order='C')

여기
주문번호기본값은 다음과 같습니다. C행 우선 레이아웃입니다.

NumPy Flatten의 예

e.flatten()

출력:

array([1, 2, 3, 4, 5, 6])

numpy.hstack()은 무엇입니까? Python?

넘파이.h스택 하는 Python 입력 배열들의 시퀀스를 하나의 배열로 수평적으로 쌓는 데 사용되는 함수입니다. hstack()데이터를 열 축을 따라 추가합니다. 이는 특징 벡터를 나란히 병합해야 할 때 NumPy에서 매우 편리한 기능입니다.

공부합시다 hstack in Python 예를 들어.

예:

## Horizontal Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Horizontal Append:', np.hstack((f, g)))

출력:

Horizontal Append: [1 2 3 4 5 6]

numpy.vstack()은 무엇입니까? Python?

넘파이.vstack 하는 Python 입력 배열들의 시퀀스를 하나의 배열로 수직으로 쌓는 데 사용되는 함수입니다. vstack()데이터를 행 축을 따라 추가하는데, 이는 여러 샘플을 한데 모을 때 유용합니다.

예를 들어 살펴보겠습니다.

예:

## Vertical Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Vertical Append:', np.vstack((f, g)))

출력:

Vertical Append: [[1 2 3]
 [4 5 6]]

NumPy를 공부한 후 vstack hstackNumPy를 사용하여 난수를 생성하는 예제를 살펴보겠습니다.

랜덤 생성 Numbers NumPy를 사용하여

가우시안 분포에서 난수를 생성하려면 다음을 사용하십시오.

numpy.random.normal(loc, scale, size)

여기

  • 장소평균. 분포의 중심.
  • 규모: 표준편차.
  • 중량반환된 샘플 수.

예:

## Generate random numbers from a normal distribution
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)
[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

그래프로 나타내면 분포는 다음 그림과 유사합니다.

무작위 생성 예 Numbers NumPy를 사용하여
무작위 생성 예 Numbers NumPy를 사용하여

참고로, 최신 코드는 점점 더 최신 생성기 API를 사용하고 있습니다. np.random.default_rng()이는 기존 제품을 대체할 권장 제품입니다. np.random.normal NumPy 2.x에서의 호출.

NumPy Asarray 함수

The asarray() 이 함수는 입력값을 배열로 변환합니다. 입력값은 리스트, 튜플, ndarray 또는 이와 유사한 시퀀스일 수 있습니다.

구문 :

numpy.asarray(data, dtype=None, order=None)

여기

데이터배열로 변환하려는 데이터입니다.

dtype: 선택 사항입니다. 지정하지 않으면 입력 데이터에서 데이터 유형이 추론됩니다.

주문번호기본값은 다음과 같습니다. C행 우선 레이아웃이 있습니다. 다른 옵션은 다음과 같습니다. F (Fortran-스타일 컬럼 우선).

예:

다음은 4행 4열로 구성되고 모든 열이 1로 채워진 2차원 행렬입니다.

import numpy as np
A = np.matrix(np.ones((4,4)))

행렬의 값을 변경하려고 하면 np.array원본은 수정되지 않았습니다. 그 이유는 다음과 같습니다. np.array 행렬의 복사본을 생성합니다.

np.array(A)[2]=2
print(A)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

행렬은 변경되지 않았습니다. 사용 asarray 원래 배열을 제자리에서 수정하고 싶을 때 사용합니다. 세 번째 행의 값을 2로 설정하면 어떻게 되는지 살펴보겠습니다.

np.asarray(A)[2]=2
print(A)

Code 설명 :

np.asarray(A) 행렬을 변환합니다 A 배열 뷰로 변환합니다.

[2] 세 번째 행을 선택합니다.

출력:

[[1. 1. 1. 1.]
      [1. 1. 1. 1.]
      [2. 2. 2. 2.] # new value
      [1. 1. 1. 1.]]

numpy.arange()란 무엇입니까?

numpy.arange() `ndarray()`는 NumPy에 내장된 함수로, 정의된 간격 내에서 등간격으로 배열된 값을 반환합니다. 예를 들어, 1부터 10까지의 값을 생성하려면 `ndarray()`를 호출하면 됩니다. np.arange() in Python.

구문 :

numpy.arange(start, stop, step, dtype)

Python NumPy 범위 매개변수:

  • 스타트: 간격의 시작 np.arange in Python.
  • 중지간격의 끝.
  • 단계값 사이의 간격입니다. 기본값은 1입니다.
  • D 타입NumPy의 출력 배열 유형 arange.

예:

import numpy as np
np.arange(1, 11)

출력:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

예:

이 NumPy의 단계를 변경하려면 arange 예를 들어 괄호 안에 세 번째 숫자를 추가하면 단계 크기가 변경됩니다.

import numpy as np
np.arange(1, 14, 4)

출력:

array([ 1,  5,  9, 13])

NumPy Linspace 함수

linspace 두 끝점 사이에 균등하게 간격이 있는 샘플을 반환합니다.

구문 :

numpy.linspace(start, stop, num, endpoint)

여기

  • 스타트: 수열의 시작 값.
  • 중지: 시퀀스의 최종 값.
  • 생성할 샘플 수입니다. 기본값은 50입니다.
  • 종점: 만약 True (기본값), stop 마지막 값입니다. 만약 False, stop 포함되어 있지 않습니다.

예:

예를 들어, 1부터 5까지 10개의 등간격 값을 생성하는 데 사용할 수 있습니다.

import numpy as np
np.linspace(1.0, 5.0, num=10)

출력:

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

구간에 마지막 자릿수를 포함하지 않으려면 다음과 같이 설정하세요. endpointFalse.

np.linspace(1.0, 5.0, num=5, endpoint=False)

출력:

array([1. , 1.8, 2.6, 3.4, 4.2])

LogSpace NumPy 기능 Python

logspace 로그 스케일에서 등간격의 숫자를 반환합니다. logspace 다음과 같은 매개변수를 공유합니다. np.linspace.

구문 :

numpy.logspace(start, stop, num, endpoint)

예:

np.logspace(3.0, 4.0, num=4)

출력:

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

마지막으로, 배열의 특정 요소 하나의 메모리 크기를 확인하려면 다음을 사용할 수 있습니다. itemsize.

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

출력:

16

각 요소는 16바이트를 사용합니다.

인덱싱 및 슬라이싱 Python

NumPy를 사용하면 데이터 슬라이싱이 간단합니다. 행렬을 슬라이싱해 보겠습니다. e. 에 Python대괄호를 사용하면 행 또는 열을 반환할 수 있습니다.
예:

## Slice
import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

NumPy에서 배열의 첫 번째 인덱스는 0부터 시작한다는 점을 기억하세요.

## First row
print('First row:', e[0])

## Second row
print('Second row:', e[1])

출력:

First row: [1 2 3]
Second row: [4 5 6]

In Python다른 많은 언어에서와 마찬가지로,

  • 쉼표 앞의 값은 행 수를 나타냅니다.
  • 쉼표 뒤의 값은 열을 나타냅니다.
  • 열을 선택하려면 추가하세요. : 컬럼 인덱스 이전에.
  • : 선택한 열의 모든 행을 가져오겠다는 의미입니다.
print('Second column:', e[:,1])
Second column: [2 5]

두 번째 행의 처음 두 값을 반환하려면 다음을 사용하세요. : 두 번째 인덱스까지의 모든 열을 선택합니다.

## Second Row, two values
print(e[1, :2])
[4 5]

의 통계 함수 Python

NumPy는 주어진 배열에서 최소값, 최대값, 백분위수, 표준 편차, 분산 등을 찾는 데 유용한 통계 함수들을 제공합니다. 가장 일반적인 함수들은 아래에 나열되어 있습니다.

NumPy는 표에 요약된 바와 같이 강력한 통계 도우미 기능을 제공합니다.

함수 누피
Min np.min()
Max np.max()
Mean np.평균()
중앙값 np.median()
표준 편차 np.std()

다음 배열을 고려해 보세요.

예:

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

출력:

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

NumPy 통계 함수의 예시

### Min
print(np.min(normal_array))

### Max
print(np.max(normal_array))

### Mean
print(np.mean(normal_array))

### Median
print(np.median(normal_array))

### Sd
print(np.std(normal_array))

출력:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

numpy dot product란 무엇인가요?

넘파이닷 는 행렬 계산을 위한 강력한 함수입니다. 예를 들어, 를 사용하여 내적을 계산할 수 있습니다. np.dot. numpy.dot 내적을 반환합니다. a b이 함수는 1차원 및 2차원 배열을 모두 처리합니다. 2차원 입력의 경우 행렬 곱셈을 수행합니다.

구문 :

numpy.dot(x, y, out=None)

파라미터

여기

x, y입력 배열. x y 둘 다 1D 또는 2D여야 합니다. np.dot() 내적 또는 행렬 곱셈처럼 작동합니다.

아웃: 결과를 캡처하는 데 사용되는 선택적 출력 인수입니다. 그렇지 않으면 ndarray가 반환됩니다.

반품

기능 numpy.dot() 두 배열의 내적을 반환합니다. x y두 변수가 모두 1차원이면 스칼라 값을 반환하고, 그렇지 않으면 배열을 반환합니다. out 주어진 값에 대해 해당 배열이 반환됩니다.

제기하다

내적은 다음과 같습니다. Python 제기하다 ValueError 마지막 차원이 x 두 번째 마지막 차원과 일치하지 않습니다. y.

예:

## Linear algebra
### Dot product: product of two arrays
f = np.array([1,2])
g = np.array([4,5])
### 1*4+2*5
np.dot(f, g)

출력:

14

행렬 곱셈 Python

넘파이 matmul() 이 함수는 두 배열의 행렬 곱을 반환합니다. 작동 방식은 다음과 같습니다.

1) 2차원 배열의 경우, 일반적인 행렬 곱셈 결과를 반환합니다.

2) 차원이 2보다 큰 경우, 해당 제품은 행렬의 스택으로 처리됩니다.

3) 먼저 1차원 배열을 행렬로 변환한 다음 곱셈을 계산합니다.

접미사 @ 운영자, 이용 가능 시기: Python 3.5는 다음을 줄인 말입니다. matmul 그리고 현대 코드에서 널리 사용됩니다.

구문 :

numpy.matmul(x, y, out=None)

여기

x, y입력값은 배열입니다. 스칼라는 허용되지 않습니다.

아웃: 선택적 매개변수입니다. 일반적으로 출력은 ndarray에 저장됩니다.

예:

이와 같은 방식으로 행렬 곱셈을 계산할 수 있습니다. np.matmul.

### Matmul: matrix product of two arrays
h = [[1,2],[3,4]]
i = [[5,6],[7,8]]
### 1*5+2*7 = 19
np.matmul(h, i)

출력:

array([[19, 22],
            [43, 50]])

결정자

행렬의 행렬식을 계산해야 하는 경우 다음을 사용하십시오. np.linalg.det()NumPy는 크기 계산을 알아서 처리해 줍니다.

예:

## Determinant 2*2 matrix
### 5*8-7*6
np.linalg.det(i)

출력:

-2.000000000000005

NumPy 브로드캐스팅 설명

브로드캐스팅은 NumPy가 데이터를 복사하지 않고 서로 다른 형태의 배열에 대해 산술 연산을 수행할 수 있도록 하는 규칙입니다. 스칼라를 1차원 벡터에 더하거나 1차원 벡터를 2차원 행렬에 더할 때, NumPy는 작은 피연산자를 누락된 축을 따라 늘려서 두 벡터의 형태를 맞춥니다. 이렇게 하면 명시적인 데이터 복사를 피할 수 있습니다. Python 반복문은 NumPy 코드가 빠르고 간결하게 느껴지는 주요 이유 중 하나입니다.

두 도형은 오른쪽에서 왼쪽으로 비교했을 때 각 차원 쌍이 같거나 둘 중 하나가 1일 때 방송에 적합합니다. 예를 들어, 다음과 같은 형태의 행렬이 있습니다. (3, 4) 일련의 모양에 대해 방송합니다 (4,) 또는 기둥 모양의 (3, 1)머신러닝에서 정규화도 같은 논리에 기반합니다.tracta는 샘플 배치에서 얻은 각 특징별 평균 벡터를 한 줄에 표시합니다. 브로드캐스팅은 Py와 같은 텐서 라이브러리에서 사용하는 개념적 모델이기도 합니다.TorCh, TensorFlow, JAX 등을 사용하기 때문에 여기서 배우는 규칙은 GPU 코드에도 직접 적용됩니다.

NumPy는 어떻게 AI와 머신러닝을 강화할까요?

NumPy는 거의 모든 최신 소프트웨어의 기반이 됩니다. Python AI 스택.PyTorch 텐서, TensorFlow 즉시 실행 텐서 및 JAX 배열은 동일한 브로드캐스팅, 슬라이싱 및 재공유 기능을 제공합니다.ping NumPy ndarray에 대해 배웠던 API입니다. 많은 튜토리얼에서 여전히 전처리된 NumPy 배열을 모델 학습 루프에 입력으로 사용하고 있으며, 프레임워크는 변환 없이 이를 받아들입니다.

NumPy가 오늘날 AI 작업에 어떻게 활용되는지 세 가지 구체적인 사례를 통해 보여줍니다. 첫째, 데이터 엔지니어는 원시 특징을 NumPy 배열로 변환한 후 scikit-learn 파이프라인이나 Hugging Face 데이터셋에 전달합니다. 둘째, 연구원들은 NumPy를 CPU 기반 환경으로 사용한 다음, 거의 동일한 API를 제공하지만 NVIDIA GPU에서 CUDA를 통해 실행되는 CuPy로 교체합니다. 셋째, JAX는 NumPy API를 기반으로 자동 미분 및 JIT(Just-In-Time) 컴파일 기능을 추가하여 노트북에서 실행되는 코드를 클라우드의 TPU에서도 실행할 수 있도록 합니다. 요점은 NumPy를 통해 습득한 배열 관련 기술이 모든 주요 딥러닝 툴킷에서 활용된다는 것이며, 따라서 이 튜토리얼은 AI 개발 여정에서 유용한 첫걸음이 될 것입니다.

자주 묻는 질문

NumPy는 빠른 N차원 배열, 벡터화된 연산, 선형 대수, 난수 추출 및 푸리에 변환을 제공합니다. 엔지니어와 데이터 과학자들은 NumPy를 수치 계산, 이미지 및 신호 처리, 통계 분석에 사용하며, pandas, scikit-learn, SciPy와 같은 고급 라이브러리의 배열 기반으로도 활용합니다.

NumPy 배열은 하나의 고정된 데이터 유형의 요소를 연속적인 메모리 블록에 저장하므로 벡터화된 연산이 빠릅니다. Python 리스트는 임의의 객체를 저장하고, 다양한 유형을 지원하며, 요소별로 반복하는 느린 방식을 사용하기 때문에 유연하지만 대규모 수치 연산 작업에는 효율성이 훨씬 떨어집니다.

2024년 6월에 출시된 NumPy 2.0은 핵심 배열 API를 안정적으로 유지하면서 오랫동안 사용되지 않던 별칭들을 제거했습니다. np.float np.int또한 타입 승격 규칙을 강화합니다. 대부분의 프로덕션 코드는 사소한 수정만 필요합니다. 핀 numpy<2 종속성이 아직 업데이트되지 않은 경우.

PyTorCh와 TensorFlow는 NumPy ndarray를 기반으로 텐서 객체를 모델링합니다. 두 라이브러리는 동일한 형태, 브로드캐스팅 및 슬라이싱 방식을 공유하며, NumPy 배열을 입력으로 받습니다. NumPy를 통해 습득한 기술은 신경망 구축, 학습 루프 및 텐서 전처리 파이프라인 구축에 직접적으로 적용될 수 있습니다.

기본 NumPy는 CPU에서 실행됩니다. GPU 가속을 사용하려면 NVIDIA CUDA 장치에서 NumPy API를 미러링하는 CuPy 또는 GPU 및 TPU용 자동 차이 분석 및 JIT(Just-In-Time) 컴파일 기능을 추가하는 JAX를 사용할 수 있습니다. 두 라이브러리 모두 기존 NumPy 코드를 AI 워크로드에 맞게 최소한의 수정만으로 재사용할 수 있도록 해줍니다.

Anaconda에는 NumPy가 기본적으로 포함되어 있습니다. 그렇지 않은 경우, 다음 명령어를 실행하세요. pip install numpy or conda install -c anaconda numpy기존 설치를 NumPy 2.x로 업그레이드하려면 다음 명령을 실행하십시오. pip install --upgrade numpy활성화된 버전을 확인하세요. print(np.__version__) 내부 Python.

브로드캐스팅을 사용하면 NumPy는 데이터를 복사하지 않고도 서로 다른 형태의 배열을 처리할 수 있습니다. 크기가 호환되는 경우 작은 배열은 가상으로 늘어나 큰 배열과 크기가 같아집니다. 이는 머신러닝 파이프라인에서 정규화, 스케일링 및 특징 엔지니어링을 위한 간결한 표현식을 가능하게 합니다.

이 게시물을 요약하면 다음과 같습니다.