我正在尝试将一个大维矩阵减少到仅 2D,我正在使用 2D 数组的示例,它有效,但我需要为更高维的散点做同样的事情。我有两个类,每个类都有 50x20 维特征空间的矩阵。对于我的例子,我有这些二维数组:rectangles = np.array([[1,1.5,1.7,1.45,1.1,1.6,1.8],[1.8,1.55,1.45,1.6,1.65,1.7,1.75]])triangles = np.array([[0.1,0.5,0.25,0.4,0.3,0.6,0.35,0.15,0.4,0.5,0.48],[1.1,1.5,1.3,1.2,1.15,1.0,1.4,1.2,1.3,1.5,1.0]])之后我找到了三角形和矩形类的均值# Calculate the mean vectors per classmean_rectangles = np.mean(rectangles,axis=1).reshape(2,1) mean_triangles = np.mean(triangles,axis=1).reshape(2,1)通过矩形和三角形类给出的值,我用它们来计算散点:scatter_triangles = np.dot((triangles-mean_triangles),(triangles-mean_triangles).T)scatter_circles = np.dot((circles-mean_circles),(circles-mean_circles).T)# Calculate the SW by adding the scatters within classes SW = scatter_triangles+scatter_circles+scatter_rectanglesprint(SW)plt.show()我想知道如何找到类内的散点并以完全相同的方式绘制它们,但对于更大的数据,恰好是 50x20 矩阵?
1 回答
MM们
TA贡献1886条经验 获得超2个赞
不幸的是,Numpy 不会将数组广播到列。尝试:
(np.array(c_A_array).T-c_A_array_mean).T
对于所有的减法。
这两个都试过了,我猜第二个更快:
np.array(c_A_array)-c_A_array_mean.reshape((5,1))
添加回答
举报
0/150
提交
取消