728x90
반응형
(문제)
넘파이 2차원 배열에서 max 함수를 사용하지 않고 반복문을 가지고 최댓값을 구해야 하는데
전체 배열, 각 행에 대해서 최댓값 구하기
(방법)
import numpy as np
import random
row_cnt = 10 # 열 수 설정
column_cnt = 5 # 행 수 설정
lst = [] # 2차원 배열
for i in range(row_cnt): # 2차원 배열에 값 설정
tmp = []
for j in range(column_cnt):
tmp.append(random.randint(1, 100))
lst.append(tmp)
arr = np.array(lst) # numpy 배열로 만들기
-
lst # 2차원 배열 확인
------------------------
[[20, 21, 59, 45, 74],
[60, 78, 35, 63, 71],
[73, 29, 24, 83, 32],
[85, 65, 5, 29, 75],
[72, 57, 46, 50, 63],
[56, 25, 13, 5, 31],
[68, 75, 58, 66, 73],
[49, 3, 57, 1, 90],
[48, 43, 66, 35, 45],
[56, 21, 15, 20, 41]]
arr # numpy 2차원 배열 확인
-------------------------
array([[27, 67, 8, 48, 65],
[ 8, 63, 42, 27, 46],
[68, 79, 32, 49, 86],
[88, 13, 61, 38, 14],
[32, 17, 85, 25, 2],
[75, 82, 34, 27, 72],
[60, 99, 78, 57, 78],
[79, 80, 97, 28, 91],
[75, 31, 21, 27, 96],
[35, 10, 49, 51, 91]])
np.max(arr) # numpy max 함수 사용
-------------------------------
99
# 행마다 max 값 찾기
for i in range(len(arr)):
print(i,'/',np.max(arr[i]))
--------------------------
0 / 67
1 / 63
2 / 86
3 / 88
4 / 85
5 / 82
6 / 99
7 / 97
8 / 96
9 / 91
반복문으로 numpy 2차원 배열에서 MAX 값 구하기
# 전체 MAX 구하기
rtn_max = 0
for i in range(len(arr)):
for j in range(len(arr[i])):
if arr[i,j] > rtn_max:
rtn_max = arr[i,j]
print('전체MAX=',rtn_max)
# 행마다 MAX 구하기
for i in range(len(arr)):
rtn_max = 0
for j in range(len(arr[i])):
if arr[i,j] > rtn_max:
rtn_max = arr[i,j]
print(i,'/',rtn_max)
결과
전체MAX= 99
0 / 67
1 / 63
2 / 86
3 / 88
4 / 85
5 / 82
6 / 99
7 / 97
8 / 96
9 / 91
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : 최소 정수 n 찾기 (0) | 2022.11.23 |
---|---|
[파이썬] 문제 : 점수에 따른 등급 부여하기 (0) | 2022.11.23 |
[파이썬] 문제 : 입력받은 문자열의 포함 검색 (0) | 2022.11.23 |
[파이썬] 문제 : 주소록 프로그램 (0) | 2022.11.23 |
[파이썬] 문제 : 계산기 프로그램 만들기 (0) | 2022.11.22 |
댓글