본문 바로가기

반응형

분류 전체보기

(77)
python reduce의 내용을 한 줄로 요약: "reduce는 요약한다" python reduce는 리스트의 여러 원소들이 가진 특성을 하나로 정리해줍니다. 즉, 요약해줍니다. (물론 리스트 뿐만이 아니고 모든 반복 가능한 데이터 형들이 대상입니다.) 특성을 하나로 정리한다는 말이 사실은 엄청 광범위한 말인데, 시각자료로 설명해보겠습니다. 눈이 휘둥그레지는 reduce 세계 reduce의 세계에 오신것을 환영합니다! 이곳은 아주 골 때리고 요절복통인 세계입니다.. 이러한 리스트가 있다고 가정합시다. 7개의 원소가 있는 리스트군요. 그러고 나서 뜬금없이, 2개의 재료를 받아서 짝짜꿍 한 결과를 반환하는 "어떤 함수"를 준비합니다. 아직 질문하지 마세여. 좀 더 보시고 난 담에 질문하시어요. 그다음에 우리는 이런 짓을 할 겁니다. a와 b만 꺼내서 어떤함수에 집어넣고, 짝짜꿍한 ..
파이썬 전치행렬 손수 만드는 법! 전치행렬하나 만들자고 numpy 설치하시나요? numpy는 데이터 처리에 엄청난 능력을 보여주는 라이브러리이지만, 작은 규모의 프로그램을 만드는 상황이나, 그리고 매번 실행환경이 달라져야 하는 코드라면, numpy가 제공하는 함수들을 파이썬 기본 문법으로 해결하고 싶을 때도 생깁니다. 그래서 아주 유용하고 빈번하게 사용되는 전치행렬에 대한 내용을 기본문법으로 구현해 보겠습니다. 전치행렬이 뭔데? 일단 행렬이 뭔지 아시는 것을 가정하고 설명하겠습니다. 행과 열을 뒤바꾸는 것이 전치 행렬인데요. 엑셀로 예를 들어보면 이런 식이 되는거죠. 초록색 데이터는 [1, 2, 3, 4, 5] 로 데이터가 묶였지만 붉은색 데이터는 [1, 6]으로 데이터가 묶여 있죠? 파이썬내장 zip 함수로 전치행렬 만들어보기 이차원행렬 = [ [1,2], [3,4], [5,6] ..
python filter 로 게으르게 커피한잔 하고 가세요! 향이 좋아요! filter라는 함수가 있습니다. 파이썬에만 있는 함수는 아닌데요. 사용법은 다들 유사합니다. 커피필터는 갈아낸 커피가루를 받아들여서 물에 녹는 성분들만 아래로 통과시킵니다. 이를 함수로 나타내면 커피한잔 = 커피필터(수용성성분만_골라냅시다!, 커피가루) 정도가 되겠죠? 원본리스트에서 원하는 부분집합을 추출해주는 함수가 바로 filter() 함수입니다. 추출리스트 = filter(조건, 원본리스트) 아까 커피의 예와 비슷하게 써보면 이렇게 되겠죠? 원본리스트의 원소 중에서 조건을 만족하는 원소만 반환한다. 이렇게 독해하시면 됩니다. 그러면 코드예제를 통해 어떻게 쓰는지 알아봅시다. 커피로 배워보는 filter 함수() 아까 커피의 예를 들어서 설명했으니 컨셉을 계속 끌고 가보도록 하죠. 일단은 커피가 어..
List_Inspect #1 (다이나모 기본노드 활용 시리즈-4) 다이나모 기본노드 활용시리즈 4번째이고, 리스트 활용에 관한 3번째 포스팅입니다. 이번 글에서는 리스트의 구성을 파악하고, 다양하게 이루어진 리스트의 구성 중에서 사용자가 원하는 특성이나 정보를 추출해 내는 노드들을 살펴봅니다. 내용이 많아서 포스팅을 2개로 분할합니다. 금번 포스트에서는 두 집합 비교까지 설명하겠습니다. 카테고리는 List > Inspect 입니다. Inspect? 탐정인가요? 붉은색 점선 안에 있는 노드들이 오늘 소개할 대상 입니다. Generate 카테고리보다 확연히 노드들의 개수가 많죠? Generate 기능으로 생성된 다양한 리스트들의 특성을 찾아내는 노드들이 즐비해 있습니다. 일일이 다 설명하기 보다, 사용빈도가 높은 노드들을 골라서 실 사용 예를 통해 설명해 볼게요. 리스트 ..
python map 함수의 비정함 프로그래밍을 공부하다보면 생각보다 매 순간이 리스트를 다루는 일의 연속이라는 것을 깨닫게 됩니다. 왜냐? 우리는 컴퓨터로 여러가지의 정보를 한꺼번에 처리하는 것으로써 다루는 도구의 효율을 높이기 때문입니다. 여러가지의 개체를 (예를 들면 회원가입된 여러 사람들의 이메일 주소 목록이라던지, 아니면 모델링 프로그램으로 작성된 수 백개의 기둥형상이라던지) 한꺼번에 계산해서 결국엔 처리결과 라는 새로운 리스트를 만들어 냅니다. 즉, [원본리스트] 에 [어떤 규칙]을 적용해서 [새로운 리스트]를 만들어 낸다 라는 것이죠. 기존방식으로 리스트 처리하기 위에 써진 대로 간단한 코드를 한번 만들어 볼까요? 먼저 숫자 5개가 있는 리스트를 준비합니다. 원본리스트 = [1,2,3,4,5] 그 다음에는 각 원소에다 어떤 규..
정규표현식 잘 몰라도 코드 짤 수 있어요 어.........음... 다만 코드가 엄청나게 길고 복잡해 질 뿐이죠. 네.. 이 말은 정규표현식에 대해 알아야 한다는 말입니다. 그런데 오히려 알아야한다는 말만 많이 듣고, 한두번씩 배움을 미루다 보면 거북하고 거추장스러워서 점점 배우기 싫어집니다. 거추장스러움을 없애기 위한 방법인데 말이죠. /[^a-zA-Z0-9가-힣ㄱ-ㅎ]/g 정규식이라고 해서 검색했는데, 이런 예제를 보고 나면, 암호문을 본 듯한 기분에 일단 쉬고 싶어집니다. 그래서 오늘은 많은 내용들을 손질해서, 먹을 부분만 딱 남겨 보여 드리겠습니다. regex 언제 쓰나? 흔히 regex라고 줄여쓰는 regular expression (정규표현식) 은, 데이터로 들어온 문자열을 판별할때 쓰는데, 우리는 살면서 많은 글자들을 바탕으로 움직..
Python For 문을 연습하는 방법(feat. Revit Dynamo) 오늘은 Python의 for 문을 알아볼텐데, Revit Dynamo에서 파이썬 노드를 꺼내서 실습해보겠습니다. 굳이 다이나모에서 실습하는 이유는 레빗 프로젝트와 연동해서 객체를 반복문으로 다루는 법을 보이고자 함입니다. Python for문을 어떻게 접근하고 익힐까요? 기본 개념 (코딩도 언스마트하게 하면 육체노동을 할 수 있다?!) for 문을 공부하는 것은 어떤 언어에서든 기본이 됩니다. “다이나모 기본노드 활용 시리즈-2” 에서 언급했었는데, 1개의 개체를 다루는 코드와, 2개 이상의 개체를 다루는 코드는 구조가 다릅니다. 2개 이상을 다루는 코드의 재료가 되는 것 중 가장 이해하기 쉬운 것이 리스트입니다. 라는 말을 한 적이 있죠? 2개 이상의 개체를 다루기 위해서는, 하나의 객체를 다루는 코드..
List_Generate #2 (다이나모 기본노드 활용 시리즈-3) 기본노드 활용 시리즈-2 에 이어서, List > Generate 카테고리에 있는 노드들을 소개합니다. 붉은 점선 부분인데, List.OfRepeatedItem과 List.Combinations 노드를 위주로 설명하겠습니다. 왜냐하나면 다른 노드들은 이 2가지 노드와 사용법이 비슷하거든요. (Empty 노드는 지금은 신경쓸 필요 없습니다.) 이미 존재하는 리스트를 가지고 변형 생성하는 노드 Generate 카테고리에 있는 노드 중에 오늘 설명할 노드들은 모두 “이미 존재하는 리스트를 가지고 변형 생성하는 노드” 라고 보시면 됩니다. 그 말인 즉슨, 입력 포트로 어떤 재료를 받아서 동작한다는 뜻이겠죠? 말했듯이 List.OfRepeatedItem 노드는 List.Cycle 와 사용법이 비슷하고, List...

반응형