#python #r #numpy #sparse-matrix
#python #r #numpy #разреженная матрица
Вопрос:
У меня есть разреженная матрица numPy, сохраненная в виде файла .npz, который я хочу загрузить в R. Это то, что я пробовал:
library(reticulate)
np <- import("numpy")
npz_train <- np$load('netflix_matrix.npz')
df <- npz_train$f[["data"]]
Длина df равна 103327692, но для
npz_train_imgs$f[["shape"]]
[1] 17770 2649429
это общий размер, отличный от 103327692.
Я знаю, что это разреженная матрица, так как я могу прочитать ее как единое целое?
Я бы хотел, чтобы NAs был в пробелах.
Спасибо!
Комментарии:
1. Посмотрите на код для
save_npz
илиload_npz
, чтобы увидеть, как сохраняется и загружается разреженная матрица. Детали различаются в зависимости от формата. Если это обычныйcsr
формат,load
используется:cls((loaded['data'], loaded['indices'], loaded['indptr']), shape=loaded['shape'])
. Я считаюR
, что имеет разреженный формат, но вам нужно будет изучить его документы, чтобы определить, как его можно использовать с такими атрибутами.2. Это
shape
иdata
форма выглядят разумно для разреженной матрицы с разреженностью .002.data
имеет ненулевые значения этого большого массива. То, что вы называете «пробелами», — это нули.
Ответ №1:
Я понял это:
scipy <- import("scipy.sparse")
sparse_mat<- scipy$load_npz('netflix_matrix.npz')