2017-10-22 3 views
0

저는 scipy 스파 스 행렬 (title)과 파이썬리스트 index을가집니다. 목록에는 title 행의 행에 해당하는 정수가 포함됩니다.인덱스 값 목록을 기반으로 2 개의 행렬을 만듭니다.

  • 하나는 인덱스 번호가 다른 행렬의 모든 행을 포함해야 index

  • 에있는 경우를 제외하고 title의 모든 행을 포함해야한다 :이에서 나는 2 개의 새로운 scipy 스파 스 매트릭스를 생성 할 title하는 인덱스 번호는 index

예에 있습니다.

[[ 1. 1. 1. 1. 1.] 
[ 1. 1. 1. 1. 1.] 
[ 1. 1. 1. 1. 1.]] 

print(matrix2.todense())에 대해 원하는 출력은 다음과 같습니다 :

import numpy as np 
from scipy import sparse 
titles = sparse.csr_matrix(np.ones((5,5))) 
index = [3,2] 

print(matrix1.todense())에 대해 원하는 출력 인 경우

[[ 1. 1. 1. 1. 1.] 
[ 1. 1. 1. 1. 1.]] 
+0

팬더와 아무 관련이 없습니다. 또한 [mcve]는 어때? –

+1

@ cᴏʟᴅs edit 편집을 참조하십시오. – jdoe

답변

1

당신은 전용 인덱스 적절 단지 인덱스 titles을 찾을 수 np.setdiff1d을 사용할 수 있습니다 .

idx1 = [3, 2] 
idx2 = np.setdiff1d(np.arange(titles.shape[0]), idx1) 

matrix1 = titles[idx2].todense() 
matrix2 = titles[idx1].todense() 

print(matrix1) 
[[ 1. 1. 1. 1. 1.] 
[ 1. 1. 1. 1. 1.] 
[ 1. 1. 1. 1. 1.]] 

print(matrix2) 
[[ 1. 1. 1. 1. 1.] 
[ 1. 1. 1. 1. 1.]] 
+1

@jdoe 편집 해 주셔서 감사합니다. –