(一)科学计算需要用到很多外包: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,Y是xe_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的数据对应上。