기본 콘텐츠로 건너뛰기

라벨이 배열인 게시물 표시

[matplotlib]quiver()함수

[numpy] array 함수

array 함수 배열은 ndarray이라고도 하는데 이 용어는 N-dimensional array의 약어로서 여러개의 값들을 구조적으로 나타낼 수 있는 numpy 라이브러리 기본 데이터형입니다. 다음과 같은 특성을 가집니다. 배열은 여러개의 리터럴(literal, row data)을 포함할 수 있으며 각각을 요소(element)라고 합니다. 배열 내에 각 요소들은 인덱스(index)라고 하는 음이 아닌 정수형태의 특정한 번호를 가집니다. 모든 요소는 동일한 유형이어야 합니다. 배열은 여러 차원으로 구성할 수 있으며 차원을 ndim속성으로 확인할 수 있습니다. 배열의 모양은 각 차원의 수를 표시한 것으로 shape속성으로 확인 할 수 있습니다. numpy 배열 객체의 생성은 기본적으로 np.array() 함수를 사용합니다. np.array(객체, dtype=None) 객체는 리스트형입니다. 각 요소의 자료형은 dtype으로 지정할 수 있습니다. dtype=None(기본값)일 경우는 입력된 자료에 따라 자동으로 지정됨 다음은 1차원 배열을 생성하기 위해 리스트 형식인 [1, 2, 3]을 np.array()함수에 전달한 것입니다. import numpy as np a = np.array([1, 2, 3]) a #(1) array([1, 2, 3]) print(a) #(2) [1 2 3] 위 코드 (1)과 같이 객체를 반환하면 배열(array)가 명시되는데 반해 다음 코드(2)와 같이 print() 함수에 의한 출력은 단지 내용만을 반환합니다. 위 객체 a는 1차원 벡터로서 모든 요소들이 하나의 대괄호로 묶여있는 상태입니다. 다음 객체 A는 대괄호 내에 두개의 별도의 대괄호를 포함하는 구조입니다. A=np.array([[1,2], [3,4]]) print(A) [[1 2] [3 4]] 위 객체 A는 pandas.DataFrame() 함수를 적용하여 표의 형태로 나타낼 수 있습니다. Ad...

[numpy]concatenate 함수

concatenate 함수 두 개 이상의 동일한 차원의 배열들을 연결합니다. np.concatenate((x,y,...), axis=0) 객체 x, y 등은 numpy array 또는 list, DataFrame 등 배열과 유사한 자료형 인수 axis에 배열들에 존재하는 축들 중의 하나를 지정 axis는 축인덱스를 의미 axis=0(기본값) : 행(1차원) 단위로 결합 axis=1: 열(2차원) 단위로 결합 존재하지 않은 축을 지정할 경우 예외 발생 다음은 두 1차원 배열(벡터)들을 연결하는 것으로 axis 인자는 0만 존재합니다. 그러므로 다음과 같이 결합 (3,) + (3,) = (6,) a=np.array([0,7,9]) b=np.array([8,3,5]) print(np.concatenate((a,b))) [0 7 9 8 3 5] 위 객체 a와 b는 모두 1차원 벡터이므로 축인덱스는 0만 존재하므로 다음과 같이 axis=1인 경우 없는 축을 지정하는 것으로서 예외(에러) 발생합니다. print(np.concatenate((a,b), axis=1)) AxisError: axis 1 is out of bounds for array of dimension 1AxisError: axis 1 is out of bounds for array of dimension 1 다음 객체 c와 d는 2차원 배열로서 axis=0은 다음과 같이 결합 ( 2 , 3) + ( 2 , 3) = ( 4 , 3) np.random.seed(10) c=np.random.randint(10, size=(2,3)) d=np.random.randint(10, size=(2,3)) print(np.concatenate((c, d))) [[9 4 0] [1 9 0] [1 8 9] [0 8 6]] axis=1 : (2, 3 ) + (2, 3 ) = (2, 6 ) print(np.concatenate((c,d...

[numpy] stack 함수

stack 함수 두 개이상의 배열 또는 list, DataFrame 등의 유사한 자료형의 객체들을 결합하기 위해 사용합니다. 결합하는 과정에서 새로운 축이 첨가 됩니다. np.stack((x,y,...), axis=0) 배열(x, y, …)들은 동일한 차원과 형태(shape) x, y등의 각 객체에 axis=정수로 지정된 축이 첨가되고 그 축을 기준으로 결합 인수 axis에 전달하는 정수는 축인덱스로 음이 아닌 양수 음수인 경우는 역인덱스, 예를 들어 -1인 경우 마지막 축을 의미 axis=0이 기본값 예를 들어 1차원과 2차원 객체들의 결합의 결과는 다음과 같이 전개됩니다. \begin{align} &\text{shape of x and y}:\, (3,)\\ &\begin{aligned} \text{axis = 0}\quad&\quad1\times 3\\&\underline{+\,1\times 3}\\& \quad2 \times 3 \end{aligned}\quad \begin{aligned} \text{axis = 1}\quad&\quad3\times 1\\&\underline{+\,3\times 1}\\& \quad3 \times 2\end{aligned} \end{align} \begin{align} &\text{shape of x and y}:\, 3\times 4\\ &\begin{aligned} \text{axis = 0}\quad&\quad1\times 3\times 4\\&\underline{+\,1\times 3\times 4}\\& \quad2 \times 3\times 4 \end{aligned}\\ &\begin{aligned} \text{axis = 1}\quad&\quad3\times 1\times 4\\...

[numpy] 인덱스와 슬라이싱(Index & Slicing)

인덱스와 슬라이싱(index & slicing) 인덱스 슬라이싱 배열 의 차원 과 그차원의 인덱스 를 참조할 수 있습니다. 인덱스 numpy의 자료형인 배열(array)은 리스트들로 구성됩니다. 객체 a와 같이 한개의 리스트 작성된 경우를 벡터(vector) 라고 합니다. 다음 코드의 랜덤수 생성은 랜덤수 생성을 위한 numpy 함수들 참조 np.random.seed(10) a=np.random.randint(0, 11, size=10) a array([ 9, 4, 0, 1, 9, 0, 1, 10, 8, 9]) print(f"a의 차원,:{a.ndim}, a의 모양{a.shape}") a의 차원,:1, a의 모양(10,) 위 결과와 같이 객체 a는 1차원으로 10개의 요소를 포함합니다. 벡터는 1차원이므로 1개의 축만이 존재하므로 객체의 모양은 "크기,"와 같이 숫자 한개로 표시됩니다. 리스트는 최왼쪽부터 0으로 시작되는 음이 아닌 정수인 인덱스를 가집니다( 문자열의 인덱스 참조 ). 배열 역시 리스트로 구성되므로 같은 형태의 인덱스를 가집니다(표 1). 표 1 객체 a(벡터)의 인덱스 요소 9 4 0 1 9 0 1 10 8 9 인덱스 0 1 2 3 4 5 6 7 8 9 역인덱스 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 표 1에서 나타낸 것과 같이 인덱스(index)는 최왼쪽의 요소부터 시작하는 음이 아닌 정수이며 역으로 마지막 요소를 -1로 시작하는 음의 정수를 인덱스로 사용할 수 있습니다. 이를 역인덱스(inverse index) 라고 합니다. 표1의 형식으로 인덱스를 사용하여 지정한 위치의 값을 호출하거나 수정할 수 있습니다. 객체이름[인덱스] (식 1) a[2] 0 a[2]=123; a array([ 9, 4, 1...

배열(Numpy. array)

내용 배열 객체의 자료형 배열 결합(concatenate) 배열의 분할 배열 객체의 자료형 자료형 (data type)은 입력된 데이터를 위한 메모리의 크기를 확정하기 위한 것입니다. 그러므로 데이터 형(data type)을 명시하지 않은 상태에서 여러 유형이 혼재된 경우 일반적으로 큰 메모리가 소비되는 형태로 자동 지정되지만 경우에 따라서는 메모리 과부하 상태로 인해 자료의 손실이 발생할 수 있습니다. 그러므로 다양한 자료형이 혼재된 경우 명시적으로 데이터 타입을 지정하는 것이 안전합니다. np.array() 함수를 사용하여 배열 객체를 생성할 경우 dtype에 인수를 전달함으로서 배열의 데이터형을 지정할 수 있습니다. 그러나 이 값을 지정하지 않을 경우 그 데이터형은 자동으로 지정되는데 일반적으로 numpy 배열의 기본 데이터 형은 실수형(np.float64)입니다. 이것은 정수형과 실수형이 혼합되어 있을 경우 실수형으로 인식된다는 의미입니다. x=np.ones(1) x array([1.]) x.dtype dtype('float64') 위 속성 dtype은 객체의 데이터 형을 반환하지만 역으로 그 속성을 사용하여 객체의 데이터 형을 지정할 수 있습니다. 예를 들어 다음 객체 x는 실수(부동소수)로 입력하였지만 객체에 int 32를 지정하여 정수형으로 변환할 수 있습니다. x=np.ones(1, dtype=np.int32) x array([1], dtype=int32) x.dtype dtype('int32') 다음 표는 numpy 배열에서 사용할 수 있는 자료형의 종류입니다. 구분 type(code) 예 숫자형 boolean bool(b) [True, False] 정수형 int8(i1) [-2, 0, 1,2] int16(i...