English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

NumPy 배열 생성

ndarray 배열은 하이브리드 ndarray 생성자를 사용하여 생성할 수 있으며, 다음과 같은 방식으로 생성할 수도 있습니다.

numpy.empty

numpy.empty 메서드는 지정된 형상(shape), 데이터 타입(dtype) 및 초기화되지 않은 배열을 생성합니다:

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

주어진 형상과 타입의 새 배열을 반환합니다. 항목은 초기화되지 않습니다.

파라미터

prototype - 빈 배열의 형상입니다。dtype(선택 사항) - 배열이 필요한 출력 데이터 유형입니다. 예를 들어 numpy.int8。기본 값은 numpy.float입니다64。order(선택 사항, 기본: 'C') - 두 가지 옵션이 있습니다. "C"와 "F"로, 각각 행 우선과 열 우선으로 컴퓨터 메모리에서 요소를 저장하는 순서를 의미합니다.

반환 값: 주어진 배열의 형상이지만 데이터 타입과 순서가 초기화되지 않은(임의의) 데이터 배열입니다.

>>> import numpy as np
>>> np.empty([2, 2])
array([[1, 0.],
       [0., 1.]])
>>> np.empty([2, 2], dtype=int)
array([[4607182418800017408, 0],
       [ 0, 4607182418800017408])
>>>
참고:주의 - 배열 요소는 초기화되지 않았기 때문에 무작위 값입니다.

numpy.empty_like

numpy.empty은 주어진 배열의 형상과 유사한 새 배열을 반환합니다.

numpy.empty_like(prototype, dtype=None, order='K', subok=True, shape=None)

返回形状和类型与给定数组相同的新数组

파라미터

prototype - 源数组的形状和数据类型定义了返回数组的这些相同属性。dtype - 覆盖结果的数据类型。order - 覆盖结果的内存布局。如果prototypeFortran连续,则“ A”表示“ F”,否则为“ C”。“ K”表示prototype 尽可能匹配布局。subok - True이면 새로 생성된 배열은 'a'의 서브클래스 타입을 사용하며, 아니라면 기본 클래스 배열입니다. 기본值为True.shape - 覆盖结果的形状。如果order ='K'并且尺寸数量不变,将尝试保持顺序,否则,则暗示order ='C'。

返回值:形状和类型与原型相同的未初始化(任意)数据数组。

>>> import numpy as np
>>> a = ([1,2,3], [4,5,6-like
>>> np.empty_like(a)
array([[ 6917529027641081856, -6917520256071729910, 98],
       [ 0, 0, 0]])
>>> a = np.array([[1. 2. 3.],[4.5.6.]])
>>> np.empty_like(a)
array([[ 2.68156159e+154, 2.68156159e+154, 3.32479618e+181],
       [ 1.78476163e+185, -1.73059781e-077, 4.21535080e-309])

numpy.zeros

지정된 크기의 배열을 생성하고, 배열 요소는 0으로 채웁니다:

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

파라미터

shape - 빈 배열의 형상입니다。dtype - 배열이 필요한 출력 데이터 유형입니다. 예를 들어 numpy.int8。기본 값은 numpy.float입니다64。order - '{'C','F'},선택 사항,기본 값: 'C',메모리에 데이터를 행(C) 또는 열(Fortran) 스타일로 저장하는 순서를 나타냅니다。

반환 값: 주어진 배열의 형상, 데이터 유형 및 순서의 0 배열입니다.

>>> import numpy as np
>>> np.zeros(5)
array([0., 0., 0., 0., 0.])
>>> np.zeros((5,), dtype=int)
array([0, 0, 0, 0, 0])
>>> np.zeros((2, 1))
array([[0.],
       [0.]])
>>> s = (2,2)
>>> np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')]) # custom dtype
array([(0, 0), (0, 0)], dtype=[('x', '<i4' ),="" ('y',="" '

numpy.zeros_like

zeros_like는 주어진 배열과 같은 형상과 유형의 0 배열을 반환합니다.

numpy.zeros_like(a, dtype=None, order='K', subok=True, shape=None)[source]

파라미터

a - 정의된 반환 배열의 형상과 데이터 타입을 제한하는 속성입니다.dtype - 배열이 필요로 하는 출력 데이터 타입입니다.order - 결과의 메모리 레이아웃을 덮어씁니다.subok - True이면 새로 생성된 배열은 'a'의 서브클래스 타입을 사용하며, 아니라면 기본 클래스 배열입니다. 기본值为True.shapeint - 결과의 형상을 덮어씁니다.

반환 값: 같은 형상과 타입을 가진 0의 배열입니다.

>>> import numpy as np
>>> x = np.arange(6)
>>> x = x.reshape(2, 3))
>>> print(x)
[[0 1 2]
 [3 4 5]]
>>> np.zeros_like(x)
array([[0, 0, 0],
       [0, 0, 0]]
>>> y = np.arange(3, dtype=float)
>>> y
array([0., 1. 2.])
>>> np.zeros_like(y)
array([0., 0., 0.])

numpy.ones

지정된 형상의 배열을 생성합니다. 배열의 요소는 1 로 채웁니다:

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

파라미터

shape - 배열의 형상dtype - 데이터 타입, 선택 사항order - 'C'는 C의 행 배열을 의미하거나, 'F'는 FORTRAN의 열 배열을 의미합니다.

>>> import numpy as np
>>> np.ones(5)
array([1. 1. 1. 1. 1.])
>>> np.ones(5,), dtype=int)
array([1, 1, 1, 1, 1])
>>> np.ones(2, 1))
array([[1.],
       [1.]])
>>> s = (2,2)
>>> np.ones(s)
array([[1. 1.],
       [1. 1.]])

numpy.ones_like

zeros_like는 주어진 배열과 같은 형상과 타입을 가진 배열을 반환합니다.

numpy.ones_like(a, dtype=None, order='K', subok=True, shape=None)

파라미터

a - 정의된 반환 배열의 형상과 데이터 타입을 제한하는 속성입니다.dtype - 배열이 필요로 하는 출력 데이터 타입입니다.order - 결과의 메모리 레이아웃을 덮어씁니다.subok - True이면 새로 생성된 배열은 'a'의 서브클래스 타입을 사용하며, 아니라면 기본 클래스 배열입니다. 기본值为True.shape - 결과의 형상을 덮어씁니다.

반환 값: 같은 형상과 타입을 가진 0의 배열입니다.

>>> import numpy as np
>>> x = np.arange(6)
>>> x = x.reshape(2, 3))
>>> x
array([[0, 1, 2],
       [3, 4, 5])
>>> np.ones_like(x)
array([[1, 1, 1],
       [1, 1, 1])
>>> y = np.arange(3, dtype=float)
>>> y
array([0., 1. 2.])
>>> np.ones_like(y)
array([1. 1. 1.])

numpy.arange

numpy.arange([start],stop,[step],dtype=None)

주어진 간격 내의 균일 간격의 값을 반환합니다.
반개간격(즉, start를 포함하지만 stop를 포함하지 않는 간격) 내에서 값을 생성합니다. 정수 파라미터에 대해, 이 함수는 Python 내장의 range 함수와 동일하지만 ndarray를 반환합니다. [start, stop)

파라미터

start - 간격의 시작입니다. 간격은 이 값을 포함합니다. 기본 시작 값은 0입니다.stop - 간격이 끝났습니다. 이 간격은 기본적으로 값을 포함하지 않지만, step이 정수가 아니거나 소수점 표현이 out의 길이에 영향을 미칠 경우에만 포함됩니다.step - 값 사이의 간격. 어떤 출력이든 이는 두 가장 가까운 값 사이의 거리이며, 기본 단계는1。dtype - 출력 배열의 타입.

반환 값: 균일 간격의 값을 가진 배열.

>>> import numpy as np
>>> np.arange(3)
array([0., 1, 2])
>>> np.arange(3.0)
array([0., 1. 2.])
>>> np.arange(3,7)
array([3, 4, 5, 6])
>>> np.arange(3,7,2)
array([3, 5])

numpy.linspace

numpy.linspace 함수는 일维 배열을 생성하며, 배열은 등비 수열로 구성되어 있습니다. 다음과 같은 형식으로 있습니다:

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

파라미터

start - 시리즈의 시작 값.stop - 시리즈의 종료 값, endpoint가 true일 때 이 값이 시리즈에 포함됩니다.num - 생성할 수 있는 동일 간격의 샘플 수, 기본值为50。endpoint - 이 값이 true일 때 시리즈에 stop 값이 포함되며, 그렇지 않으면 포함되지 않습니다. 기본 값은 True입니다.retstep - True로 설정되면 생성된 배열에 간격이 표시되며, 그렇지 않으면 표시되지 않습니다.dtype - ndarray의 데이터 타입.

다음 예제에서는 세 가지 매개변수를 사용하여 시작점을 설정합니다 1 종료점은 10시리즈의 개수는 10。

>>> import numpy as np
>>> a = np.linspace(1,10,10)
>>> print(a)
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
>>> a = np.linspace(10, 20, 5, endpoint =  False)
>>> print(a)
[10. 12. 14. 16. 18.]
>>> a =np.linspace(1,10,10,retstep= True)
>>> print(a)
(array([ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]), 1.0)
>>> b =np.linspace(1,10,10).reshape([10,1])
>>> print(b)
[[ 1.]
 [ 2.]
 [ 3.]
 [ 4.]
 [ 5.]
 [ 6.]
 [ 7.]
 [ 8.]
 [ 9.]
 [10.]]

numpy.asarray

Python의 기본 데이터 타입(리스트, 튜플 등)을 직접 변환하여 ndarray를 생성합니다:

>>> import numpy as np
>>> ls1 = [10, 42, 0, -17, 30]
>>> nd1 =np.array(ls1)
>>> print(nd1)
[ 10 42 0 -17 30]
>>>
>>> print(type(nd1))

numpy.asarray유사 numpy.array하지만 numpy.asarray 매개변수는 numpy.array보다 두 개 적습니다.

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

파라미터

a - 다양한 형태의 입력 매개변수가 될 수 있습니다. 예를 들어, 리스트, 리스트의 튜플, 튜플, 튜플의 튜플, 튜플의 리스트, 다차원 배열.dtype - 데이터 타입, 선택 사항.order - 생성할 수 있는 동일 간격의 샘플 수, 기본值为50。endpoint - 선택할 수 있는 "C"와 "F" 두 가지 옵션이 있으며, 각각 행 우선과 열 우선을 의미하며, 컴퓨터 메모리에서 저장된 요소의 순서를 나타냅니다.

>>> import numpy as np
>>> x = [1,2,3]
>>> a = np.asarray(x)
>>> a
array([1, 2, 3])
>>> x = (1,2,3)
>>> a = np.asarray(x)
>>> print(a)
[1 2 3]
>>> x = [(1,2,3),(4,5)]
>>> a = np.asarray(x)
>>> print(a)
[(1, 2, 3) (4, 5)]
>>> x = [1,2,3]
>>> a = np.asarray(x, dtype=float)
>>> print(a)
[1. 2. 3.]

numpy.frombuffer

numpy.frombuffer는 동적 배열을 구현합니다.
numpy.frombuffer는 buffer 입력 매개변수를 받아 스트림 형태로 읽어들여 ndarray 객체로 변환합니다.

numpy.frombuffer(buffer, dtype=float, count= -1, offset = 0)
참고:buffer는 문자열이면 Python3 기본적으로 str은 Unicode 타입이므로, bytestring로 변환하기 위해 원래 str 앞에 b를 추가합니다.

파라미터

buffer - 상이할 수 있는 어떤 객체도, 스트림 형태로 읽어 들입니다.dtype - 배열의 데이터 타입을 반환합니다. 선택 사항count - 읽은 데이터 수, 기본적으로-1모든 데이터를 읽습니다.offset - 읽은 시작 위치, 기본적으로 0입니다.

>>> import numpy as np
>>> s = b'Hello w3codebox'
>>> a = np.frombuffer(s, dtype='S1)
>>> print(a)
[b'H' b'e' b'l' b'l' b'o' b' ' b'L' b'i' b'd' b'i' b'h' b'u' b'o']

numpy.fromiter

numpy.fromiter 메서드는 반복 가능 객체에서 ndarray 객체를 생성하고, 일维 배열을 반환합니다.

numpy.fromiter(iterable, dtype, count=-1)

파라미터

iterable - 반복 가능 객체dtype - 배열의 데이터 타입을 반환합니다count - 읽은 데이터 수, 기본적으로-1모든 데이터를 읽습니다.

>>> import numpy as np
>>> # range 함수를 사용하여 리스트 객체 생성
>>> list=range(5)
>>> it=iter(list)
>>> x=np.fromiter(it, dtype=float)
>>> print(x)
[0. 1. 2. 3. 4.]

random 모듈을 사용하여 배열 생성

모델을 더 효율적으로 훈련하고 모델 성능을 높이기 위해, 초기화가 일정한 조건을 충족해야 합니다. 예를 들어, 정규 분포나 평균 분포와 같은 조건입니다. 여기서는 np.random 모듈에서 자주 사용하는 몇 가지 방법을 소개합니다. 다음 표와 같이 나타냅니다.

함수설명
np.random.random0부터 생성1사이의 랜덤 수 생성
np.random.uniform확률 분포의 랜덤 수 생성
np.random.randn표준 정규 분포의 랜덤 수 생성
np.random.randint임의의 정수 생성
np.random.normal정규 분포 생성
np.random.shuffle랜덤 순서 섞기
np.random.seed랜덤 수 생성자 설정
random_sample임의의 실수를 생성
>>> import numpy as np
>>> # 생성全是 0 의 3x3 행렬
>>> nd5 =np.zeros([3, 3])
>>> print("nd5 =\n", nd5)
nd5 =
 [[0. 0. 0.]]
 [0. 0. 0.]
 [0. 0. 0.]]
>>> # 생성全是 1 의 3x3 행렬
>>> nd6 = np.ones([3, 3])
>>> print("nd6 =\n", nd6)
nd6 =
 [[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
>>>
>>> # 생성 4 차원의 이원 행렬
>>> nd7 = np.eye(4)
>>> print("nd7 =\n", nd7)
nd7 =
 [[1. 0. 0. 0.]
 [0. 1. 0. 0.]
 [0. 0. 1. 0.]
 [0. 0. 0. 1.]]
>>> # 생성 4 차원 대각 행렬
>>> nd8 = np.diag([1, 8, 3, 10])
>>> print("nd8 =\n", nd8)
nd8 =
 [[ 1 0 0 0]
 [ 0 8 0 0]
 [ 0 0 3 0]
 [ 0 0 0 10]]