Сохранить numpy разреженную матрицу в файл

#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.