IT skill/Python
-
파이썬에서 가장 기초적인 반복문인 for문의 정리와 함께 유용한 팁 몇가지를 소개해 드리겠습니다. for문은 아주 유용한 반복문입니다. 처리속도가 느릴 수 있지만 표현하기 참 편리한 방법이죠. 먼저, 반복가능한 여러 타입들을 보겠습니다. 제가 적은 것 말고도 아주 많은 예시들이 더 있을테지만, 제가 생각나는데까지 적어볼게요. 1. for문의 표현식과 반복가능한 타입 import numpy as np array_ = np.array([1, 2, 3, 4]) for i in array_: print(i) 1 2 3 4 list_ = [1, 2, 3, 4] for i in list_: print(i) 1 2 3 4 tuple_ = (1, 2, 3, 4) for i in tuple_: print(i) 1 2 3..
[python] python for문 정리 + 유용한 팁파이썬에서 가장 기초적인 반복문인 for문의 정리와 함께 유용한 팁 몇가지를 소개해 드리겠습니다. for문은 아주 유용한 반복문입니다. 처리속도가 느릴 수 있지만 표현하기 참 편리한 방법이죠. 먼저, 반복가능한 여러 타입들을 보겠습니다. 제가 적은 것 말고도 아주 많은 예시들이 더 있을테지만, 제가 생각나는데까지 적어볼게요. 1. for문의 표현식과 반복가능한 타입 import numpy as np array_ = np.array([1, 2, 3, 4]) for i in array_: print(i) 1 2 3 4 list_ = [1, 2, 3, 4] for i in list_: print(i) 1 2 3 4 tuple_ = (1, 2, 3, 4) for i in tuple_: print(i) 1 2 3..
2021.02.17 -
파이참 가상환경 생성, 인터프리터 설정하는 방법입니다. 아나콘다 가상환경 생성은 아니고, 파이참을 이용한 virtualenv (가상환경) 생성입니다. 파이참으로 폴더(프로젝트)를 열면 초기화면이 이럴것입니다. 인터프리터가 유효하지 않다고 나옵니다. 주황색 팝업의 오른쪽 Configure Python interpreter를 누르면 되지만, 없는 경우에는 왼쪽 상단의 File - Settings - Projects : xxx - Python Interpreter를 선택합니다. 그렇다면 이 화면이 나올 것입니다. 빨간색 네모의 설정 - Show All... 을 누릅니다. 그러면 이 화면이 나올 것이고, 빨간색 네모의 + 버튼을 누릅니다. 보라색 네모의 Virtualenv Environment가 활성화된 상태에..
Pycharm 가상환경 생성하기파이참 가상환경 생성, 인터프리터 설정하는 방법입니다. 아나콘다 가상환경 생성은 아니고, 파이참을 이용한 virtualenv (가상환경) 생성입니다. 파이참으로 폴더(프로젝트)를 열면 초기화면이 이럴것입니다. 인터프리터가 유효하지 않다고 나옵니다. 주황색 팝업의 오른쪽 Configure Python interpreter를 누르면 되지만, 없는 경우에는 왼쪽 상단의 File - Settings - Projects : xxx - Python Interpreter를 선택합니다. 그렇다면 이 화면이 나올 것입니다. 빨간색 네모의 설정 - Show All... 을 누릅니다. 그러면 이 화면이 나올 것이고, 빨간색 네모의 + 버튼을 누릅니다. 보라색 네모의 Virtualenv Environment가 활성화된 상태에..
2021.02.04 -
Error running '' : @NotNull method com/intellij/execution/configurations/GeneralCommandLine.getExePath must not return null pycharm에서 이 에러는 인터프리터가 제대로 지정되지 않아, 코드를 실행할 수 없다는 에러이다. file - settings - project interpreter 에서, 인터프리터를 지정해주면 코드가 실행된다.
pycharm 에러 : @NotNull method com/intellij/execution/configurations/GeneralCommandLine.getExePath must not return nullError running '' : @NotNull method com/intellij/execution/configurations/GeneralCommandLine.getExePath must not return null pycharm에서 이 에러는 인터프리터가 제대로 지정되지 않아, 코드를 실행할 수 없다는 에러이다. file - settings - project interpreter 에서, 인터프리터를 지정해주면 코드가 실행된다.
2019.12.12 -
무게중심 구하기 thresholding은 cv2.threshold 함수를 사용하면 된다. 폐곡선을 여러개 가진 이미지라면 여러개의 무게중심 좌표가 리턴된다. def COG(input_array): """ :param input_array: 반드시 thresholding 된 array여야 함. :return: """ global cx, cy contours, hierarchy = cv2.findContours(input_array, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: M = cv2.moments(cnt) cx = int(M['m10']/M['m00']) cy = int(M['m01']/M['m00']) result_cx.append(..
[python] center of gravity (무게중심) 구하기무게중심 구하기 thresholding은 cv2.threshold 함수를 사용하면 된다. 폐곡선을 여러개 가진 이미지라면 여러개의 무게중심 좌표가 리턴된다. def COG(input_array): """ :param input_array: 반드시 thresholding 된 array여야 함. :return: """ global cx, cy contours, hierarchy = cv2.findContours(input_array, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) for cnt in contours: M = cv2.moments(cnt) cx = int(M['m10']/M['m00']) cy = int(M['m01']/M['m00']) result_cx.append(..
2019.10.28 -
np.percentile은 값 중에서 특정 백분위수에 해당하는 값을 구해줍니다. 백분위수란 값을 이뤄진 자료를 순서대로 나열했을 때 백분율로 나타낸 특정 위치의 값을 이르는 용어입니다. 일반적으로 크기가 작은 것부터 나열하여 가장 작은 것을 0, 가장 큰 것을 100으로 합니다. 100개의 값을 가진 어떤 자료의 20 백분위수는 그 자료의 값들 중 20번째로 작은 값을 뜻하며, 50 백분위수는 중앙값과 같습니다. 백분위수이기 때문에 범위는 0~100에 해당합니다. opencv 같은 모듈로 영상처리를 할 때 percentile을 사용하면 룰베이스 알고리즘을 짤 때 도움이 될 수 있습니다. 아래는 nifti 뇌영상을 로드 후 np.percentile으로 분위수에 해당하는 intensity를 구하는 방법입니다..
[python] np.percentile 사용법np.percentile은 값 중에서 특정 백분위수에 해당하는 값을 구해줍니다. 백분위수란 값을 이뤄진 자료를 순서대로 나열했을 때 백분율로 나타낸 특정 위치의 값을 이르는 용어입니다. 일반적으로 크기가 작은 것부터 나열하여 가장 작은 것을 0, 가장 큰 것을 100으로 합니다. 100개의 값을 가진 어떤 자료의 20 백분위수는 그 자료의 값들 중 20번째로 작은 값을 뜻하며, 50 백분위수는 중앙값과 같습니다. 백분위수이기 때문에 범위는 0~100에 해당합니다. opencv 같은 모듈로 영상처리를 할 때 percentile을 사용하면 룰베이스 알고리즘을 짤 때 도움이 될 수 있습니다. 아래는 nifti 뇌영상을 로드 후 np.percentile으로 분위수에 해당하는 intensity를 구하는 방법입니다..
2019.10.24 -
딥러닝에서 여러 modality의 영상을 인풋으로 넣고 싶을 때, 여러 영상을 하나로 합쳐 인풋으로 넣는 방법이 있다. 만약 T1 강조 영상의 dimension이 (100, 100, 100)이고, T2 강조 영상의 dimension이 (100, 100, 100)이라면 이 두 영상을 인풋으로 넣고 싶을 때 (100, 100, 100, 2)의 dimension을 가진 한 영상으로 합쳐서 인풋으로 넣을 수 있다는 것이다. img1 = nib.load(img1).get_fdata() img2 = nib.load(img2).get_fdata() img_concat = np.stack((img1, img2), axis=-1) 이런 방법으로 하면 두 영상을 인풋 하나로 넣을 수 있다.
[python] np.stack / 여러 영상을 한 이미지의 여러 채널로 합치기(의료영상)딥러닝에서 여러 modality의 영상을 인풋으로 넣고 싶을 때, 여러 영상을 하나로 합쳐 인풋으로 넣는 방법이 있다. 만약 T1 강조 영상의 dimension이 (100, 100, 100)이고, T2 강조 영상의 dimension이 (100, 100, 100)이라면 이 두 영상을 인풋으로 넣고 싶을 때 (100, 100, 100, 2)의 dimension을 가진 한 영상으로 합쳐서 인풋으로 넣을 수 있다는 것이다. img1 = nib.load(img1).get_fdata() img2 = nib.load(img2).get_fdata() img_concat = np.stack((img1, img2), axis=-1) 이런 방법으로 하면 두 영상을 인풋 하나로 넣을 수 있다.
2019.10.10