>  기사  >  백엔드 개발  >  주어진 행렬이 희소 행렬인지 여부를 확인하는 Python 프로그램

주어진 행렬이 희소 행렬인지 여부를 확인하는 Python 프로그램

王林
王林앞으로
2023-09-05 14:57:071354검색

주어진 행렬이 희소 행렬인지 여부를 확인하는 Python 프로그램

행렬은 일련의 숫자가 행과 열로 배열된 직사각형 배열입니다. 이를 m X n 행렬이라고 하며, 여기서 m과 n은 차원입니다.

행렬에 0이 아닌 요소가 0인 요소보다 적은 경우 이를 희소 행렬이라고 합니다.

으아아아

위 행렬은 4X5 행렬이며 여기에 있는 숫자는 대부분 0입니다. 소수의 요소만이 0이 아니므로 이를 희소 행렬로 처리할 수 있습니다.

주어진 행렬이 희소한지 확인하려면 총 요소 수와 0을 비교해야 합니다. 0개의 요소 수가 행렬 요소의 절반을 초과하는 경우. 그런 다음 주어진 행렬을 희소 행렬이라고 부를 수 있습니다.

으아아아

주어진 행렬이 희소인지 여부를 확인하는 다양한 방법을 논의해 보겠습니다.

For 루프 사용

for 루프를 사용하면 Python에서 배열 요소를 쉽게 반복할 수 있습니다.

먼저 행렬 행을 반복하고 각 행에 있는 0의 개수를 셉니다. 그러면 카운트 값이 카운터 변수에 저장됩니다.

이후 카운터 변수의 값을 행렬 요소의 절반과 비교하여 주어진 행렬이 희소 행렬인지 확인합니다.

으아아아

출력

으아아아

위 행렬은 희소 행렬입니다.

이 예에서는 list.count() 메서드를 사용하여 루프의 각 행에서 0개 요소의 개수를 계산하고 그 개수를 카운터 변수에 저장합니다.

으아아아

출력

으아아아

SciPy 라이브러리 사용

Python에서 SciPy 라이브러리를 사용하면 희소 행렬을 만들 수 있습니다. 다음 예제에서는 csr_matrix() 함수를 사용하여 압축된 희소 행 형식의 희소 행렬을 만듭니다.

issparse() 함수는 주어진 객체가 희소 행렬인지 확인하는 데 사용됩니다.

처음에는 중첩 목록을 사용하여 배열을 만든 다음 csr_matrix() 메서드를 사용하여 이를 희소 행렬로 변환합니다.

으아아아

출력

으아아아

csr_matrix() 메서드는 데이터 포인트(0이 아닌 요소)만 메모리에 저장합니다.

Note - issparse() 메서드는 입력 행렬에 포함된 요소 수와 아무 관련이 없습니다. 대신, 주어진 객체가 spmatrix의 인스턴스인지 확인합니다.

위 내용은 주어진 행렬이 희소 행렬인지 여부를 확인하는 Python 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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