numpy/scipy에서 반복적으로 거대한 희소 행렬을 생성해야합니다. intitialization는 루프 내에서 수행된다이 잘 작동했다 시작되는 시점에파이썬에서 거대한 희소 행렬
matrix = foo(...)
result = matrix.T.dot(x)
:
from scipy.sparse import dok_matrix, csr_matrix
def foo(*args):
dim_x = 256*256*1024
dim_y = 128*128*512
matrix = dok_matrix((dim_x, dim_y))
for i in range(dim_x):
# compute stuff in order to get j
matrix[i, j] = 1.
return matrix.tocsr()
그럼 난 때문에 같은 추가의 계산하는 csr_matrix로 변환해야합니다. 하지만 내 행렬이 점점 더 커지고 내 컴퓨터가 충돌하기 시작합니다. 매트릭스를 저장하는 더 좋은 방법이 있습니까? 기본적
난 다음 요구 사항을 가지고
I는 행렬의 전치 행렬을 계산해야 0- 내가 계산해야 x_dimensional 벡터 내적
- 행렬의 크기는 약 1 × 10^9 * 1 × 10^8
내 ram- 될 수 저장 용량이 초과되었습니다. 스택 오버플로와 인터넷의 나머지 부분에 대한 여러 게시물을 읽었습니다.) PyTables는 매트릭스 계산을 위해 실제로 만들어지지 않았습니다 ... 더 좋은 방법이 있습니까?
나는 이것이 수학/수치 분석 질문의 더 많은 것 같아요 :) 내 Num.Anal. 물론, 그 크기의 행렬을 수행하는 유일한 방법은 그것을 삼각형으로 만드는 것입니다. –
또한, 당신이 numpy를 요구하는 것을 알고 있지만 파이썬을위한 다소 완성 된 라이브러리가 있습니다. [그것은 github에있다] (https : // github.com/Twoody/Lin_Alg_py) –
이 질문을했을 때, 당신은 수레를 저장하고 싶었지만 int를 제안한 대답을 받아 들였습니다. 나는 단지 흥미 롭다 - 나는 무엇을 여기에서 놓쳤 느냐? 감사! –