문제)정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.
num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.
오답) np.array().reshape(a,b)
import numpy as np
def solution(num_list, n):
b = len(num_list)//n
a = np.array(num_list).reshape(b,n)
print(a)
얼마전에 딥러닝 공부하면서 배운 numpy 의 np.array().reshape(a,b)를 활용해서 풀라그랬는데
분명 제대로 답은 나오는데 형식이 틀렸다니까 어찌할 도리가 없었다 분명 뭐가 있을텐데 어떻게 검색할지도 몰라서 일단 다르게 풀이해보았다.
정답1)
def solution(num_list, n):
a = []
for i in range(0, len(num_list), n):
a += [num_list[i:i+n]]
return a
그냥 리스트에 담아서 풀어보았다. 사실이게 제일 담백하게 푼거 같긴하지만 이번에 배운 numpy를 꼭 활용해보고 싶었다.
정답2)
import numpy as np
def solution(num_list, n):
b = len(num_list)//n
a = np.array(num_list).reshape(b,n)
return a.tolist()
역시 형식이 참 중요하구나 리스트 형식으로 만들어주는 .tolist()로 간편하게 해결!!!!! 따지자면 np.array_리스트를 넘파이로 바꿔주는 함수 와 정반대의 역할을 하는셈이다.
numpy | |
np.array(리스트).reshape(숫자1, 숫자2) np.array(리스트) |
리스트를 숫자1*숫자2의 행렬(넘파이)로 형식을 바꿔줌 리스트를 넘파이형식으로바꿔줌 |
넘파이.tolist() | 넘파이의 형식을 리스트로 바꿔줌 |
'PYTHON' 카테고리의 다른 글
파이썬 프로그래머스 코딩테스트 연습 입문 합성수 찾기_이중 for loop문 (0) | 2023.06.26 |
---|---|
프로그래머스 파이썬 코딩테스트연습 입문 오답노트 한 번만 등장한 문자_python 알파벳순으로 문자열 정렬 구분자.join(sorted()) (0) | 2023.06.26 |
파이썬 프로그래머스 코딩테스트 입문 오답 노트 최빈값 구하기 (0) | 2023.05.06 |
프로그래머스 코딩테스트 입문 오답노트 분수의 덧셈 (0) | 2023.05.05 |
파이썬 프로그래머스 오답노트 코딩테스트 입문 제곱수 판별하기: is_intiger() (2) | 2023.05.04 |