본문 바로가기

Python18

[python, rosalind] Overlab Graphs Rosalind를 풀면서 항상 실수를 연발하게 됩니다. 휴우.. 최근들어 다시 Rosalind를 풀기 시작했는데, 멘델의 법칙문제와 이번 포스팅의 주제인 Overlab Graphs를 아주 고전하면서 풀었습니다. 먼저 이야기하지만, Rosalind를 풀때는 꼭 깊게 생각하시고, 생각을 다양하게 해보시기 바랍니다. 예를들어 FASTA파일을 읽을 때, >이후로 1줄만 읽게 한다던가................ 한 6번 틀린것 같습니다. 이것 때문에.. 제 알고리즘은 맞았습니다. 물론.. 코드가 더럽긴하지만요. 그런데 파스타파일의 특정을 잃어버리고 있었더라구요. 아무튼 진행해보도록 하겠습니다. 설명은 다음과 같습니다. 1. A Brief Introduction to Graph Thery 네트워크는 어디에서든 있.. 2022. 5. 24.
[python] class 란 무엇일까? 1. python class가 중요한 이유? python을 잘 다루기 위해서 필수적으로 해야하는 부분이 이 class입니다. 저도 초반에 python을 야메로 배우면서 이 class라는 부분을 대충 넘겼는데, 나중에 되서 조금 고생좀 했습니다. class에 대해서 정말 잘 설명해주는 곳도 없었고, 계산기비유를 하는데.. 그냥 +,-,/,* 하면 되는 것 아닌가 했었죠. 그런데 deep learning에서도 이 class 기능으로 어떤 함수를 만들어 쉽게 진행하는 것을 보았고, 기타 이외에 정말 고수들은 이 class를 잘 사용한다는 특징이 있었습니다(deep learning에서 generator 생성시에도 class를 사용하더군요.). 여하튼 본론으로 들어와서 class를 꼭 이해하고 넘어가시길 바랍니다.. 2022. 3. 22.
[pytorch] tensor를 이해해보자! tensor라 함은 3차원 이상의 데이터를 이야기합니다. 0차원은 scaler, 1차원은 vector, 2차원은 matrix (행렬) 이라고 하죠. 우리가 딥러닝을 배우면서 많이 다루게될 데이터는 2차원 이상의 데이터입니다. 그렇다면 2차원 이상의 데이터를 어떻게 생각해야할까요?! 아래 그림을 보면서 설명하도록 하겠습니다. 위 사람사진에 대해서 얻을수 있는 데이터를 상상해 봅시다. 유전자에 대해서 알수가 있을 것 같고, 뼈사진을 통해 건강한 뼈를 가진 사람인지도 알 수가 있을것같구요. 그리고 키도 알 수가 있겠죠. (정확한 수치는 사진에 나오지 않았지만 알수있다고 가정해봅시다.) 한 사람에서 나오는 데이터의 양을 유전자, 뼈상태, 키 이렇게 대략 알 수가 있을 것입니다. 여기서 유전자, 뼈상태, 키 각각.. 2021. 8. 5.
[pytorch] tensor 나누는 방법들 (split, chunks, 데이터 나누기) tensor는 데이터를 이야기합니다. 2차원을 2 Tensor 3차원을 3 Tensor라고 이야기 하죠. 딥러닝을 돌리다 보면 이러한 tensor를 나눠서 돌려야할 때가 있습니다. batch size를 조절하거나 혹은 test set, validation set, train set을 나눌때도 이러한 데이터를 나눠야 합니다. 그럴때 사용할수 있는 간단한 방법을 설명하고자 합니다. split, chunks는 자세히 설명하지 않으면 조금 헷갈릴수가 있는 기능입니다. split의 경우 데이터당 최대 자료가 n개를 가지게 하는 방법이고, chunks의 경우 데이터를 n개로 나누는 거죠. chunk와 split의 위의 설명으로는 헷갈릴수가 있으니 예시를 보여주도록 하겠습니다. 같은 17줄을 split와 chunk로.. 2021. 8. 3.
[python] 방향키로 이전 스크립트가 안보일때 회사나 워크샵 등과 같은 다양한 서버를 사용하게 될때 세팅이 나와 맞지 않아 불편한 경우가 많습니다. 저도 마찬가지로 불편함을 겪었던 일이 있었는데, 바로 방향키로 이전에 쳤던 명령어가 나올줄 알았는데, 실제로 [[A , [[D 와 같은 이상한 문자들이 출력되는 상황이 벌어지는 일입니다. 이럴경우 두가지 방법으로 해결이 가능합니다. readline module을 pip 을 이용해서 설치를 합니다. pip install readline 이러는 데에도 에러가 발생이 될수가 있는데 다음과 같습니다. free(): invalid pointer Aborted (core dumped) 이러는 경우는 readline을 제거 해주면 문제가 해결이 되고, readline대신에 gnurealine을 설치를 하면됩니다. p.. 2021. 7. 26.
[python] 여러 변수에서 순서대로 sorted 적용해보기 python을 하다보면 여러 변수들을 이용하여 내림차순 혹은 오름차순으로 정리해야 할 때가 있습니다. 예를 들어 시간 농도 1 0.3 3 0.6 2 0.4 3 0.7 2 0.3 1 0.4 3 0.7 위과 같은 자료가 있을때 농도에 따른 내림차순 먼저하고, 다른 시간에 따른 내림차순으로 변경하고 싶을때! 아래와 같이 진행하시면 됩니다. # input a=[(1,0.3),(3,0.6),(2,0.4),(3,0.7),(2,0.3),(1,0.4),(3,0.7)] sorted(a) # output : [(1, 0.3), (1, 0.4), (2, 0.3), (2, 0.4), (3, 0.6), (3, 0.7), (3, 0.7)] sorted(a,key=lambda x:(x[1],x[0])) # output : [(1,.. 2021. 2. 9.