-1
我想知道爲什麼我通過在Python2和Python3中使用argsort得到不同的結果。我的代碼如下:argsort在Python3
## Import Data
allWrdMat10 = pd.read_csv("../../data/allWrdMat10.csv.gz",
encoding='CP932')
## Set X as CSR Sparse Matrix
X = np.array(allWrdMat10)
X = sp.csr_matrix(X)
dict_index = {t:i for i,t in enumerate(allWrdMat10.columns)}
freqrank = np.array(dict_index.values()).argsort()
X_transform = X[:, freqrank < 1000].transpose().toarray()
freq1000terms = dict_index.keys()
freq1000terms = np.array(freq1000terms)[freqrank < 1000]
在Python2,freqrank
包含結果爲: array([4215, 2825, 7066, ..., 539, 3188, 5239])
。但是,在Python3中,freqrank
僅包含array([0])
,並且此結果進一步導致代碼的最後一行中的錯誤爲IndexError: too many indices for array
。我如何獲得與Python2中的排序列表freqrank
相同的結果?或者,我怎樣才能使上面的代碼在Python3中工作?謝謝。
這有很大的幫助。謝謝你的幫助! – tzu