如何从 Numpy 矩阵传递到 Numpy 数组



我是Python和Numpy的新手,所以我的问题标题可能是错误的。

我从 matlab 文件加载一些数据

data=scipy.io.loadmat("data.mat")
x=data['x']
y=data['y']
>>> x.shape
(2194, 12276)
>>> y.shape
(2194, 1)

y是一个向量,我想有y.shape = (2194,).

我不知道(2194,)(2194,1)之间的区别,但似乎sklearn.linear_model。LassoCV 遇到错误,如果您尝试加载y以便y.shape=(2194,1) .

那么我怎样才能改变我的y向量才能y.shape=(2194,)呢?

首先转换为数组,然后挤压以删除多余的维度:

y = y.A.squeeze()

分步:

In [217]: y = np.matrix([1,2,3]).T
In [218]: y
Out[218]: 
matrix([[1],
        [2],
        [3]])
In [219]: y.shape
Out[219]: (3, 1)
In [220]: y = y.A
In [221]: y
Out[221]: 
array([[1],
       [2],
       [3]])
In [222]: y.shape
Out[222]: (3, 1)
In [223]: y.squeeze()
Out[223]: array([1, 2, 3])
In [224]: y = y.squeeze()
In [225]: y.shape
Out[225]: (3,)

相关内容

  • 没有找到相关文章

最新更新