>source

이 유형의 계산을 계산하려고 합니다.

arr= np.arange(4)
# array([0, 1, 2, 3])
arr_t=arr.reshape((-1,1))
# array([[0],
#        [1],
#        [2],
#        [3]])
mult_arr= np.multiply(arr,arr_t) # <<< the multiplication
# array([[0, 0, 0, 0],
#        [0, 1, 2, 3],
#        [0, 2, 4, 6],
#        [0, 3, 6, 9]])

결국 단일 행의 더 큰 행렬 인덱스에서 수행하고 계산에 의해 재현되는 모든 행렬을 합산하려면 다음을 수행합니다.

arr= np.random.random((600,150))
arr_t=arr.reshape((-1,arr.shape[1],1))
mult= np.multiply(arr[:,None],arr_t)
summed= np.sum(mult,axis=0)
summed

지금까지는 이 모든 것이 완벽했지만 문제는 더 큰 데이터 세트를 숨기려고 할 때 시작됩니다(예: 대신 다음 배열).

arr= np.random.random((6000,1500))

다음 오류가 발생합니다.MemoryError: 101을 할당할 수 없습니다. 모양이 (6000, 1500, 1500)이고 데이터 유형이 float64인 배열에 GiB의미가 있지만 내 질문은 다음과 같습니다.

프로세스를 완전히 느리게 하는 루프를 사용하지 않고도 이 문제를 해결할 수 있습니까 ??

제 질문은 주로 성능에 관한 것이며 30초 이상의 장기 실행 작업이 필요한 솔루션은 옵션이 아닙니다.

  • 이전 angular : 각도 9 canActivate가 완료되기 전에 canActivateChild가 시작되는 이유는 무엇입니까?
  • 다음 python : django.core.exceptions.ImproperlyConfigured: psycopg 모듈 로드 오류: psycopg라는 모듈이 없습니다.