web-dev-qa-db-ja.com

python 3散布図では、マスクされた配列を使用していなくても、「ValueError:Masked array must be 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は次のように値エラーをスローしています: error image

13
houdinisparks

かっこで囲みます:

plt.scatter([X[:,0]],[X[:,1]])
18
a good guy

これに関する私の経験は、あなたのXが派手なmatrixだからです。

基本的に、行を行列から分離しようとすると、別の行列が返されます。 Numpyには、行列mustが2次元であるという制約があるようです。そのため、それが1次元配列であることを認識できず、マスクすることもできません(そのため、Masked arrays must be 1-Dエラー)

私にとっての解決策は、次のようにして単にXnumpy.arrayに「キャスト」することでした。

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