Nacho

Chapter 06. Python Numpy 기초 본문

Python

Chapter 06. Python Numpy 기초

Nacho_13 2024. 2. 23. 19:50
반응형

자 numpy 를 복습해보자.

 

import numpy as np #묻따 import 갈기기
np_arr = np.array([1,2,3])

np.array([list]) 로 numpy array 를 만들 수 있다.

np.array.ndim()

ndim 속성으로 배열 차원을 확인합니다.

print(arr_1D.ndim) # 1차원 배열 Output 1
print(arr_2D.ndim) # 2차원 배열 Output 2
print(arr_3D.ndim) # 3차원 배열 Output 3

배열의 차수를 확인 할 수 있다.

np.array.shape()

shape 속성으로 배열 형태를 확인합니다.

print(arr_1D.shape) # 1차원 배열 Output (5,)
print(arr_2D.shape) # 2차원 배열 Output (2, 3)
print(arr_3D.shape) # 3차원 배열 Output (2, 3, 3)

결과는 다음과 같은 형태의 튜플로 표시된다.

np.array.dtype()

dtype 속성으로 자료형을 확인합니다.

print(arr_1D.dtype) # 1차원 배열 Output 'int64'
print(arr_2D.dtype) # 2차원 배열 Output 'float64'
print(arr_3D.dtype) # 3차원 배열 Output 'int64'

결과로 자료형을 리턴한다.

np.array.reshape()

배열의 형태를 변환한다. 행 * 열 == 배열크기 인 경우 실행된다.

a = np.array([[11, 12, 13, 14],
              [15, 16, 17, 18],
              [19, 20, 21, 22]])

print(a.reshape(4, 3))
print(a.reshape(2, 6))
print(a.reshape(-1, 2)) # -1로 한쪽 값을 생략 가능하다.
'''
Output:
[[11 12 13]            #a.reshape(4, 3)
 [14 15 16]
 [17 18 19]
 [20 21 22]]

 [[11 12 13 14 15 16]        #a.reshape(2, 6)
 [17 18 19 20 21 22]]

 [[11 12]            #a.reshape(-1, 2)
 [13 14]
 [15 16]
 [17 18]
 [19 20]
 [21 22]]
 '''

np.array.dtype()

dtype 속성으로 자료형을 확인합니다.

print(arr_1D.dtype) # 1차원 배열 Output 'int64'
print(arr_2D.dtype) # 2차원 배열 Output 'float64'
print(arr_3D.dtype) # 3차원 배열 Output 'int64'

결과로 자료형을 리턴한다.

<U12 와 같은 자료형은 '<':리틀엔드안 'U':유니코드 '12':크기 이다.
리틀엔디안 형식으로 저장된 12크기의 유니코드 타입이라는 뜻이다.

배열 인덱싱

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])
# 첫 번째 행, 두 번째 열 요소 조회
print(a[0, 1]) # 2
# 첫 번째, 두 번째 행 조회
# print(a[[0, 1], :]) # : 생략가능
print(a[[0, 1]])  

'''
Output:
[[1 2 3]
 [4 5 6]]
 '''
# 첫 번째, 두 번째 열 조회
print(a[:, [0, 1]])

'''
Output:
[[1 2]
 [4 5]
 [7 8]]
 '''

배열 슬라이싱

a = np.array([[1, 2, 3],
              [4, 5, 6],
              [7, 8, 9]])
# 첫 번째 ~ 두 번째 행 조회
# print(a[0:2, :])
print(a[0:2])

'''
Output:
[[1 2 3]
 [4 5 6]]
 '''
# 첫 번째 ~ 세 번째 행, 두 번째 ~ 세 번째 열 조회
print(a[0:3, 1:3])
'''
Output:
[[12 13]
 [16 17]
 [20 21]]
 '''

조건 조회

score= np.array([[78, 91, 84, 89, 93, 65],
                 [82, 87, 96, 79, 91, 73]])
# 요소 중에서 90 이상인 것만 조회
print(score[score >= 90])
'''
Output:
[91 93 96 91]
'''
# 모든 요소 중에서 90 이상 95 미만인 것만 조회
print(score[(score >= 90) & (score <= 95)])
'''
Output:
[91 93 91]
'''

numpy와 pandas에서는 논리 연산자로 &, | 을 사용한다.

배열 연산

그림으로 대체합니당....

np.array.argmax(), np.array.argmin()

d

파이썬에서 axis = 0 은 행방향, axis = 1 은 열방향은 규친인건가..?

pandas.DataFrame.drop() 도 같은 방향이다. 그 외, 등 등

np.where()

np.where(조건, 참일 때, 거짓일 때)

# 선언
a = np.array([1,3,2,7])

# 조건
np.where(a > 2, 1, 0)

'''
Output:
[0, 1, 0, 1]
'''
# 선언
a = np.array([1,3,2,7])

# 조건
np.where(a > 2, a, 0)
'''
Output:
[0, 3, 0, 7]
'''
반응형