이번에 사용할 예시 배열

arr = np.array([[1,2,3],
                [4,5,6],
                [7,8,9]])

 

세 가지 방법으로 위에 배열에서 필요한 요소만 잘라내보자.


1. ndarray를 슬라이싱 하는 첫번째 방법은 가로 세로 줄을 그려 영역을 crop하는 느낌이라고 생각하면 된다.

    [n:c , n1:c1] n:c만큼 가로로 먼저 영역 긋고 n1:c1만큼 또 세로로 영역을 긋는 것이다.

arr_1 = arr[:2,1:3]            # [:2]= 위에서 아래로 0에서 2이전 까지 이동, [1:3] = 좌에서 우로 1에서 3 이전까지 이동 해서 슬라이싱
print(arr_1)

출력>
[[2 3]
 [5 6]]

 

2. 내가 원하는 요소를 바로 가져오는 방법 : 배열이름[N, N1] 여기사 N은 배열, N1은 인덱스 넘버

arr = np.array([[1,2,3],
               [4,5,6],
               [7,8,9]])


arr [0,2]              # 배열0번의 2번째 데이터 가져와라

출력>
3

 

 

3. 조건을 달아서 조건에 맞는 데이터/안맞는 데이터로 나눈 후 참인 것만 나오게 하는 방법

arr = np.array([[1,2,3],[4,5,6]])
idx = arr > 3                   # arr에서 3이상인것    조건식을 달면 조건에 따른 값 따로 나타난다
print(idx)
[[False False False]                    #위의 print의 결과
 [ True  True  True]]              
arr[idx]                                    # 이 조건을 배열 옆에 각진괄호 안에 써준다!


출력>
array([4, 5, 6])                       # 조건식에 참인 데이터만 나온다

np 배열은 같은 차원(위치) 데이터끼리 연산이 된다. 아래 예시로 여러 방식으로 배열간의 연산을 해보자.


첫 번째 방법: array끼리 연산자로 계산식 써주기

 

(예시1)

arr1 = np.array([[1,2],[3,4]])
arr2 = np.array([[5,6],[7,8]])
print(arr1 + arr2)                       
print(arr1 - arr2)
print(arr1 * arr2)

출력>
[[ 6  8]
 [10 12]]
[[-4 -4]
 [-4 -4]]
[[ 5 12]
 [21 32]]

 

 

두 번째 방법: 명령어로 연산식 써주기

 

(예시2)

print(np.add(arr1,arr2))                     
print(np.multiply(arr1,arr2))

출력>
[[ 6  8]
 [10 12]]
[[ 5 12]
 [21 32]]

ndarray 배열의 타입을 바꿀 때 : <array name>.astype(np.type)

 

예시1. 데이터 타입int64 array를 float64로 바꿀때

arr_int = np.array([1,2,3,4])
print(arr_int.dtype)                           # 이 때 데이터는 int이다
arr_float = arr_int.astype(np.float64)    # 데이터 타입을 바꿔야할 때
print(arr_float.dtype)

예시2. 데이터 타입을 str에서 int64로 바꿀 때

arr_str = np.array(['1','2','3','4'])                # 문자열로 배열 만들기
print(arr_str.dtype)                                #  출력에 U1이라 나오는 것은 유니코드(문자)를 나타낸것
arr_int = arr_str.astype(np.int64)
print(arr_int.dtype)

ndarray?

n차원(dimension) 배열을 뜻한다.

 


예제로 사용할 배열

arr = np.array([[1,2,3],[4,5,6]])               
print(arr)

1. 배열의 차원을 확인하는 방법 : (어레이).ndim

arr.ndim    

출력 : 2

2. 데이터의 모양을 확인하는 방법 : (어레이).shape

arr.shape

출력: (2,3)

3. 데이터 타입의 확인

print(type(arr))               # 배열의 데이터 타입 확인
print(arr.dtype)               # 배열 안의 데이터 타입 확인

출력 : <class 'numpy.ndarray'>
           int64

'python > [modules] Numpy' 카테고리의 다른 글

6. ndarray 배열 슬라이싱 하기, 특정 데이터만 골라내기  (0) 2023.04.26
5. Numpy 배열의 연산  (0) 2023.04.26
4. ndarray 배열의 타입 전환  (0) 2023.04.26
2. Numpy 배열 만들기  (0) 2023.04.26
1.Numpy란?  (0) 2023.04.26

직접 colab에서 아래 예시들 출력해보기

 

1.기본 Numpy 생성 예시

arr = np.array([1,2,3,4])
print(arr)
print(type(arr))

출력:
[1 2 3 4]
<class 'numpy.ndarray'>

2. 0으로 채워진 3x3 배열 생성

array = np.zeros((3,3))

3. 1로 채워진 2x2 배열 생성

array2 = np.ones((2,2))

4. 비워진 값의 4x4 배열 생성

np.empty((4,4))

   # 그러나 작업시 그러나 비어진 값의 배열보다는 0이나 1로 초기화해서 사용하는 것이 훨씬 값이 깔끔하다

 

5. 특정 범위의 array를 생성할 때

print(np.arange(10))                  
print(np.arange(1,10))                       # (시작지점, 끝지점, 증가값)
print(np.arange(1,10, 2))

Numpy

(1) 가장 많이 사용되는 라이브러리(모듈은 아니다), 기본 속도가 빠르고 수학 배열을 쉽게 해준다C언어로 개발된 파이썬에서 과학적 계산을 위한 핵심 라이브러리.

(2) 다차원 배열 객체와 배열과 함께 작동하는 도구들을 제공한다. 하지만 고수준의 데이터 분석기능을 제공하지는 않기 때문에 Numpy배열과 함께 Pandas와 같은 도구를 함께 사용한다.

불러올 때 명령어

import numpy as np

 

 

# 임포트는 해줘야 함. as(알리아싱:별명을 지어주는 행위)를 통해 np로 명명해준다.

+ Recent posts