2014-02-26 2 views
0

데이터 집합이 있고 두 번째 numpy 배열로 변환해야합니다. 데이터는 내가 어떻게 그것을 구현해야 그것은이2D numpy 배열로 데이터를 생성하는 방법

  doc1 doc2 doc3.... 
term1  1  5  6 
term2  0  4  1 
term3  6  8  10 
. 
. 

같은 2D NumPy와 배열에 있어야 할

term = which contains the words 
document_number= which has the doc number 
tf-idf= which contain the tf-idf of each word with respect to doc in ordered manner 

처럼?

+2

도움을 얻기 위해 더 많은 정보를 입력해야합니다. – Hammer

+0

['numpy.matrix'] (http://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix)를 의미합니까? .html)? – Menno

+0

또한 pandas DataFrames를 확인하십시오. http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe –

답변

1

tf-idf의 구조에 대한 설명이 명확하지 않습니다. 그래서 저는 여러분의 데이터 구조에 대해 몇 가지 가정을해야합니다.

term_len = len(term) 
doc_len = len(document_number) 

그래서 tf-idf 모든 문서의 첫번째 기간의 주파수 등 다음 두 번째 기간 동안 거기에 있고, 플랫 목록 (되지리스트 목록)라고 가정하면.

term_freq = numpy.zeros((term_len, doc_len), dtype=int) 
for (i, freq) in enumerate(tf_ids): 
    term_freq[i // term_len, i % doc_len] = freq 

반대의 경우 true 일 경우 모듈로 및 나누기 연산을 수행하십시오.

+0

귀하의 가정은 맞지만 modulo 및 division 작업이 사용되지 않습니다. 사실 나는 파이썬을 처음 사용합니다. 그것은 2D 배열 제목입니까? – DummyGuy

+1

2D 배열은 행렬과 같습니다. 그래서 여러분은'N' 행과'M' 행을가집니다. 치수는'N x M'입니다. 'N * M' 요소를 포함하는 목록이 있습니다. 'enumerate'는 0에서'N * M - 1'까지의 실행 인덱스를 만듭니다. 이 인덱스를 열과 행 인덱스에 매핑하려고합니다. 따라서 모듈러스를 사용하면 색인을 신속하게 순환 할 수 있습니다. – Midnighter

+0

설명 주셔서 감사합니다. 그러나 ValueError가 발생합니다 : float()에 대한 유효하지 않은 리터럴 : 0.0,0.1524,0.0,0.45678 오류 – DummyGuy

관련 문제