《机器学习算法原理与编程实践》第一章 机器学习基础 代码错误ValueError: Masked arrays must be 1-D
mytest1.py源代码如下
// An highlighted block
#coding:utf-8
#Filename:mytest1.py
import numpy as np #导入NumPy库
from numpy import * #导入NumPy库
import matplotlib.pyplot as plt
#测试数据集————二维list
dataSet = [[1,2],[3,4],[5,6],[7,8],[9,10]]
dataMat = mat(dataSet).T #将数据集转换为NumPy矩阵,并转秩
plt.scatter(dataMat[0],dataMat[1],c = 'red',marker = 'o') #绘制数据散点图
#绘制直线图形
X = np.linspace(-2,2,100) #产生直线数据
#建立线性方程
Y = 2.8*X+9
plt.plot(X,Y) #绘制直线图
plt.show() #显示绘制效果
运行错误提示:
Traceback (most recent call last):
File “test.py”, line 12, in
plt.scatter(dataMat[0],dataMat[1],c = ‘red’,marker = ‘o’) #绘制数据散点图
File “C:\Python27\lib\site-packages\matplotlib\pyplot.py”, line 3258, in scatter
edgecolors=edgecolors, data=data, **kwargs)
File “C:\Python27\lib\site-packages\matplotlib_init_.py”, line 1819, in inner
return func(ax, *args, **kwargs)
File “C:\Python27\lib\site-packages\matplotlib\axes_axes.py”, line 3838, in scatter
x, y, s, c = cbook.delete_masked_points(x, y, s, c)
File “C:\Python27\lib\site-packages\matplotlib\cbook.py”, line 1857, in delete_masked_points
raise ValueError(“Masked arrays must be 1-D”)
ValueError: Masked arrays must be 1-D
解决办法:
将 plt.scatter(dataMat[0],dataMat[1],c = ‘red’,marker = ‘o’)
改为plt.scatter(dataMat[0].tolist(),dataMat[1].tolist(),c = ‘red’,marker = ‘o’)
运行效果: