天天看点

ValueError: Masked arrays must be 1-D

问题说明

使用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      

解决方案

方法很多,如

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)的      

继续阅读