NumPy Tutorial-NumPy 배열 생성
제로 배열
np.zeros
np.zeros
는 모든 요소가 0
인 배열을 만드는 데 사용됩니다. 문법은
np.zeros(shape, dtype=float, order="C")
어디,
shape
는 행렬의 크기이며 1 차원, 2 차원 또는 여러 차원 일 수 있습니다.
dtype
은 기본적으로 float64
이지만 NumPy
의 모든 데이터 유형으로 할당 될 수 있습니다.
제로 배열을 만들어 봅시다
>>> import numpy as np
>>> np.zeros(5) # it creates a 1D array with 5 zeros
array([0., 0., 0., 0., 0.])
>>> np.zeros(5, dtype='int8') # it creates a 1D array with 5 zeros with the data type of int8
array([0, 0, 0, 0, 0], dtype=int8)
>>> np.zeros((4, 3)) # it creates a 4x3 zeros array
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
np.empty
경우에 따라 지정된 모양으로 만 배열을 초기화하고 내부의 초기화 데이터에 신경 쓰지 않습니다. np.empty
를 사용하여 더 빠른 초기화를 달성 할 수 있지만 생성 된 배열의 값이 0임을 보장하지는 않습니다.
%timeit
를 사용하여 np.empty()
와 np.zeros()
의 실행 시간을 비교할 수 있습니다.
In[1]: % timeit np.empty((100, 100))
715 ns ± 11.6 ns per loop(mean ± std. dev. of 7 runs, 1000000 loops each)
In[2]: % timeit np.zeros((100, 100))
4.03 µs ± 104 ns per loop(mean ± std. dev. of 7 runs, 100000 loops each)
분명히, np.empty()는 초기화에서 np.zeros()
보다 훨씬 빠릅니다. np.zeros()
가(100, 100)
모양의 배열을 초기화하는 데 필요한 시간은 17.5 %
입니다.
np.zeros_like
우리는 이미 배열을 가지고 있고 같은 모양을 가진 제로 배열을 만들고 싶다고 가정 해보십시오. 전통적인 방법으로이 새로운 어레이를 만들 수 있습니다.
test = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
np.zeros(test.shape)
또는 전용 메소드 인 np.zeros_like()를 사용하여 새로운 배열을보다 효율적으로 만들 수 있습니다.
x = np.zeros_like(test)
np.zeros_like()
에 의해 생성 된 배열은 주어진 배열과 같은 모양 일뿐만 아니라 그것과 동일한 데이터 유형을가집니다.하나의 배열
np.ones
0
과 유사하게, 우리는 1로 채워진 배열을 만들 수도 있습니다. np.ones()
의 구문과 매개 변수는 np.zeros()
와 동일합니다.
>>> import numpy as np
>>> np.ones(5) # it creates a 1-D array with 5 ones
array([1., 1., 1., 1., 1.])
>>> np.ones(5, dtype='int8') # it creates a 1-D array with 5 ones, and its data type is int8
array([1, 1, 1, 1, 1], dtype=int8)
>>> np.ones((4, 3)) # it creates an array of (4, 3) shape
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
np.ones_like
np.zeros_like 와 유사하게, np.ones_like 는 주어진 배열과 같은 모양을 가진 새로운 배열을 만드는 데 사용될 수 있습니다.
>>> test = np.array([[1.0,2.0,3.0],[4.0,5.0,6.0],[7.0,8.0,9.0]])
>>> np.ones_like(test)
array([[1., 1., 1.],
[1., 1., 1.],
[1., 1., 1.]])
대각선 배열
대각선 배열은 대각선에 1이 있고 다른 곳에 0이있는 2 차원 배열입니다. 구문이 다음과 같은 np.eye()
메소드로 만들 수 있습니다.
np.eye(N, M=None, k=0, dtype= < class 'float' >, order='C')
어디,
매개 변수 | 데이터 유형 | 요약 |
---|---|---|
N |
INT | 생성 된 행렬의 행 수를 지정합니다. |
M |
INT | (선택 사항) 기본값은 ‘없음’입니다. 생성 할 행렬의 열 수를 지정합니다. ‘없음’인 경우 N 과 같습니다. |
k |
INT | (선택 사항) 기본값은 0입니다. 0은 기본 대각선 위치입니다. k 가 양수이면 k 의 변위로 상단 대각선을 만듭니다. k 가 음수이면-k 의 변위로 더 낮은 대각선을 만듭니다. |
dtype |
데이터 유형 | (선택 사항) 기본값은 float 입니다. 작성된 배열 요소의 데이터 유형을 지정합니다. |
np.eye()
예
>>> import numpy as np
>>> np.eye(3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
>>> np.eye(4, 3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.],
[0., 0., 0.]])
>>> np.eye(3, 4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.]])
>>> np.eye(4, k=1)
array([[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.],
[0., 0., 0., 0.]])
np.identity()
’np.identity’는 주 대각선에 배열을 갖는 정사각형 대각선 배열을 만들기 때문에 특수한 ’np.eye’로 취급 될 수 있습니다.
numpy.identity (n, dtype = float)
매개 변수 | 데이터 유형 | 기술 |
---|---|---|
n |
INT | 생성 할 행렬의 크기를 지정합니다. N × N 정사각형 배열을 만듭니다. |
dtype |
데이터 유형 | (선택 사항) 기본값은 float 입니다. 요소의 데이터 유형을 지정합니다. |
np.identity()
예제
>>> import numpy as np
>>> np.identity(3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
삼각 배열
np.tri()를 사용하여 삼각 배열을 만들 수 있습니다. 문법은
numpy.tri(N, M=None, k=0, dtype= < class 'float' >)
입력 매개 변수는 ’np.eye()‘와 유사합니다.
np.tri()
예제
>>> import numpy as np
>>> np.tri(3)
array([[1., 0., 0.],
[1., 1., 0.],
[1., 1., 1.]])
>>> np.tri(4, k=1)
array([[1., 1., 0., 0.],
[1., 1., 1., 0.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]])
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook