본문 바로가기

Numpy3

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.
Numpy : np.linalg.svd (SVD) np.linalg : 선형대수 method가 담겨져있다. np.linalg.svd(A, full_matrices=True, compute_uv) full_metrics defualt=True, True일 경우, A가 (M,N)일 때 U = (M,M), V=(N,N) False일 경우, A가 (M,K)일 때, U=(M,K), V=(K,N), K = min(M,N) A = np.array([[0,0,0,1,0,1,1,0,0], [0,0,0,1,1,0,1,0,0], [0,1,1,0,2,0,0,0,0], [1,0,0,0,0,0,0,1,1]]) U, s, VT = np.linalg.svd(A, full_matrices=False) print('U : {}, \nU\'s shape : {}'.format(U.rou.. 2020. 3. 12.
Pandas : DataFrame axis axis 정의 > axis는 수직축을 말하며, 위와 같은 그림처럼 axis를 0,1,2 로 3차원 공간을 구분한다. axis=0 axis=0을 보면, "x축으로 합친다" 라고 생각하면 편하다. result = ex_array.sum(axis=0) axis=1 axis=2 결론 axis=None 이면, 모든 요소의 합을 스칼라의 값으로 반환한다. axis=0 이면, 여러 row들을 한 개로 합치는 역할이며 (x,y,z) -> (y,z) 로 shape가 변환된다. axis=1 이면, row별로 존재하는 여러 columns들을 한 개로 합치는 역할이며 (x,y,z) -> (x,z)로 shape가 변환된다. axis=2 이면, column의 depth를 가진 값으로 축소하며 (x,y,z) -> (x,y)로 sh.. 2020. 2. 4.