#numpy #save #scikit-learn #sparse-matrix
#numpy #Сохранить #scikit-learn #разреженная матрица
Вопрос:
Я хочу сохранить результат TfidfVectorizer в sklearn.feature_extraction.text в текстовый файл для дальнейшего использования. Как я обнаружил, это разреженная матрица типа «. Однако, когда я пытаюсь сохранить ее, используя следующий код
np.savetxt('Feature_TfIdf.txt', X_Tfidf, fmt='%2.6f')
Я получаю ошибку, подобную этой
IndexError: tuple index out of range
Ответ №1:
Используйте joblib.dump
или sklearn.externals.joblib.dump
для этого. NumPy не получает SciPy разреженные матрицы.
Комментарии:
1. Хотя
np.savetxt
не удается сохранить разреженную матрицу, поскольку у нее нет метода для преобразования ее в текст,np.save
это работает — она оборачивает разреженную матрицу в массив object dtype и сохраняет его как двоичный файл.2. Не могли бы вы привести пример? @Fred
Ответ №2:
Простой пример:
np.save('TfIdf.pkl',tfidf)
Комментарии:
1. И загрузите с
np.load('TfIdf.pkl.npy', allow_pickle=True)
Ответ №3:
Мне удается решить проблему, преобразовав разреженную матрицу в полную матрицу, а затем сохранить матрицу и сохранить результаты. Однако этот подход бесполезен для больших массивов, поэтому лучше сохранить матрицу в формате .pkl.