python 3 散点图给出"值错误:屏蔽数组必须是 1-D",即使我没有使用任何屏蔽数组



我正在尝试使用下面的 .scatter 方法绘制散点图。这里

ax.scatter(X[:,0], X[:,1], c = colors, marker = 'o', s=80, edgecolors = 'none')

使用下面的输入/参数类:

X[:,0]] type: <class 'numpy.matrixlib.defmatrix.matrix'> X[:,1]] type: <class 'numpy.matrixlib.defmatrix.matrix'> colors type: <class 'list'>

但是,Python 抛出了一个值错误,如下所示:错误图像

把东西放在括号里:

plt.scatter([X[:,0]],[X[:,1]])

我的经验是因为你的X是一个麻木matrix

本质上,每当您尝试将一行与矩阵隔离时,它都会返回另一个矩阵。Numpy 似乎有一个约束,即矩阵必须是二维的,所以它无法分辨它是一个 1-D 数组,也无法屏蔽它(因此Masked arrays must be 1-D错误(

对我来说,解决方案是简单地将X"投射"到numpy.array

X = np.array(X)
ax.scatter(X[:,0], X[:,1], c = colors, marker = 'o', s=80, edgecolors = 'none')