NumPy Tutorial-NumPy 배열 추가

Jinku Hu 2021년3월8일
NumPy Tutorial-NumPy 배열 추가

Numpy 는 또한 append 연산이 파이썬의 list 에있는 것처럼 배열에 데이터를 추가하는 append 기능을 가지고 있습니다. 그러나 어떤 경우에는 NumPy 의 append 는 파이썬 listextend 메소드와 약간 비슷합니다.

배열 append

먼저 ’ndarray.append’의 구문을 나열 해 봅시다.

numpy.append (arr, values, axis = 없음)

** 입력 매개 변수 **

매개 변수 이름 데이터 유형 기술
arr array_like 요소를 추가하는 배열
values array_like 배열 추가
axis INT ‘값’이 추가되는 축입니다.

몇 가지 예를 들어 봅시다.

In[1]: import numpy as np
arrayA = np.arange(12).reshape(3, 4)
arrayB = np.ones((1, 4))
np.append(arrayA, arrayB)

Out[1]: array([0.,  1.,  2.,  3.,  4.,  5.,  6.,  7.,  8.,  9., 10., 11.,  1.,
               1.,  1.,  1.])

‘축’이 주어지지 않으면, arr과 ‘값’은 모두 작동하기 전에 평탄화됩니다. 결과는 1 차원 배열이됩니다. 위의 예에서 우리는 주어진 두 배열의 모양에 신경 쓸 필요가 없습니다.

In[2]: np.append(arrayA, arrayB, axis=0)
Out[2]: array([[0.,  1.,  2.,  3.],
               [4.,  5.,  6.,  7.],
               [8.,  9., 10., 11.],
               [1.,  1.,  1.,  1.]])
In[2]: np.append(arrayA, np.ones((1, 3)), axis=0)
---------------------------------------------------------------------------
ValueError                                Traceback(most recent call last)
<ipython-input-25-fe0fb14f5df8 > in < module > ()
--- -> 1 np.append(arrayA, np.ones((1, 3)), axis=0)

D: \ProgramData\Anaconda3\lib\site-packages\numpy\lib\function_base.py in append(arr, values, axis)
5164         values = ravel(values)
5165         axis = arr.ndim-1
-> 5166 return concatenate((arr, values), axis=axis)

ValueError: all the input array dimensions except for the concatenation axis must match exactly

axis0 인 경우, 배열 values 는 열 방향으로 arr 에 추가됩니다. 주어진 두 배열의 행 길이가 동일하지 않으면 ValueError 가 발생합니다.ValueError : 연결 축을 제외한 모든 입력 배열 차원이 정확히 일치해야합니다.

axis = 1 매개 변수를 사용하여 행 방향으로 데이터를 추가 할 수 있습니다.

작가: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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