numpy — numpy 호환 배열 연산

ulabnumpy 서브모듈은 ndarray n차원 배열 타입을 중심으로 구축된 numpy 호환 API를 제공합니다. CPython의 numpy 중에서 엄선된 일부를 구현합니다: 배열 생성, 요소별 수학 연산, 축소(reduction) 및 통계, 선형 대수, FFT, 난수 생성, 다항식 피팅, 그리고 기본 I/O.

이 서브모듈은 관례적으로 np 로 임포트합니다:

from ulab import numpy as np

a = np.array([1, 2, 3, 4], dtype=np.float)
b = np.linspace(0, 1, num=5)
c = np.dot(a.reshape((2, 2)), a.reshape((2, 2)))

dtype 인자는 모듈 레벨에서 노출되는 정수 상수 중 하나입니다: numpy.bool, numpy.uint8, numpy.int8, numpy.uint16, numpy.int16, numpy.float(기본값), 그리고 (복소수 지원이 컴파일된 경우) numpy.complex. 결과 타입 ndarraynumpy.ndarray 를 가리킵니다.

서브모듈

class ndarray — n차원 배열

ndarraynumpy / ulab 의 핵심을 이루는 n차원, dtype 인식 컨테이너입니다. 데이터는 연속된 블록에 저장되며, 그 해석은 작은 헤더(dtype, shape, strides, ndim, itemsize)로 기술됩니다. reshape, transpose, 슬라이싱 같은 많은 연산은 이 헤더만 조정하므로 매우 저렴합니다. 반면 새 저장 공간을 할당하는 메서드(copy, flatten, 대부분의 산술 연산)는 새로운 밀집 배열을 반환합니다.

동일한 타입에 ulab.ndarray, numpy.ndarray, 그리고 (이 페이지 내에서는) 간단히 ndarray 로 접근할 수 있습니다.

class numpy.ndarray(values: ndarray | bytes | list | tuple, *, dtype: int = numpy.float)

ndarray 를 생성합니다.

매개변수:
  • values – 소스 데이터. 다른 ndarray(dtype 이 다르면 타입 변환과 함께 깊은 복사됨)이거나 임의의 MicroPython 이터러블입니다. 중첩 이터러블은 다차원 배열을 생성하며, 내부 이터러블은 모두 같은 길이여야 합니다. 그렇지 않으면 ValueError 가 발생합니다.

  • dtype – 새 배열의 요소 타입. numpy 가 노출하는 타입 코드 정수(numpy.bool, numpy.uint8, numpy.int8, numpy.uint16, numpy.int16, numpy.float, 그리고 지원되는 경우 numpy.complex) 중 하나이거나 dtype 인스턴스입니다. 기본값은 numpy.float 입니다.

팩토리 함수 numpy.arrayndarray 를 생성하는 관례적인 방법으로, 이 생성자로 전달됩니다.

byteswap(*, inplace: bool = False) ndarray

모든 요소의 바이트 순서를 교환합니다. uint16, int16, float, complex 배열의 경우 요소별 바이트 순서를 뒤집는데, 이는 엔디언이 마이크로컨트롤러와 일치하지 않는 주변장치에서 데이터를 가져올 때 유용합니다. 단일 바이트 dtype(bool, uint8, int8)의 경우 이는 아무 동작도 하지 않으며 뷰 또는 복사본을 반환합니다.

inplaceFalse(기본값)이면 새 ndarray 가 반환되고 원본은 그대로 유지됩니다. inplaceTrue 이면 self 의 바이트가 제자리에서 교환되고 self 의 뷰가 반환됩니다.

copy() ndarray

배열의 새로운 밀집 깊은 복사본을 반환합니다. 복사본은 자체 데이터를 소유하므로, 복사본을 수정해도 원본에는 영향을 주지 않습니다.

flatten(*, order: str = 'C') ndarray

배열의 새로운 1차원 복사본을 반환합니다.

매개변수:

order'C'(기본값)는 C 순서(마지막 축이 가장 빠르게 변함)로 데이터를 순회합니다. 'F' 는 Fortran 순서(첫 번째 축이 가장 빠르게 변함)로 순회합니다.

reshape(shape: int | tuple[int, ...]) ndarray

새로운 shape를 가진 배열의 뷰를 반환합니다. 전체 요소 개수는 변하지 않아야 하며, 그렇지 않으면 ValueError 가 발생합니다. ULAB_MAX_DIMS > 1 일 때만 사용할 수 있습니다. shape 에 할당하는 것과 동등합니다.

sort(*, axis: int | None = -1) None

배열을 제자리에서 정렬합니다.

매개변수:

axis – 정렬을 수행할 축. -1(기본값)은 마지막 축을 따라 정렬합니다. None 은 먼저 배열을 평탄화한 다음 정렬합니다.

tobytes() bytearray

배열의 기반 데이터 버퍼를 별칭으로 가리키는 bytearray 를 반환합니다. 반환된 bytearray 를 통한 쓰기는 배열을 제자리에서 수정합니다. 배열이 밀집되어 있지 않으면(예: 슬라이스된 뷰) ValueError 가 발생합니다.

tolist() list

배열의 내용을 (중첩될 수 있는) Python list 로 반환합니다. 중첩 깊이는 ndim 과 같습니다.

transpose() ndarray

배열의 전치(축 역순)를 반환합니다. 1차원 배열의 경우 self 를 반환합니다. ULAB_MAX_DIMS > 1 일 때만 사용할 수 있습니다. T 속성은 이 메서드의 약식 표현입니다.

dtype: dtype | int

배열 요소의 데이터 타입. 펌웨어가 ULAB_HAS_DTYPE_OBJECT 가 활성화된 상태로 빌드된 경우 dtype 인스턴스를 반환하고, 그렇지 않으면 기반 단일 문자 타입 코드를 정수로 반환합니다.

flat: flatiter

C 순서로 배열의 모든 요소를 산출하는 평탄 이터레이터입니다. flatten() 과 달리 flat 을 순회해도 새 배열을 할당하지 않습니다.

itemsize: int

단일 배열 요소의 바이트 단위 크기로, dtype 에서 파생됩니다.

ndim: int

배열의 차원 수(shape 의 길이).

shape: tuple[int, ...]

각 축을 따른 배열의 길이. shape 에 튜플을 할당하면 배열이 제자리에서 reshape됩니다(reshape() 와 동등).

size: int

배열의 전체 요소 개수(shape 의 곱).

strides: tuple[int, ...]

해당 축을 따라 다음 요소에 도달하기 위해 메모리에서 이동해야 하는 바이트 수.

T: ndarray

배열의 전치. transpose() 와 동등합니다.

real: ndarray

복소수 배열의 실수부로, float ndarray 로 반환됩니다. 실수 배열의 경우 같은 dtype 을 가진 self 의 복사본입니다. 펌웨어가 복소수 지원과 함께 빌드된 경우에만 사용할 수 있습니다.

imag: ndarray

복소수 배열의 허수부로, float ndarray 로 반환됩니다. 실수 배열의 경우 self 와 같은 dtype 을 가진 0으로 채워진 배열입니다. 펌웨어가 복소수 지원과 함께 빌드된 경우에만 사용할 수 있습니다.

지원되는 연산자

ndarray 인스턴스는 다음 연산자를 지원합니다. 이항 연산자는 표준 numpy 브로드캐스팅 규칙에 따라 피연산자를 브로드캐스트하고, numpy의 업캐스팅 규칙을 따릅니다(예: uint8 + int8 => int16, uint16 + int16 => float). 복소수 피연산자가 포함된 연산은 복소수 결과를 생성합니다.

산술(이항): +, -, *, /, //, %, **. 반사된(우측) 피연산자와 제자리 변형 +=, -=, *=, /=, %=, **= 도 지원됩니다. ndarray-ndarrayndarray-스칼라 형태가 모두 허용됩니다. 바닥 나눗셈(//)과 나머지 연산자(%)는 complex 배열에 대해서는 구현되어 있지 않습니다.

비교: ==, !=, <, <=, >, >=. 각각 브로드캐스트 shape의 불리언 ndarray 를 반환합니다.

비트 연산(정수 배열만): &, |, ^. 이를 float 또는 complex 배열에 적용하면 TypeError 가 발생합니다.

단항: +(복사본 반환), -(부정; 부호 없는 dtype에서는 값이 \(2^N\) 으로 모듈로 래핑됨), abs()(요소별 절댓값; 부호 없는 dtype에서는 계산 없이 복사본 반환), ~(비트 반전, 정수 dtype만), len()(첫 번째 축의 길이 반환).

인덱싱 및 슬라이싱: a[i], a[i, j, ...], a[start:stop:step], 불리언 마스크 인덱싱(a[mask]), 정수 배열(팬시) 인덱싱이 모두 읽기와 쓰기 양쪽에서 지원됩니다.

반복: ndarray 를 순회하면 첫 번째 축을 따라 하위 배열을 산출합니다(1차원 배열의 경우 한 번에 하나의 요소). 차원에 관계없이 모든 스칼라 요소를 순회하려면 flat 을 사용하세요.

행렬 곱셈 연산자 @ 는 구현되어 있지 않습니다. 대신 numpy.dot(np.dot(a, b))을 사용하세요.

시프트(<<, >>) 연산자는 연산자 수준에서 구현되어 있지 않습니다. 요소별 정수 시프트에는 numpy.left_shiftnumpy.right_shift 를 사용하세요.

배열 생성

numpy.array(values: ndarray | list | tuple, *, dtype: int = float) ndarray

숫자의 중첩 이터러블로부터 새 ndarray 를 생성합니다. numpy.ndarray 의 동등한 대체 생성자입니다.

numpy.arange(start: int | float, stop: int | float | None = None, step: int | float = 1, *, dtype: int | None = None) ndarray

반개구간 [start, stop) 에 걸쳐 균등 간격의 값을 반환합니다. 위치 인자가 하나만 주어지면 start = 0stop 으로 취급됩니다. dtype 이 생략되면 입력에서 추론됩니다(start, stop, step 이 모두 정수이고 범위 내에 있으면 정수).

numpy.asarray(a: ndarray | list | tuple, *, dtype: int | None = None) ndarray

a 가 이미 dtype이 dtype 과 일치하는(또는 dtypeNone 인) ndarray 이면 a 를 변경 없이 반환합니다. 그렇지 않으면 (주어진 경우 요청된 dtype 변환과 함께) 새 배열을 생성합니다. 이터러블은 numpy.array 에서와 같이 변환됩니다.

numpy.concatenate(arrays: tuple, *, axis: int = 0) ndarray

기존 axis 를 따라 ndarray 의 시퀀스를 결합합니다. 모든 입력 배열은 axis 를 제외한 모든 축에서 같은 dtype, ndim, shape를 공유해야 합니다.

numpy.diag(a: ndarray, *, k: int = 0) ndarray

2차원 a 의 경우 k 번째 대각선을 담은 1차원 배열을 반환합니다. 1차원 a 의 경우 ak 번째 대각선에 배치된 2차원 정사각 배열을 반환합니다. k 는 양수(주 대각선 위) 또는 음수(아래)일 수 있습니다.

numpy.empty(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

zeros 의 별칭으로, shapedtype 의 0으로 채워진 배열을 반환합니다. (ulab은 버퍼를 초기화되지 않은 상태로 두지 않습니다.)

numpy.eye(N: int, M: int | None = None, k: int = 0, *, dtype: int = float) ndarray

k 번째 대각선에 1이 있고 그 외에는 0인 2차원 N x M 배열(MNone 이면 정사각 N x N)을 반환합니다.

numpy.frombuffer(buffer: bytes, *, dtype: int = float, count: int = -1, offset: int = 0) ndarray

버퍼 프로토콜 객체를 dtype 의 1차원 ndarray 로 해석합니다. count 는 읽을 항목 수입니다(-1 은 사용 가능한 모든 항목을 읽음). offset 은 버퍼 시작에서 그만큼의 바이트를 건너뜁니다.

numpy.full(shape: int | tuple[int, ...], fill_value: int | float | bool, *, dtype: int = float) ndarray

모든 요소가 fill_value 로 설정된 shapedtype 의 새 배열을 반환합니다.

numpy.linspace(start: float, stop: float, num: int = 50, *, endpoint: bool = True, retstep: bool = False, dtype: int = float) ndarray | tuple[ndarray, float]

닫힌 구간 [start, stop](또는 endpointFalse 이면 반개구간)에 걸쳐 num 개의 균등 간격 샘플을 반환합니다. retstepTrue 이면 튜플 (samples, step) 을 반환합니다. 복소수 start/stop 은 복소수 배열을 생성합니다(복소수 지원이 활성화된 경우).

numpy.logspace(start: float, stop: float, num: int = 50, *, base: float = 10.0, endpoint: bool = True, dtype: int = float) ndarray

로그 스케일에서 균등 간격으로 배치된 num 개의 샘플을 반환합니다: 결과는 base ** start 에서 시작하여 base ** stop 에서 끝납니다.

numpy.meshgrid(*xi: ndarray, indexing: str = 'xy') tuple[ndarray, ...]

1차원 좌표 배열의 시퀀스로부터 좌표 행렬의 튜플을 반환합니다. indexing'xy'(기본값)이면 처음 두 입력이 데카르트 좌표로 취급되고 출력 축이 교환됩니다. 'ij' 이면 행렬 스타일 인덱싱이 사용됩니다. 이 구현은 copy=Truesparse=False 인 NumPy의 동등 기능에 해당합니다.

numpy.ones(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

1로 채워진 shapedtype 의 새 배열을 반환합니다.

numpy.zeros(shape: int | tuple[int, ...], *, dtype: int = float) ndarray

0으로 채워진 shapedtype 의 새 배열을 반환합니다.

검사 / 출력

numpy.get_printoptions() dict

현재 배열 출력 옵션을 thresholdedgeitems 키를 가진 딕셔너리로 반환합니다.

numpy.set_printoptions(*, threshold: int | None = None, edgeitems: int | None = None) None

배열 출력 옵션을 설정합니다. threshold 는 전체가 출력되는 최대 배열 요소 수입니다. edgeitems 는 배열이 요약될 때 축의 각 끝에서 표시되는 항목 수입니다.

numpy.ndinfo(array: ndarray) None

array 에 대한 진단 정보(shape, strides, dtype, itemsize, …)를 출력합니다.

numpy.size(a: ndarray, *, axis: int | None = None) int

axis 를 따른 a 의 요소 수를 반환합니다. axisNone 이면 전체 요소 수(ndarray.shape 의 곱)를 반환합니다.

비교

numpy.clip(a: ndarray | int | float, a_min: ndarray | int | float, a_max: ndarray | int | float) ndarray | int | float

a 의 값을 a_min <= result <= a_max 가 되도록 클리핑합니다. maximum(a_min, minimum(a, a_max)) 와 동등하며, 브로드캐스팅은 minimum 과 같은 규칙을 따릅니다.

numpy.equal(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | bool

요소별 x1 == x2; 불리언 ndarray(또는 두 입력이 모두 스칼라이면 bool 스칼라)를 반환합니다. 이식성을 위해 제공됩니다 – 배열에 대한 == 연산자도 같은 결과를 제공합니다.

numpy.not_equal(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | bool

요소별 x1 != x2; equal 의 불리언 대응 함수입니다.

numpy.isfinite(x: ndarray | int | float) ndarray | bool

입력이 유한한 곳에서 True 인 불리언 배열(또는 스칼라)을 반환합니다. 정수 입력은 항상 유한합니다.

numpy.isinf(x: ndarray | int | float) ndarray | bool

입력이 무한한 곳에서 True 인 불리언 배열(또는 스칼라)을 반환합니다. 정수 입력은 결코 무한하지 않습니다.

numpy.maximum(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | int | float

두 배열 / 스칼라의 요소별 최댓값. 인자는 함께 브로드캐스트됩니다. dtype이 다르면 출력은 업캐스트됩니다.

numpy.minimum(x1: ndarray | int | float, x2: ndarray | int | float) ndarray | int | float

두 배열 / 스칼라의 요소별 최솟값; maximum 의 대응 함수입니다.

numpy.nonzero(a: ndarray) tuple[ndarray, ...]

a 의 각 차원당 하나씩의 ndarray 튜플을 반환하며, a 의 0이 아닌 요소의 인덱스를 담습니다.

numpy.where(condition: ndarray | int | float, x: ndarray | int | float, y: ndarray | int | float) ndarray

condition 이 참인 곳에서는 x 에서, 그렇지 않으면 y 에서 요소를 가져온 ndarray 를 반환합니다. 세 입력은 함께 브로드캐스트됩니다. 출력 dtype은 xy 의 업캐스트입니다.

수치 축소

numpy.all(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | bool

axis 를 따라 모든 요소가 True 로 평가되는지 검사합니다. axis=None(기본값)이면 평탄화된 배열이 검사되고 단일 bool 이 반환됩니다.

numpy.any(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | bool

axis 를 따라 어떤 요소라도 True 로 평가되는지 검사합니다. axis=None 이면 평탄화된 배열이 검사됩니다.

numpy.argmax(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | int

axis 를 따른 최대 요소의 인덱스를 반환합니다. axis=None 이면 배열이 평탄화되고 단일 정수가 반환됩니다.

numpy.argmin(a: ndarray | list | tuple, *, axis: int | None = None) ndarray | int

axis 를 따른 최소 요소의 인덱스를 반환합니다. axis=None 이면 배열이 평탄화되고 단일 정수가 반환됩니다.

numpy.argsort(a: ndarray, *, axis: int = -1) ndarray

axis 를 따라 a 를 오름차순으로 정렬하는 부호 없는 정수 인덱스 ndarray 를 반환합니다. 출력 dtype은 uint16 이므로 어떤 축도 65535개 요소를 초과할 수 없습니다. axis=None 은 지원되지 않습니다.

numpy.cross(a: ndarray, b: ndarray) ndarray

길이가 3인 두 1차원 배열의 외적을 반환합니다.

numpy.diff(a: ndarray, *, n: int = 1, axis: int = -1) ndarray

axis 를 따른 an 차 이산 전방 차분을 반환합니다. n0..9 범위여야 합니다(미분 스텐실은 int8 에 저장됨). axis 의 길이는 n 만큼 줄어듭니다. numpy의 prependappend 키워드는 구현되어 있지 않습니다.

numpy.flip(a: ndarray, *, axis: int | None = None) ndarray

axis 를 따라 요소 순서가 역순으로 된 새 배열을 반환합니다. axis=None 이면 배열이 모든 축을 따라 역순으로 됩니다.

numpy.max(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

axis 를 따른 최대 요소를 반환합니다. axis=None(기본값)이면 평탄화된 배열이 스칼라로 축소됩니다. numpy의 out 키워드는 구현되어 있지 않습니다.

numpy.min(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

axis 를 따른 최소 요소를 반환합니다; max 의 대응 함수입니다.

numpy.mean(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | float

axis 를 따른 산술 평균을 반환합니다. axis=None(기본값)이면 평탄화된 배열의 평균이 float 로 반환됩니다.

numpy.median(a: ndarray, *, axis: int | None = None) ndarray | float

axis 를 따른 중앙값을 반환합니다. axis=None 이면 배열이 먼저 평탄화됩니다. 출력 dtype은 항상 float입니다.

numpy.roll(a: ndarray, shift: int, *, axis: int | None = None) ndarray

a 의 요소를 shift 위치만큼 롤(순환 시프트)한 결과를 반환합니다. axis=None(기본값)이면 배열이 먼저 평탄화됩니다. 음수 시프트는 반대 방향으로 롤합니다.

numpy.sort(a: ndarray, *, axis: int = -1) ndarray

힙 정렬을 사용하여 axis 를 따라 정렬된 a 의 복사본을 반환합니다. axis=None 이면 배열이 먼저 평탄화됩니다. numpy의 kindorder 키워드는 구현되어 있지 않습니다.

numpy.std(a: ndarray | list | tuple, *, axis: int | None = None, ddof: int = 0, keepdims: bool = False) ndarray | float

axis 를 따른 표준 편차를 반환합니다. ddof 는 델타 자유도로, 사용되는 제수는 N - ddof 입니다.

numpy.sum(a: ndarray | list | tuple, *, axis: int | None = None, keepdims: bool = False) ndarray | int | float

axis 를 따른 합을 반환합니다. axis=None 이면 평탄화된 배열의 총합이 스칼라로 반환됩니다.

통계

numpy.bincount(x: ndarray, *, weights: ndarray | None = None, minlength: int | None = None) ndarray

1차원 음이 아닌 정수 배열 x 에서 각 값의 출현 횟수를 셉니다. x dtype은 uint8 또는 uint16 이어야 합니다. weights 가 주어지면 x 의 각 항목이 1 대신 자신과 일치하는 가중치를 기여하고 출력은 dtype float 입니다. 그렇지 않으면 출력은 dtype uint16 입니다. minlength 가 주어지면 출력 배열은 최소한 그만큼의 요소를 가집니다(추가 항목은 0).

numpy.trace(m: ndarray) int | float

정사각 행렬 m 의 대각 요소의 합을 반환합니다. 반환 타입은 m 의 dtype을 따릅니다(정수 배열은 int를, float 배열은 float를 생성).

변환

numpy.compress(condition: ndarray | list | tuple, a: ndarray, *, axis: int | None = None) ndarray

불리언 condition 에 의해 axis 를 따라 선택된 a 의 슬라이스를 반환합니다. axis=None 이면 평탄화된 배열이 사용됩니다.

numpy.delete(a: ndarray, indices: int | ndarray | list | tuple | range, *, axis: int | None = None) ndarray

axis 를 따라 indices 위치의 항목이 제거된 a 의 복사본을 반환합니다. axis=None 이면 배열이 먼저 평탄화됩니다. 음수 인덱스는 axis 의 끝에서부터 셉니다. indices 는 삭제 전에 내부적으로 정렬됩니다.

numpy.dot(m1: ndarray, m2: ndarray) ndarray | float

두 배열의 내적(dot product)을 반환합니다. 두 1차원 배열의 경우 이는 내적(float 스칼라)입니다. 2차원 배열의 경우 이는 행렬 곱셈이며, 내부 차원이 일치해야 합니다. 결과는 항상 dtype float 입니다.

근사

numpy.interp(x: ndarray, xp: ndarray, fp: ndarray, *, left: float | None = None, right: float | None = None) ndarray

1차원 선형 보간. xp 는 독립 값의 단조 증가 1차원 배열이어야 합니다. fp 는 대응하는 종속 값을 담습니다. x 는 보간 함수가 평가되는 지점입니다. leftright 는 각각 x < xp[0]x > xp[-1] 에 대해 반환되는 값을 재정의합니다(기본값: fp[0]fp[-1]).

numpy.trapz(y: ndarray, x: ndarray | None = None, dx: float = 1.0) float

복합 사다리꼴 규칙을 사용하여 y 를 적분합니다. x 가 주어지면 y 에 대응하는 샘플 위치를 제공합니다. 그렇지 않으면 간격 dx 가 사용됩니다. y(및 x)는 1차원이어야 합니다.

선택

numpy.take(a: ndarray, indices: ndarray | list | tuple, *, axis: int | None = None, out: ndarray | None = None, mode: str | None = None) ndarray

axis 를 따라 주어진 indices 위치의 요소를 a 에서 가져옵니다. axis=None 이면 평탄화된 배열이 사용됩니다. mode 는 범위를 벗어난 동작을 선택합니다: "raise"(기본값 – ValueError 발생), "wrap"(축 길이로 모듈로), 또는 "clip"(유효 범위로 클리핑; 음수 인덱스는 허용되지 않음). out 이 주어지면 결과가 그 안에 기록됩니다.

비트 연산

numpy.bitwise_and(x1: ndarray, x2: ndarray) ndarray

두 정수 배열의 요소별 비트 AND; 브로드캐스팅이 지원됩니다. 정수가 아닌 dtype은 예외를 발생시킵니다.

numpy.bitwise_or(x1: ndarray, x2: ndarray) ndarray

두 정수 배열의 요소별 비트 OR.

numpy.bitwise_xor(x1: ndarray, x2: ndarray) ndarray

두 정수 배열의 요소별 비트 XOR.

numpy.left_shift(x1: ndarray, x2: ndarray) ndarray

x1x2 비트만큼 왼쪽으로 요소별 비트 시프트; 두 배열 모두 정수 dtype이어야 합니다.

numpy.right_shift(x1: ndarray, x2: ndarray) ndarray

x1x2 비트만큼 오른쪽으로 요소별 비트 시프트; 두 배열 모두 정수 dtype이어야 합니다.

필터링

numpy.convolve(a: ndarray, v: ndarray) ndarray

두 1차원 배열의 이산 선형 컨볼루션을 반환합니다. "full" 모드만 지원되며, numpy의 mode 키워드는 허용되지 않습니다(다른 모드는 전체 결과를 슬라이싱하여 얻을 수 있음). 출력 길이는 len(a) + len(v) - 1 입니다.

다항식

numpy.polyfit(x: ndarray | list | tuple, y: ndarray | list | tuple, deg: int) ndarray
numpy.polyfit(y: ndarray | list | tuple, deg: int) ndarray

최소 제곱법으로 데이터 점 (x, y) 에 차수 deg 의 다항식을 피팅하고 다항식 계수(최고 차수부터)를 반환합니다. x 가 생략되면 range(len(y)) 가 사용됩니다. xy 의 길이가 다르면 ValueError 가 발생합니다.

numpy.polyval(p: ndarray | list | tuple, x: ndarray | list | tuple | int | float) ndarray | float

계수가 p(최고 차수부터)인 다항식을 x 에서 평가합니다. x 가 스칼라이면 float 가 반환되고, 그렇지 않으면 ndarray 가 반환됩니다.

I/O

numpy.load(file: str) ndarray

save 로 이전에 작성된 배열을 file(numpy의 플랫폼 독립적 .npy 포맷)에서 읽습니다. 파일의 바이트 순서가 호스트와 다르면 엔디언이 즉석에서 변환됩니다.

numpy.loadtxt(file: str, *, delimiter: str | None = None, comments: str = '#', max_rows: int = -1, usecols: int | ndarray | list | tuple | None = None, dtype: int = float, skiprows: int = 0) ndarray

텍스트 file 에서 수치 데이터를 읽어 ndarray 로 반환합니다. delimiter 의 기본값은 공백입니다. comments 는 줄 주석 마커입니다. max_rows 는 읽을 데이터 행 수를 제한합니다(-1 은 전체). usecols 는 인덱스로 열을 선택합니다. skiprows 는 그만큼의 선행 행을 건너뜁니다. dtype 이 float가 아니면 값은 반올림으로 변환됩니다.

numpy.save(file: str, a: ndarray) None

a 를 numpy의 플랫폼 독립적 .npy 포맷으로 file 에 저장합니다.

numpy.savetxt(file: str, a: ndarray, *, delimiter: str = ' ', header: str | None = None, footer: str | None = None, comments: str = '# ') None

a 를 텍스트로 file 에 작성합니다. delimiter 는 행 내의 값을 구분합니다. headerfooter 가 제공되면 데이터 앞/뒤에 작성되며, 각각 comments 가 접두사로 붙습니다. 값은 부동소수점으로 작성됩니다.

복소수 헬퍼

이 함수들은 ulab이 복소수 지원(ULAB_SUPPORTS_COMPLEX)과 함께 컴파일된 경우에만 사용할 수 있습니다.

numpy.real(val: ndarray) ndarray

val 의 실수부를 반환합니다. 실수 dtype 입력의 경우 dtype을 보존하는 복사본을 반환합니다. 복소수 입력의 경우 float ndarray 를 반환합니다.

numpy.imag(val: ndarray) ndarray

val 의 허수부를 반환합니다. 실수 dtype 입력의 경우 같은 dtype의 0으로 채워진 배열을 반환합니다. 복소수 입력의 경우 float ndarray 를 반환합니다.

numpy.conjugate(val: ndarray | complex | int | float) ndarray | complex | int | float

val 의 켤레 복소수를 반환합니다. 실숫값 입력은 변경 없이 반환됩니다.

numpy.sort_complex(a: ndarray) ndarray

1차원 배열 a 를 먼저 실수부로, 그다음 허수부로 정렬합니다. 결과는 a 가 실숫값이었더라도 항상 복소수 dtype입니다.

유니버설 함수

요소별 수학 함수. 각각 스칼라 또는 ndarray 를 받아 일치하는 shape의 결과를 반환합니다(스칼라 입력의 경우 float 스칼라, 배열 입력의 경우 ndarray). ndarray 로 호출되면 결과는 새 부동소수점 ndarray 입니다. 결과를 같은 크기의 미리 할당된 float ndarray 에 기록하도록 선택적 out 키워드를 전달할 수 있습니다.

numpy.acos(x: ndarray | float, /) ndarray | float

x 의 각 요소의 역코사인(arc cosine)을 계산합니다. 결과는 라디안 단위입니다.

numpy.acosh(x: ndarray | float, /) ndarray | float

x 의 각 요소의 역쌍곡코사인을 계산합니다.

numpy.arctan2(y: ndarray | float, x: ndarray | float, /) ndarray | float

두 인자 역탄젠트 atan2(y, x) 를 요소별로 계산합니다. 두 입력 간 브로드캐스팅을 지원합니다.

numpy.around(x: ndarray, /, decimals: int = 0) ndarray

ndarray x 의 요소를 주어진 소수 자릿수 decimals 로 반올림합니다. 첫 번째 인자는 ndarray 여야 합니다.

numpy.asin(x: ndarray | float, /) ndarray | float

x 의 각 요소의 역사인(arc sine)을 계산합니다. 결과는 라디안 단위입니다.

numpy.asinh(x: ndarray | float, /) ndarray | float

x 의 각 요소의 역쌍곡사인을 계산합니다.

numpy.atan(x: ndarray | float, /) ndarray | float

x 의 각 요소의 역탄젠트(arc tangent)를 계산합니다. 결과는 라디안 단위입니다.

numpy.atanh(x: ndarray | float, /) ndarray | float

x 의 각 요소의 역쌍곡탄젠트를 계산합니다.

numpy.ceil(x: ndarray | float, /) ndarray | float

x 의 각 요소의 천장값(값보다 작지 않은 가장 작은 정수)을 계산합니다.

numpy.cos(x: ndarray | float, /) ndarray | float

x 의 각 요소의 코사인(라디안 단위)을 계산합니다.

numpy.cosh(x: ndarray | float, /) ndarray | float

x 의 각 요소의 쌍곡코사인을 계산합니다.

numpy.degrees(x: ndarray | float, /) ndarray | float

x 의 각 요소를 라디안에서 도로 변환합니다.

numpy.exp(x: ndarray | float, /) ndarray | float

x 의 각 요소의 지수 e**x 를 계산합니다. 복소수 입력이 주어지면 복소수 ndarray 를 반환할 수 있습니다(복소수 지원이 활성화된 경우).

numpy.expm1(x: ndarray | float, /) ndarray | float

0 근처에서 향상된 정밀도로 x 의 각 요소의 exp(x) - 1 을 계산합니다.

numpy.floor(x: ndarray | float, /) ndarray | float

x 의 각 요소의 바닥값(값보다 크지 않은 가장 큰 정수)을 계산합니다.

numpy.log(x: ndarray | float, /) ndarray | float

x 의 각 요소의 자연 로그를 계산합니다.

numpy.log10(x: ndarray | float, /) ndarray | float

x 의 각 요소의 밑 10 로그를 계산합니다.

numpy.log2(x: ndarray | float, /) ndarray | float

x 의 각 요소의 밑 2 로그를 계산합니다.

numpy.radians(x: ndarray | float, /) ndarray | float

x 의 각 요소를 도에서 라디안으로 변환합니다.

numpy.sin(x: ndarray | float, /) ndarray | float

x 의 각 요소의 사인(라디안 단위)을 계산합니다.

numpy.sinc(x: ndarray | float, /) ndarray | float

x 의 각 요소의 정규화된 sinc 함수 sin(pi*x) / (pi*x) 를 계산합니다.

numpy.sinh(x: ndarray | float, /) ndarray | float

x 의 각 요소의 쌍곡사인을 계산합니다.

numpy.sqrt(x: ndarray | float, /, *, dtype: int = float) ndarray | float

x 의 각 요소의 제곱근을 계산합니다. 음의 실수 입력에 대해 복소수 결과를 얻으려면 dtype=numpy.complex 를 전달하세요(복소수 지원이 활성화된 경우).

numpy.tan(x: ndarray | float, /) ndarray | float

x 의 각 요소의 탄젠트(라디안 단위)를 계산합니다.

numpy.tanh(x: ndarray | float, /) ndarray | float

x 의 각 요소의 쌍곡탄젠트를 계산합니다.

numpy.vectorize(f: Callable[[float], float], /, *, otypes: int | None = None) Callable

Python 함수 f 를 스칼라, 이터러블, 또는 ndarray 에 요소별로 적용하는 호출 가능 객체를 반환합니다. otypes 는 출력 dtype을 선택합니다(기본값 float).

상수

numpy.e: float

오일러 수 \(e \approx 2.71828\).

numpy.pi: float

\(\pi \approx 3.14159\).

numpy.inf: float

IEEE-754 부동소수점 양의 무한대.

numpy.nan: float

IEEE-754 부동소수점 “숫자가 아님(not a number)”.

numpy.bool: int

불리언 배열의 Dtype 코드(uint8 로 저장됨).

numpy.uint8: int

부호 없는 8비트 정수 배열의 Dtype 코드.

numpy.int8: int

부호 있는 8비트 정수 배열의 Dtype 코드.

numpy.uint16: int

부호 없는 16비트 정수 배열의 Dtype 코드.

numpy.int16: int

부호 있는 16비트 정수 배열의 Dtype 코드.

numpy.float: int

32비트 부동소수점 배열의 Dtype 코드.