반응형

전체 글 315

matplotlib에서 3D view의 axis ratio(비율) 조정하기

해결하고자 하는 문제 python을 통한 matplotlib기반 visualization에서 axis의 ratio를 조절해야할 때가 있음 해결 방법 : set_box_aspect 함수를 사용 set_box_aspect() 함수를 사용하여 플롯의 가로 세로 비율을 설정할 수 있음 이 함수는 x, y, z 축 비율을 나타내는 세 가지 값의 목록을 받음 아래의 예제에서는 현재 코드는 각 축에 대한 데이터 범위의 실제 차이를 반영하도록 종횡비를 설정 실제 데이터 범위와 관계없이 세 축 모두에 대해 종횡비를 동일하게 설정하는 주석 처리된 대체 방법도 포함되어 있음 아래는 예제코드임 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import matplot..

Study/Python 2023.04.21

list에서 중복 요소를 효율적으로 확인하는 방법

해결하고자 하는 문제 list에서 중복 요소를 효율적으로 확인하는 방법이 필요 해결 방법 : set()를 통한 확인 set()은 내부에 중복되지 않게 데이터 요소(element)를 저장함 또 set() 내부에 요소 존재 여부를 확인할 수 있음 list의 값을 set()에 넣기 전 확인하고 없으면 넣어주는 방법을 통해 효율적으로 확인할 수 있음 예제 코드는 아래와 같음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 def is_duplicates(lst): seen = set() for item in lst: if item in seen: return True seen.add(item) return False # Example usage: my_list = [1, 2, 3, 4..

Study/Python 2023.04.21

matplotlib에서 임의의(random) color 자동 생성하기 : hex string 기반

해결하고자 하는 문제 python을 통한 visualization에서 matplotlib에서 랜덤한 color를 생성해야할 때가 있음 임의의 여러 데이터를 color로 표현할 때 color를 일일이 지정하는 것은 비효율적임 랜덤하게 color를 생성하여 입히는 것이 필요함 해결 방법 : 랜덤한 hex string 생성 후 color로 변환 여기서 랜덤하게 color hex string를 만들어 이를 기반으로 color를 생성하면 효율적임 Matplotlib에서 임의의 color hex string을 생성하려면 matplotlib.colors 모듈을 사용할 수 있음 code 예시는 다음과 같음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import matplotlib.colors as..

Study/Python 2023.04.21

python bool list에서 True 개수 빨리 찾기

python list 객체의 count를 통한 bool list에서의 True 개수 빨리 찾기 파이썬에서 bool list의 True 값 수를 최대한 빨리 계산하려면 list 객체의 count() 메서드를 사용할 수 있음 예제는 다음과 같음 1 2 3 my_list = [True, False, True, True, False, True] count = my_list.count(True) print(count) # output: 4 cs 이 코드는 bool 값을 포함하는 list인 my_list를 생성한 다음 count() 메서드를 사용하여 목록에 있는 True 값의 수를 계산 결과는 count 변수에 저장된 다음 콘솔에 출력됨 이 접근 방식은 매우 효율적이며 O(n) 시간 복잡도(여기서 n은 목록의 길이..

Study/Python 2023.04.12

리워크 - 지금까지 일한 방식은 틀렸다

나의 일에 대한 자세를 돌아보며... : 일하는 방법에 개선이 필요하다! 이직을 한 새로운 회사의 책장을 돌아보다가 어떤 책이 보였음 '지금까지 일한 방식은 틀렸다!'는 말을 바탕으로 시작하는 책이었음 새로운 회사에서 일을 잘하고 싶은 동시에 더 나은 방향으로 갈 수 있다면 개선하고 싶은 마음이 있었음 그렇게 읽고 정리한 책이 이번에 서평을 작성할 리워크임 책의 저자는 제이슨 프라이드와 데이비드 하이네마이어이며 창업하여 수많은 사람들이 사용하는 소프트웨어를 만들어 낸 사람들임 무엇보다 잘 일해서 좋은 결과와 성과 그리고 회사의 이익을 낼 수 있는지에 대한 책이었음 다시 내가 가지고 있는 일에 대한 생각과 자세 그리고 일하는 방법에 대하여 다시 생각하고 정리할 수 있었음 짧게 짧게 글이 있는 일러스트와 함..

Life/Book 2023.03.27

젠틀몬스터 메종마르지엘라 안경 MM010S-01 구매 및 언박싱 후기

공부할 때 각성(?)을 주기 위한 아이템 구매 컴퓨터로 개발 공부를 하거나 글쓰기를 할 때, 더 집중할 수 있도록 하는 어떤 장치(?)가 있었으면 했다. 그래서 나에게 좋은 안경을 선물로 주고 열심히 써보자라는 생각을 하게 되었다. 의미 있는 안경을 구매하기 위해 찾아보다가 젠틀몬스터라는 브랜드를 알게 되었다. 이후 마침 메종마르지엘라와 협업을 한 안경이 나오게 되었다. 이전에 메종마르지엘라 전시를 보고 나서 관심이 생겼는데, 딱 안경을 찾던 브랜드와 협업이라니 운명(?)이라고 생각했다. 이 협업 선글라스와 안경이 엄청 인기가 있어서 구매하기가 정말 힘들었다. 사람들이 많이 오지 않을 것(?) 같은 젠틀몬스터 매장을 찾고 찾아서 안경을 구매하는 데 성공하였다. (구매하였으니 착용하고 열심히 글을 쓰고 공..

Life/Review 2023.03.14

가진 돈은 몽땅 써라 - 먹고 놀고 마시는 데 목숨 걸어라. 다시 살 수 없는 것들에 투자하라.

돈을 모으는 이유를 다시 생각해 보며 돌이켜보면 돈을 모으는 이유가 무엇인지 자세하게 생각하여 본 적이 없음 막연히 '나중에 내가 하고 싶은 일을 하기 위해' 또 '혹시 모르는 상황을 대비하기 위해'라는 생각만 어렴풋이 가지고 있었음 '개미와 베짱이'라는 우화 속에서 개미만 옳은 듯한 생각으로 살고 있다는 것을 알게 되었음 우리는 왜 현재에 집중하여 어떤 것을 하려고 하지 않을까? 우리는 왜 나중에 일어날 수도, 일어나지 않을 수도 있는 일을 위해 지금을 살아가는가? 지금에 집중해서 내가 하고픈 일을 찾고 즐기는 삶이 더 맞지 않을까? 지금 하고픈, 해보고픈 일이 있다면 어떻게 그 일을 할 수 있을지 생각해 보고 하나하나 해결해 나가는 것이 더 맞지 않나? 다시 생각해 보면 올바른 이야기일 수 있는 지금..

Life/Book 2023.03.13

ROS에서 중요한 개념들

ROS의 기본 용어 및 개념 정리 Node(노드) : 최소 단위의 실행 가능한 프로세스. 하나의 실행이 가능한 프로그램으로 생각할 수 있음. ROS에서의 최소 실행단위가 노드이며 이를 프로그램으로 두고 나누어 작업하도록 함. 각 노드는 메시지 통신으로 데이터를 주고받음. Package(패키지) : 하나 이상의 노드를 포함하며 노드 실행을 수행하기 위한 정보들을 묶어 놓은 것임. 또 이러한 패키지의 묶음을 meta-package(메타-패키지)로 분리하기도 함. message(메시지) : 메시지를 통해 노드 간의 데이터를 주고받을 수 있음. 메시지는 integer, floating, point, boolean과 같은 변수의 형태를 지님. 또 메시지 안에 메시지를 포함하는 데이터 구조 및 메시지의 배열 같은 ..

ROS (robot operating system) : 로봇 운영체제 ROS

ROS란 무엇일까? ROS는 open-source이며, robot을 위한 meta-operating system임 robot SW 개발을 위한 다양한 서비스와 기능을 제공 hardware abstraction low-level device control implementation of commonly-used functionality message-passing between processes package management 또 robot 개발을 위한 다양한 도구들과 라이브러리들을 제공 이를 통해 여러 컴퓨터에서 robot SW source code를 obtaining, biulding, writing, running 할 수 있음 목적 : robot SW 개발을 전 세계에서 공동 작업할 수 있도록 생태..

컴퓨터, 스마트폰 그리고 로봇 : 로봇 소프트웨어 플랫폼

컴퓨터와 스마트폰이 사용자를 만날 때 : 하드웨어와 운영체제 그리고 애플리케이션 두 기기(컴퓨터와 스마트폰)는 많은 사람들이 하나쯤 가지고 있는 대중적인 기기들 이 대중적인 기기들은 여러 하드웨어의 결합으로 만들어져 있으며 다양한 하드웨어 모듈을 변경하고 추가할 수 있음 이 대중적인 기기들은 운영체제와 애플리케이션(앱)의 형태로 사용자가 이용할 수 있음 위와 같은 컴퓨터와 스마트폰은 하드웨어 모듈들과 운영체제 그리고 앱이라는 것을 사용자가 이용한다는 부분에서 공통점을 가짐 그러한 하드웨어 모듈과 운영체제 그리고 앱은 각각의 분야가 분업되어 있다고도 볼 수 있음 즉, 각각의 부분을 담당하는 개발하는 운영하는 사람과 조직이 따로 있음 (하나의 조직에서 모든 것을 다 할 수도 있으나 나뉘어져 있는 경우가 많음..

반응형