Я пытаюсь построить график рассеяния, используя метод .scatter ниже. Вот

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

С классами input / args ниже:

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

Однако python выдает ошибку значения, как показано здесь: изображение ошибки

13
houdinisparks 28 Май 2017 в 08:20

2 ответа

Лучший ответ

Поместите вещь в скобки:

plt.scatter([X[:,0]],[X[:,1]])
23
Dev-iL 25 Июн 2017 в 09:23

Мой опыт работы с этим связан с тем, что ваш X - нюанс matrix.

По сути, всякий раз, когда вы пытаетесь изолировать строку от матрицы, она возвращает другую матрицу. Кажется, у Numpy есть ограничение на то, что матрицы должны быть двумерными, поэтому он не может сказать, что это 1-й массив, и не может его замаскировать (следовательно, ошибка 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')
6
Jeeter 26 Июн 2018 в 14:59