Python 无法将numpy数组重塑为矢量

Python 无法将numpy数组重塑为矢量,python,arrays,numpy,matrix,scikit-learn,Python,Arrays,Numpy,Matrix,Scikit Learn,我正在尝试将(N,1)数组d重塑为(N,)向量。根据我的经验和numpy,以下代码应将其转换为向量: 从sklearn.kneighbors\u图导入 从sklearn.dataset导入make_圆 十、 标签=制作圆(n_样本=150,噪声=0.1,系数=0.2) A=kneighbors_图(X,n_近邻=5) d=np.和(A,轴=1) d=d。重塑(-1) 然而,d.shape给出了(1150) 当我完全复制链接解决方案的代码时,也会发生同样的情况。为什么numpy数组没有重新整形?

我正在尝试将(N,1)数组
d
重塑为(N,)向量。根据我的经验和numpy,以下代码应将其转换为向量:

从sklearn.kneighbors\u图导入
从sklearn.dataset导入make_圆
十、 标签=制作圆(n_样本=150,噪声=0.1,系数=0.2)
A=kneighbors_图(X,n_近邻=5)
d=np.和(A,轴=1)
d=d。重塑(-1)
然而,
d.shape
给出了
(1150)


当我完全复制链接解决方案的代码时,也会发生同样的情况。为什么numpy数组没有重新整形?

问题是sklearn函数返回的最近邻图是一个
稀疏的.csr.csr\u矩阵。应用
np.sum
返回一个
numpy.matrix
,在我看来,这是一种不应该再存在的数据类型
numpy.matrix
s几乎与所有内容都不兼容,对其执行numpy操作会返回意外的结果

解决方案是将
numpy.csr.csr\u矩阵
转换为
numpy.array

A = kneighbors_graph(X, n_neighbors=5)
A = A.toarray()
d = np.sum(A, axis=1)
d = d.reshape(-1)
现在我们有了
d.shape=(150,)
A.sum(axis=1)。A1
是一个快捷方式