如何在Matplotlib中使用带有大数组的meshgrid?

时间:2015-06-09 14:24:45

标签: python arrays matplotlib scipy scikit-learn

我已经在sklearn的100x85阵列上训练了机器学习二元分类器。我希望能够改变数组中的2个特征,比如第0列和第1列,并生成轮廓或表面图,显示在一个类别中预测的下落概率如何在表面上变化。

我似乎有理由使用以下内容:

X = 100 x 85用于训练集的数据阵列 clf =训练有素的2级分类器

x = np.array(X)
y = np.array(X)

x[:,0] = np.linspace(0, 100, 100)
y[:,1] = np.linspace(0, 100, 100)
xx, yy = meshgrid(x,y)

下一步是使用

clf.predict_proba(<input arrays>)

然后绘图,但使用meshgrid会产生两个8500x8500矩阵,这些矩阵无法在我的分类器中使用。

如何在网格中的每个点获得必要的100x85向量,以便将pred_proba与我的分类器一起使用?

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

正如@wflynny上面所说,你需要给np.meshgrid两个一维数组。我们可以使用X.shape来创建您的xy数组,如下所示:

X=np.zeros((100,85)) # just to get the right shape here

print X.shape
# (100, 85)

x=np.arange(X.shape[0])
y=np.arange(X.shape[1])

print x.shape
# (100,)
print y.shape
# (85,)

xx,yy=np.meshgrid(x,y,indexing='ij')

print xx.shape
#(100, 85)
print yy.shape
#(100, 85)