>  기사  >  백엔드 개발  >  Python에서 희소 행렬을 만드는 방법은 무엇입니까?

Python에서 희소 행렬을 만드는 방법은 무엇입니까?

PHPz
PHPz앞으로
2023-09-05 15:49:061183검색

Python에서 희소 행렬을 만드는 방법은 무엇입니까?

이 기사에서는 희소 행렬이 무엇인지, 그리고 Python에서 희소 행렬을 만드는 방법을 보여 드리겠습니다.

희소 행렬이란 무엇인가요?

희소 행렬은 대부분의 요소가 0인 행렬입니다. 즉, 행렬에는 몇 개의 위치에 대한 데이터만 포함됩니다. 희소 행렬이 소비하는 대부분의 메모리는 0으로 구성됩니다.

예를 들어 -

으아악

희소 행렬을 표현하기 위해 2D 배열을 사용하면 대부분의 경우 행렬의 0이 쓸모가 없기 때문에 많은 메모리가 낭비됩니다. 따라서 0이 아닌 요소와 함께 0을 저장하는 대신 0이 아닌 요소만 저장합니다. 여기에는 0이 아닌 요소(행, 열, 값)를 저장하기 위해 트리플을 사용하는 것이 포함됩니다.

NLP(자연어 처리)와 데이터 인코딩 모두 희소 행렬을 많이 사용합니다. 대부분의 행렬 요소가 0인 경우 모든 행렬 요소를 저장하는 데 드는 저장 비용이 높아집니다.

그 이유는 데이터 포인트가 몇 개밖에 없고 대부분의 저장 공간이 중복된 0으로 채워져 있기 때문입니다.

희소 행렬의 장점

단순 행렬 대신 희소 행렬을 사용하면 얻을 수 있는 두 가지 주요 이점은 다음과 같습니다. -

  • Storage - 0이 아닌 요소가 0보다 적기 때문에 이러한 요소를 개별적으로 저장하는 데 더 적은 메모리를 사용할 수 있습니다.

  • 계산 시간 - 0이 아닌 요소만 순회하는 데이터 구조를 논리적으로 생성하여 계산 시간을 절약할 수 있습니다.

Python에서 희소 행렬을 만드는 방법은 무엇입니까?

Python의 ScPy는 다양한 데이터 구조를 사용하여 희소 행렬을 생성하고 조밀한 행렬을 희소 행렬로 변환하는 도구를 제공합니다.

Python에서는 다음 함수를 사용하여 희소 행렬을 만들 수 있습니다. -

  • csr_matrix() 함수 - 압축된 sparse row 형식의 희소 행렬을 생성합니다.

  • csc_matrix() 함수 - 압축된 희소 열 형식으로 희소 행렬을 생성합니다. ,,

방법 1. csr_matrix() 함수를 사용하여 희소 행렬 생성

압축된 희소 row 형식으로 희소 행렬을 생성합니다.

문법

으아악

매개변수

  • shape - 행렬의 모양입니다

  • dtype - 행렬의 데이터 유형입니다

알고리즘(단계)

필요한 작업을 수행하기 위해 따라야 하는 알고리즘/단계는 다음과 같습니다. -

  • 별칭(np)이 있는 numpy 모듈을 가져오려면 import 키워드를 사용하세요.

  • import 키워드를 사용하여 scipy 모듈에서 csr_matrix 함수를 가져옵니다.

  • csr_matrix() 함수를 사용하여 int 데이터 유형(row 형식)의 3 * 3 희소 행렬을 만들고 toarray() 함수를 사용하여 배열로 변환합니다.

  • 생성된 희소 행렬을 인쇄합니다.

다음 프로그램은 csr_matrix() 함수를 사용하여 희소 행렬(3x3)을 반환합니다. -

으아악

출력

실행되면 위 프로그램은 다음과 같은 출력을 생성합니다.

으아악

방법 2. Numpy 배열이 제공된 csr_matrix() 함수를 사용하여 희소 행렬을 만듭니다

알고리즘(단계)

필요한 작업을 수행하기 위해 따라야 하는 알고리즘/단계는 다음과 같습니다. -

  • 별칭(np)이 있는 numpy 모듈을 가져오려면 import 키워드를 사용하세요.

  • import 키워드를 사용하여 scipy 모듈에서 csr_matrix 함수를 가져오세요.

  • 배열을 생성하려면 numpy.array() 함수를 사용하세요(ndarray를 반환합니다. ndarray는 주어진 요구 사항을 충족하는 배열 객체입니다)

으아악

출력

실행되면 위 프로그램은 다음과 같은 출력을 생성합니다.

으아악

방법 3. csc_matrix() 함수를 사용하여 희소 행렬 생성

압축된 희소 열 형식으로 희소 행렬을 생성합니다.

문법

으아악

매개변수

  • shape - 행렬의 모양입니다

  • dtype - 행렬의 데이터 유형입니다

알고리즘

필요한 작업을 수행하기 위해 따라야 하는 알고리즘/단계는 다음과 같습니다. -

  • 별칭(np)이 있는 numpy 모듈을 가져오려면 import 키워드를 사용하세요.

  • import 키워드를 사용하여 scipy 모듈에서 csc_matrix 함수를 가져옵니다.

  • csc_matrix() 함수를 사용하여 int 데이터 유형(column형식)의 3*3 희소 행렬을 만들고 toarray() 함수를 사용하여 배열로 변환합니다.

  • 생성된 희소 행렬을 인쇄합니다.

다음 프로그램은 csc_matrix() 함수를 사용하여 열 형식의 희소 행렬(3x3)을 반환합니다. -

으아악

출력

실행되면 위 프로그램은 다음과 같은 출력을 생성합니다.

으아악

방법 4. Numpy 배열이 주어지면 csc_matrix() 함수를 사용하여 희소 행렬을 만듭니다

다음 프로그램은 csc_matrix() 함수를 사용하여 정수 열 형식의 희소 행렬(3x3)을 반환합니다. -

으아악

출력

실행되면 위 프로그램은 다음과 같은 출력을 생성합니다.

으아악

결론

이 튜토리얼에서는 Python에서 희소 행렬을 생성하는 네 가지 방법을 배웠습니다. 또한 numpy 배열에서 희소 행렬을 생성하는 방법도 배웠습니다.

위 내용은 Python에서 희소 행렬을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제