私はPython2とPython3でargsortを使うことで、なぜ別の結果が得られるのか不思議です。 Python2ではPython3のargsort
## 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]
を、freqrank
のように結果が含まれています: array([4215, 2825, 7066, ..., 539, 3188, 5239])
次のように私のコードがあります。しかし、Python3ではfreqrank
にはarray([0])
しか含まれておらず、この結果は最後のコード行にIndexError: too many indices for array
というエラーを引き起こします。 freqrank
にPython3でソートされたリストがあるのと同じ結果を得るにはどうすればいいですか?あるいは、上記のコードをPython3で動作させるにはどうすればよいですか?ありがとう。
これは大いに役立ちます。ご協力いただきありがとうございます! – tzu