본문 바로가기

대학원 공부/programming language79

Python : TypeError: unhashable type: 'numpy.ndarray' 사실 TypeError: unhashable type: 'numpy.ndarray' error는 정말 다양한 곳에서 일어난다. 직역해보자면, numpy.array 형태는 hash가 안된다는 이야기다. 과연 나는 어디서 이런 error가 발생했는지 적어보려한다.Main code : pygmo를 활용하여 hypervolume 계산나는 pygmo라는 라이브러리를 활용하여 multi-objective optimization을 진행할 때 필요한, hypervolume을 계산하고자 하였다. 밑에가 내가 작성한 코드이다.import functoolsimport pygmoimport numpy as np# hypervolume을 계산하는 함수에 캐싱 적용@functools.lru_cache(maxsize=None)de.. 2024. 5. 15.
Python으로 클라우드 시스템 구축 www.slideshare.net/yongho/2011-h3 2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요 파이썬으로 멀티코어, 멀티노드, 클라우드를 활용하는 방법에 대해 살펴봅니다. 파이썬으로 어떻게 하면 분산처리 병렬처리를 잘 할 수 있을까요? www.slideshare.net 2020. 10. 8.
Instance method vs Classmethod vs Staticmethod 하 이 친구... 진짜 이해하기 개 힘들었다. 근데 직접 내가 사용해보니까 이제 좀 알 것 같다. 일딘 method에 대해서 정의를 하고 가면 좋을 것 같다. Instance Method class Calc: def add(self, a ,b): return a + b cal = Calc() cal.add(1,2) # return 3 method란 class안에 속해 있는 function으로 생각하면 된다. method는 self라고 정의를 해줘야 클래스에서 객체를 생성하고, 객체가 이 method를 사용할 수 있다. self는 생성된 객체를 의미한다. 이 부분은 과감하게 생략하고 넘어간다. 만약 이 부분이 이해가 가지 않는다면, class에 대해서 좀 더 공부를 하고 오는 것이 좋다!! @classme.. 2020. 10. 8.
VScode 가독성 좋게 하는 방법 blog.naver.com/PostView.nhn?blogId=hadaboni80&logNo=221608367376&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=1&postListTopCurrentPage=1&from=postView [vscode] 작업 속도를 1.5배 향상시켜 줄 비주얼스튜디오코드 확장 기능들 오늘은 설치해두면 유용한 vscode 확장 기능들을 간단하게 몇 가지 소개할까 합니다.만약 gulp나 grunt, we... blog.naver.com 여기 참조하기 2020. 10. 6.
Python : @property, method_name.setter 관련 오류, object is not callable 해결 방법 처음 오류 났을 때의 코드 ################## # Model.py # ################## class BO_3D(object): def __init__(self, x1_range, x2_range, new_property): self.__x1_range = x1_range self.__x2_range = x2_range self.__new_property = new_property temp_object = BayesianOptimization(f=None, pbounds={'x1': self.__x1_range, 'x2' : self.__x2_range}, verbose=2, random_state=1,) self.__optimizer = temp_object self.__ut.. 2020. 7. 1.
Numpy : from itertools import product from itertools import product from itertools import product X = np.array([[1.50,2],[1.60,2],[1.70,2], [1.80,2], [2.00,2], [2.20, 2], [2.50,2], [2.80,2],[3.00,2], [3.30,2], [3.60,2], [5.00,2], [1.50,1],[1.60,1],[1.70,1], [1.80,1], [2.00,1], [2.20, 1], [2.50,1], [2.80,1],[3.00,1], [3.30,1], [3.60,1], [5.00,1], [1.50,3],[1.60,3],[1.70,3], [1.80,3], [2.00,3], [2.20, 3], [2.50,3], [2.80,3],[3.00,3], .. 2020. 6. 4.
Numpy : np.linspace (구간에 점 만들기) numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0) Return evenly spaced numbers over a specified interval. Returns num evenly spaced samples, calculated over the interval [start, stop]. The endpoint of the interval can optionally be excluded. Changed in version 1.16.0: Non-scalar start and stop are now supported. 처음 start, stop을 지정해주고 num을 적어주면, 그 숫자만큼 구간에서 점을 .. 2020. 6. 4.
Matplotlib : 3차원 그래프 그리기 Data 생성하기 from itertools import product import numpy as np from matplotlib import pyplot as plt import matplotlib as mpl from mpl_toolkits.mplot3d import Axes3D from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C import math np.random.seed(1) # ---------------------------------------------------------------------- # .. 2020. 6. 4.
Python : 반올림, 올림, 내림 반올림 : round(실수, n) >>> n = 7/15 >>> n 0.4666666666666667 >>> round(n,2) 0.47 >>> round(n,4) 0.4667 >>> round(n) 0 >>> type(round(n)) 정수도 -를 사용해서 반올림 가능하다. >>> round(12345,-1) 12340 >>> round(12345,-2) 12300 올림, 내림 : math.ceil, math.floor import math >>> math.ceil(12.2) 13 >>> math.floor(12.2) 12 출처 : https://dpdpwl.tistory.com/94 [Python]파이썬 자리수 조절(소수점,올림,반올림) 실수를 표현할때, 자리수를 원하는대로 조절하고, 정수의 올림 반.. 2020. 6. 4.
Python : package 에서 상위 모듈 import 하기. 다음과 같은 dir 구조를 가지고 있다고 해보자. 1. os, sys module로 상위 dir import 하기 import os, sys sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) """ ['C:\\Users\\ADmin\\anaconda3\\envs\\text\\project\\text_mining', 'C:\\Users\\ADmin\\anaconda3\\envs\\text\\python36.zip', 'C:\\Users\\ADmin\\anaconda3\\envs\\text\\DLLs', 'C:\\Users\\ADmin\\anaconda3\\envs\\text\\lib', 'C:\\Users\\ADmin\.. 2020. 5. 19.
Web : semantic 하게 웹을 짠다는 것. Semanitc? semantic이란 의미론적 이라는 뜻이다. 즉, 웹을 semantic하게 짠다는 것은 HTML이 의미를 담고 있다는 것이다. 따라서 HTML을 보고 이게 어떤 의미인지 알기 위해서는 각 element에 의미에 맞게 HTML을 작성해줘야한다. Example 와 태그를 보면 어떤 것이 paragraph를 의미하는 것인가? 자세히 보지 않더라도 p 태그가 paragraph를 나타내는 것을 우리는 알 수 있다. 하지만 OOCSS를 사용하려면, div 태그로 감싸주는 것이 좋다. 그렇다면 여기에 어떻게 의미를 부여할 것인가?? 이것에 대한 해답이 바로 semantci 하게 웹을 짜는 것이다. 1. main : --- 페이지의 main content를 나타낸다. 한 번만 쓴다. 2. header.. 2020. 5. 12.
CSS : class naming (OOCSS) CSS에서 class를 이름 짓는 것은 굉장히 중요하다. 우리는 주로 CSS에서 div, span, section, nav 태그들로 content들을 감싸는데, HTML로 처음 구조를 잡아주고, 나중에 CSS로 글자크기, 위치, 태그의 크기 등등을 정한다. 이 때 필요한 개념이 class 이다. OOCSS (Object Oriented Cascading Style Sheets) class는 다른 언어에서도 많이 등장하는 개념이다. class는 하나의 틀이라고 생각하면 된다. 틀을 만들어서 내가 필요할 때마다 재사용하는 개념이 class에서 가장 중요한 개념이다. 즉, code의 재사용률을 높이는 것이다. OOCSS의 장점 코드의 재사용성 코드 재사용으로 인한 스타일시트의 용량 축소 스타일시트의 용량 축소.. 2020. 5. 12.