Python磕磕绊绊第3ban

(一)科学计算需要用到很多外包:numpy,scipy,matplotlib,sklearn等,https://www.lfd.uci.edu/~gohlke/pythonlibs/有需要的包下载地址,包名字中的cp**,其中**代表你所安装的python版本号,比如你安装的是python2.7,那么,请下载cp27的包

(二)当你已经import了一个包,也引用了里面的某个属性,但是程序报错说没有这个属性;例如:sklearn-doesnt-have-attribute-datasets;请参见https://stackoverflow.com/questions/41467570/sklearn-doesnt-have-attribute-datasets中的回答

(三)画散点图pyplot.scatter()时,没有出现图片,需要pyplot.show()来显示图片

(四)flatten()是numpy的一个方法,array按行展开成一维数组

(五)画三维图是,报如下错误:


经检查,是X,Y,Z三个轴的数据没有整理清楚,meshgrid()方法使用不明确;

原来里面的X,Y,Z不是我以为的一维数组,而是要用坐标轴布局思想去设置,留意meshgrid()方法,举例说明

xe = np.array(range(-3, 4))
xec = np.array(
range(-2, 3))
fig = plt.figure()
ax = Axes3D(fig)
Y
, X = np.meshgrid(xec, xe)  # 生成的X,Yxe_dimension行,xec_dimension列的矩阵,该函数主要用于生成网格函数
Z =fuzzy_table.flatten().reshape(X.shape)
ax.plot_surface(X
, Y, Z, rstride=1, cstride=1, cmap='rainbow')
plt.show()

xe = [-3, -2, -1, 0, 1, 2, 3]

xec = [-2, -1, 0, 1, 2]

Y, X = np.meshgrid(xec, xe):  #Y横轴数据,X纵轴数据

Y = [[-2, -1, 0, 1, 2],

[-2, -1, 0, 1, 2],

[-2, -1, 0, 1, 2],

[-2, -1, 0, 1, 2],

[-2, -1, 0, 1, 2],

[-2, -1, 0, 1, 2],

[-2, -1, 0, 1, 2]]

X = [[-3, -3, -3, -3, -3],

[-2, -2, -2, -2, -2],

[-1, -1, -1, -1, -1],

[0, 0, 0, 0, 0],

[1, 1, 1, 1, 1],

[2, 2, 2, 2, 2],

[3,3, 3, 3, 3]]

所以Z的数据要和X,Y的数据对应上。





猜你喜欢

转载自blog.csdn.net/faylpf/article/details/79108995