import xlrd, xlwt
import scipy as sp
import scipy.io
import pandas as pd
import matplotlib.pyplot as plt
import pylab
from scipy.sparse import csc_matrix
%matplotlib inline
FileString = r'/content/drive/MyDrive/Thesis/EXIOBASE_3rx_aggLandUseExtensions_2015_pxp.mat'
MRIO = scipy.io.loadmat(FileString)
Regions = MRIO['IO']['A']
IN: Regions
OUT: array([[<42800x42800 sparse matrix of type '<class 'numpy.float64'>'
with 5986549 stored elements in Compressed Sparse Column format>]],
dtype=object)
IN: Regions.todense()
OUT:
AttributeError Traceback (most recent call last)
<ipython-input-116-3ef413dd7ae9> in <module>()
----> 1 Regions.todense()
AttributeError: 'numpy.ndarray' object has no attribute 'todense'
I am trying to convert this sparse matrix from a MATLAB file into a dense matrix, thus I applied todense() function but I don't know why it doesn't work. Your help will be highly appreciated Thanks
You need to unpack:
This is a
ndarray
as shown by the error. It has shape (1,1),object
dtype. That one object is the sparse matrix. I deduced that from the display, thearray
,object
and [[...]]`.should work.
I'd suggest first displaying
I suspect in MATLAB this is a
cell
, with size (1,1).loadmat
makes a liberal use ofobject
dtype arrays to hold MATLABcell
andstruct
. Only a pure matrix becomes a numeric array.