inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

희소 행렬 - CSR 형식 관련 질문

322

Baek Kyun Shin

작성한 질문수 23

0

안녕하세요. 강의 잘 듣고 있습니다.

다름이 아니라 희소 행렬 CSR 부분에서 궁금한 점이 있어 질문을 드립니다.

개정 이전 버전의 책 기준으로 p.478에서 CSR을 설명하는 부분에서 COO로 할 경우 행 위치 배열 = [0, 0, 1, 1, 1, 1, 1, 2, 2, 3, 4, 4, 5] 이렇게 된다고 되어 있습니다.

그래서 고유 값의 시작 위치만 알고 있으면 행 위치 배열을 다시 만들 수 있다고 되어 있는데요.

행 위치 배열이 위와 같이 순차적으로 1일 늘어나는 게 아니라면 어떻게 되는 건가요?

가령, 행 위치 배열 = [0, 0, 0, 2, 2, 2, 4, 5] 와 같이 0, 1, 2, 3, 4, 5로 차례로 늘어나는 것이 아니라 0, 2, 4, 5와 같이 불연속적으로 늘어나도 CSR로 변환했을 때 원래의 행 위치 배열을 구할 수 있는 것인가요?

문서를 기준으로 특정 문서에는 모든 값이 0으로 채워진다면 위와 같이 불연속적인 값이 나올 것 같습니다.

하지만 모든 값이 0으로 채워진 문서는 공백인 문서이므로 고려하지 않는 것인가요? 감사합니다.

통계 python 머신러닝 배워볼래요?

답변 1

0

권 철민

안녕하십니까,

불연속적으로 늘어나면 즉 중간에 0으로만 가득찬 ROW가 있으면 앞 위치 인덱스를 동일하게 반복합니다.

from scipy import sparse
import numpy as np

dense2 = np.array([[1,0,0,0,0,0],
             [0,0,0,0,0,0],
             [0,6,0,3,0,0],
             [0,0,0,0,0,0],
             [0,0,0,0,0,0],
             [0,0,0,7,0,8],
             [1,0,0,0,0,0],
             [2,1,8,0,0,0]])

data2 = np.array([1, 6, 3, 7, 8, 1, 2, 1, 8])
row_pos = np.array([0, 2, 2, 5, 5, 6, 7, 8, 9])
col_pos = np.array([0, 1, 3, 3, 5, 0, 0, 1, 2])

# 행 위치 배열의 고유한 값들의 시작 위치 인덱스를 배열로 생성하되, 0으로 가득찬 행은 앞 위치 인덱스를 반복한 값으로 표시
row_pos_ind = np.array([0, 1, 1, 3, 3, 3, 5, 6, 9])

# CSR 형식으로 변환
sparse_csr = sparse.csr_matrix((data2, col_pos, row_pos_ind))
print(sparse_csr.toarray())

아래와 같이 csr 매트릭스에서 바로 확인 할 수도 있습니다. indptr 속성값이 행위치 배열의 위치 인덱스 입니다.

from scipy import sparse
import numpy as np

dense2 = np.array([[1,0,0,0,0,0],
             [0,0,0,0,0,0],
             [0,6,0,3,0,0],
             [0,0,0,0,0,0],
             [0,0,0,0,0,0],
             [0,0,0,7,0,8],
             [1,0,0,0,0,0],
             [2,1,8,0,0,0]])

sparse_csr = sparse.csr_matrix(dense2)
print(sparse_csr.toarray())

print(sparse_csr.indices, sparse_csr.indptr)

늘 좋은 질문 감사합니다.

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

6

1

안녕하세요 열심히 수강중인 학생입니다

0

63

2

정수 인덱싱

0

68

2

넘파이 오류

0

85

2

11강 numpy의 axis 축 질문 드립니다.

0

85

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

79

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

70

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

75

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

64

2

5강 강의 오류가 있어요.

0

84

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

72

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

69

3

파이썬 다운그레이 후 사이킷런 재설치

0

117

2

좋은 강의 감사합니다.

0

74

2

scoring 함수 음수값

0

67

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

100

2

분류 평가 정확도 예측

0

79

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

99

1

카카오톡 채널 있나요

0

108

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

190

2

pca 스케일링 관련하여 질문드립니다.

0

100

2

주피터 대신 구글 코랩

0

172

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

148

2

실루엣 스코어..

0

86

2