Numpy를 이용해서 만든 배열의 여러가지 특징들을 뽑아내는 함수들과 메서드에 대해 정리해보자.
[배열이 가진 성분들/ 관련 함수 및 메서드]
.ndim
.shape
.size
.dtype
type()
.reshape(행,열)
np.concatenate([배열1, 배열2, ...], axis = 0)
np.split(배열, [i], axis = 0)
np.sum(배열)
np.sum(배열, axis = 0)
np.min(배열)
np.max(배열)
np.mean(배열)
np.std(배열)
1. .ndim
- 배열의 차원 알아보기
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[2 6 8 8]
[9 6 0 8]
[6 0 6 4]]
print(my_arr.ndim) # 결과 : 2
2. .shape
- 배열의 행*열 모양 알아보기
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[2 6 8 8]
[9 6 0 8]
[6 0 6 4]]
print(my_arr.shape) # 결과 : (3,4)
3. .size
- 배열요소의 개수 세기
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[2 6 8 8]
[9 6 0 8]
[6 0 6 4]]
print(my_arr.size) # 결과 : 12
4. .dtype
- 배열요소의 데이터타입 알아보기
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[2 6 8 8]
[9 6 0 8]
[6 0 6 4]]
print(my_arr.dtype) # 결과 : int64
5. type()
- 배열 자체의 타입 알아보기
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[2 6 8 8]
[9 6 0 8]
[6 0 6 4]]
print(type(my_arr)) # 결과 : <class 'numpy.ndarray'>
6. .reshpe(행*열)
- 배열의 모양 바꾸기
- 배열요소의 갯수에 맞게 모양을 바꿀 수 있다.
- 요소갯수의 약수로만 만들 수 있다.
- 2차원 배열에서 --> 다른 N차원으로 변경 불가
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[9 2 1 9]
[8 5 4 9]
[2 9 1 7]]
re_arr = my_arr.reshape(2,6)
# 결과
[[9 2 1 9 8 5]
[4 9 2 9 1 7]]
re_arr2 = my_arr.reshape(2,2,4)
#결과 : ValueError: cannot reshape array of size 12 into shape (2,2,4)
re_arr3 = my_arr.reshape(5,3)
# 결과 : ValueError: cannot reshape array of size 12 into shape (5,3)
7. np.concatenate()
- 배열 합치기
- axis = 0/1 로 지정해줌으로써 합치는 방향을 정할 수 있다.
- axis = 0 : 세로방향으로 이어 붙이기 , 열의 숫자를 맞춰주어야 한다.
- axis = 1 : 가로방향으로 이어 붙이기 , 행의 숫자를 맞춰주어야 한다.
import numpy as np
A = np.random.randint(0,10,(2,3))
B = np.random.randint(11,100,(4,3))
AB = np.concatenate([A,B], axis = 0)
# 결과
[[ 3 4 3]
[ 2 9 3]
[68 80 60]
[12 62 86]
[53 34 19]
[50 57 32]]
A = np.random.randint(0,10,(2,3))
C = np.random.randint(11,100,(2,4))
AC = np.concatenate([A,C], axis = 1)
#
[[ 0 4 6 68 95 80 33]
[ 5 5 5 84 39 13 15]]
8. np.split()
- 배열 나누기 , 쪼개기
- axis 를 설정해줌으로써 가로방향으로 쪼갤지, 세로방향으로 쪼갤지 정할 수 있다.
- axis = 0 : upper/lower
- axis = 1 : left/right
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[9 2 1 9]
[8 5 4 9]
[2 9 1 7]]
upper, lower = np.split(my_arr, [1], axis = 0)
# 결과
print(upper)
[[6 1 4 4]]
print(lower)
[[5 5 1 6]
[0 7 6 6]]
left, right = np.split(my_arr, [1], axis = 1)
# 결과
print(left)
[[6]
[5]
[0]]
print(right)
[[1 4 4]
[5 1 6]
[7 6 6]]
9. sum()
- 배열요소들의 합 구하기
- axis 설정으로 가로방향 누적합/ 세로방향 누적 합을 구할 수 있다.
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[9 2 1 9]
[8 5 4 9]
[2 9 1 7]]
print(np.sum(my_arr)) # 결과 : 51
print(np.sum(my_arr, axis = 0))
# 결과
[11 13 11 16]
print(np.sum(my_arr, axis = 1))
# 결과
[15 17 19]
10. np.min(), np.max(), np.mean(), np.std(), np.count_nonzero()
- np.min() : 배열 요소 중 최소값 구하기
- np.max() : 배열 요소 중 최대값 구하기
- np.mean() : 배열요소들의 평균 구하기
- np.std() : 배열 요소들의 표전편차 구하기
- np.count_nonzero() : 배열요소들 중 0이 아닌 것의 갯수
import numpy as np
my_arr = np.random.randint(0,10,(3,4))
[[9 2 1 9]
[8 5 4 9]
[2 9 1 7]]
print(np.min(my_arr)) # 결과 : 0
print(np.max(my_arr)) # 결과 : 7
print(np.mean(my_arr)) # 결과 : 4.25
print(np.std(my_arr)) # 결과 : 2.2407216099581255
print(np.count_nonzero(my_arr)) # 결과 : 12
'programming' 카테고리의 다른 글
[Python] 파이썬 Pandas(판다스) 활용하여 시리즈(Series) 만들기 (0) | 2021.12.12 |
---|---|
[Python] 파이썬 Numpy(넘파이) 배열 마스킹 (0) | 2021.12.11 |
[Python] 파이썬 넘파이(Numpy)를 활용하여 난수 배열 만들기 (0) | 2021.12.10 |
[Python] Numpy 라이브러리로 대용량 배열 데이터 만들기 (0) | 2021.12.09 |
[Python] 객체, 클래스, 인스턴스 다루기 (0) | 2021.12.09 |