두 개의 드문 드문 한 배열이 (거의) 동일한 지 확인하고 싶습니다. 반면 NumPy와 배열을 위해 당신이 할 수 있습니다 :두 스파 스 배열이 (거의) 같은지 테스트하는 방법은 무엇입니까?
import numpy as np
a = np.ones(200)
np.testing.assert_array_almost_equal(a, a)
이것은 내가 이해할 수있는 스파 스 배열, 작동하지 않습니다는 (두 배열의 크기와 관련된 작은 행렬 또는 오류에 대한 오류 AttributeError: ravel not found
를 반환). 테스트 희소 매트릭스에 해당하는 scipy가 있습니까? 내 스파 스 행렬을 조밀 한 행렬로 변환하고 numpy 테스트 함수를 사용할 수는 있지만 때때로 (메모리/크기) 제약으로 인해 가능하지 않습니다. 예컨대 :
from scipy import sparse
b = sparse.rand(80000,8000,density=0.01)
type(b) # <class 'scipy.sparse.coo.coo_matrix'>
c = b.toarray() # ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.
이 어떤지이 큰 scipy 배열을 테스트 할 수 있나요, 아니면 작은 샘플을 테스트해야합니까?
만약'if index_match :'뒤에'np.allclose'를 넣고 싶을 수도 있습니다. 'v1'과'v2'가 다른 길이라면 에러를냅니다. –
정확하게 이해한다면 행과 열 indeces가 동일하고 값이 가까운 지 비교할 것을 제안합니다. 나는 아이디어를 좋아하지만 find()가 예제에서 작동하는 방식을 보니 stuggle하면 (오류가 발생 함) 사용하려고합니다. 비교 문에서 직접'A.row','A.col','A.data'를 사용하는 것과 동일합니까? – BartDur
@BartDur 길이가 동일한 지 비교하기 위해 IF가 필요하다고 추측합니다. 편집 됨. – Divakar