반응형
반응형

문제

glob()을 통해 파일을 가져올려고 하는데 TypeError: path should be path-like or io.BytesIO, not <class 'list'> 발생했습니다.

 

코드

sign = list(test_path.glob(f'{i}/*'))

 

예상 원인

뒤에 따라오는 from tensorflow.keras.preprocessing.image import load_img 에서 에러가 발생하고 있었습니다.

 

해결

load_img() 함수에 list를 넣어서 발생한거 같아 수정했더니 에러가 발생하지 않았습니다.

 

* load_img()

tf.keras.utils.load_img(
    path,
    grayscale=False,
    color_mode='rgb',
    target_size=None,
    interpolation='nearest',
    keep_aspect_ratio=False
)
반응형
반응형
반응형

zip(*iterables, strict=False)

  • 동일한 개수로 이루어진 iterable한 객체들(iterables)을 인수로 받아 묶어서 iterator로 반환합니다.

예시 코드)

for itemin zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):
	print(item)
    
(1, 'sugar')
(2, 'spice')
(3, 'everything nice')
반응형

'Python' 카테고리의 다른 글

print 하면 <map object at 0x10446d880> 나올 때  (0) 2023.06.01
[python] list 사용 방법  (0) 2023.05.29
combinations()  (0) 2023.05.03
[panda]info()  (0) 2023.04.26
cannot import name 'fl_score' from 'sklearn.metrics'  (0) 2023.04.26
반응형
반응형

 

itertools.combinations(iterable, r)

  • 파이썬의 combinations은 itertools 라이브러리를 호출해서 사용할 수 있습니다.
  • iterable은 member를 하나씩 반환할 수 있는 object를 말하며, 예로는 sequence type인 list, str, tuple이 있습니다.

 

예시 코드)

combinations('ABCD', 2) --> AB AC AD BC BD CD
combinations(range(4), 3) --> 012 013 023 123
반응형

'Python' 카테고리의 다른 글

[python] list 사용 방법  (0) 2023.05.29
zip()  (0) 2023.05.03
[panda]info()  (0) 2023.04.26
cannot import name 'fl_score' from 'sklearn.metrics'  (0) 2023.04.26
IndentationError: unindent does not match any outer indentation level  (0) 2023.04.25
반응형
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/131705

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

배열로 받은 숫자 중 3가지를 더하거나 뺴서 숫자 0을 만들수 있는 방법을 총합해서 reuturn하면 됩니다.

 

코드

1. 제가 푼 for문 여러번 충첩하는 것보다 다른 분의 코드가 훨씬 복잡하지 않고 간결해서 가져왔습니다.

from itertools import combinations

def solution(number):    
    cnt = 0
    for i in combinations(number,3) :
        if sum(i) == 0 :
            cnt += 1
    return cnt

* combinations(list,number)

위와 같이 함수를 사용하면 list 내의 원소 중 number개를 뽑아 조합을 만들어서 return 해줍니다.

예를 들어 list = [1, 2, 3], number = 2인 경우 (1, 2), (1, 3), (2, 3)이 반환됩니다.

반응형
반응형
반응형

 

상황

현재 저는 M1 Pro를 사용하고 있습니다.

또한 .kaggle 데이터를 불러오고 사용하는데 Jupyter Notebook을 사용하고 있습니다.

 

문제는 현재 디렉토리에서는 kaggle api를 사용할 수 없어서 다른 .kaggle 디렉토리에 파일 다운로드해서 사용해야 하는데

완전 다른 디렉토리에서 kaggle 데이터셋을 어떻게 불러오냐인데 쉽게 해결할 수 있습니다.

 

해결

먼저 import os 합니다. 

이후 os.chdir("/Users/'계정 이름'/.kaggle") 하게 되면 디렉토리 위치가 바뀌게 되면서 kaggle 데이터셋 정보를 가져올 수 있게 됩니다.

확인은 os.getcwd()로 확인할 수 있습니다.

반응형
반응형
반응형

 

문제

conda install kaggle로 kaggle 설치 후 kaggle api를 통해 쉽게 kaggle 데이터셋을 다운 받을려고 하는데 kaggle 호출이 되지 않는 상황입니다. 설치한 위치가 model 개발하고 있는 폴더여서 kaggle.json 파일 위치도 model 폴더 안에 넣어두었는데 그게 문제 였습니다.

 

 

해결

현재 kaggle.json이 있는 폴더 위치에서 아래 글 복붙 하시면 됩니다.

>

mkdir -p ~/.kaggle && mv kaggle.json ~/.kaggle/kaggle.json

 

반응형
반응형
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12940

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

최대공약수와 최소공배수를 구해서 reutnr 하면 됩니다.

 

코드

1. math import 해서 풀어봤습니다.

import math

def solution(n, m):
    answer = [math.gcd(n, m), (n * m) // math.gcd(n, m)]
    return answer

- math.gcd()는 최대 공약수를 구해줍니다.

- math 사용하지 않고 푸는 방법도 있습니다.

def solution(n, m):
    # 최대공약수
    for i in range(min(n,m),0,-1): 
        if n%i ==0 and m%i==0:
            answer.append(i)
            break

    # 최소공배수
    for i in range(max(n,m),n*m+1)
        if i%n == 0 and i%m == 0:
            answer.append(i)
            break
            
    return answer
반응형
반응형
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/43165

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

numbers, target 값을 파라미터로 받아 numbers 값들을 +, - 로 두었을 때 target 값이 몇개가 나오는지 구하는 문제입니다.

 

코드

1. dfs 문제 해결은 이해하면 쉽지만, 이해가 되지 않으면 어렵습니다. 그리고 자세하게 설명하지 않으면 알기 어렵기 때문에 다른 사람이 잘 적은 코드를 가져왔습니다.

def solution(numbers, target):
    global count # 전역변수
    count = 0
    dfs(0,0, numbers, target)
    
    return count

def dfs(idx, value, numbers, target):
    global count 
    length = len(numbers)
    
    if idx == length:
        if value == target:
            count+= 1
        return 

    dfs(idx+1, value + numbers[idx],numbers, target)
    dfs(idx+1, value - numbers[idx],numbers, target)

* global 전역변수

 

반응형

+ Recent posts