ValueError: Masked arrays must be 1-D

191 阅读1分钟

问题说明

使用numpy画散点图出现以上问题。(《机器学习-算法原理与编程实践》第7页)

原代码如下:

import numpy as np
import matplotlib.pyplot as plt

dataSet=np.random.rand(2,10)
dataSet=np.mat(dataSet)#1

print(dataSet)
plt.scatter(dataSet[0],dataSet[1])#2
plt.show()

解决方案

方法很多,如
1. 去掉#1处代码(似乎等于没说)
2. #2改为plt.scatter(dataSet[0].tolist(),dataSet[1].tolist())
plt.scatter(array(dataSet[0]),array(dataSet[1].tolist()))

\

type(dataSet[0])==<class 'numpy.matrixlib.defmatrix.matrix'>是矩阵对象不是一维(1-D)的

这里写图片描述