学了一段时间机器学习和和深度学习文章,下载了机器学习库,运行了几个案例程序,决定开始写自己的程序
这个程序是从网上下载一些数据,然后整理这些数据,放到数据,重新排列组合,最后调用机器学习库训练和预测,可是当我要写程序的时候却行不通了。
读了一本董付国的《python程序设计开发宝典》
首先以前用c/c++.java/C#定义数据数组的方法行不通了,因为python没有数据类型,数组就是列表,但是能直接用吗?数组和普通变量怎么区别?其实数组是这样定义的
arr=[]
有点像javascript
方括号中间可以用语句来初始化,这是python奇特的地方,然后添加数据就用
arr.append(var)
列表还有很多功能函数。比如sort,可以用坐标直接访问,比如 arr[1],列表中列表可以这样访问 arr[0][1]。
现在可以处理数组了
调用机器学习类库,只要import类库后可以调用,很方便,python不叫类库,而是叫模块
knn = neighbors.KNeighborsClassifier(calrow)
#训练数据集
knn.fit(trainlist_x, trainlist_y)
predict = knn.predict(testlist_x)
如何用循环,while循环跟我们一直用的 差不多
while i<10:
i++
for循环可就很另类了,不同其他语言,不过学过C#类的,有点类似遍历,叫foreach a in list
从1到100循环
for i in range(1,101) 左闭右开,就是 1<=i<101,python支持这种语法,好厉害,比如 0<i<100,不用分来两个写。
如果你没有读过python书,凭字面看肯定错的。
python真另类,为什么不用for i=1 to 99呢?或者C#的for。
语句怎么没有开始结束呢?python作者真牛,语句块的开始结束定义居然用缩进来表达
语句块开始用:冒号表示,子语句就用缩进tab键来区分,一个缩进就是子语句块了,可以逐次缩进
if i<5:
(tab)sum+=i
else:
(tab)sum+=i+1
真大胆啊!不过就像汉字语句以前没有标点符号照样可以阅读。
elseif要写成elif
我看到shell脚本语言结束使用倒写关键字,比如fi,esle,php的变量用 $开头,各显神通。python变量可不需要特别的定义,类似C变量定义。
python还支持lambda。
lambda我的理解就是一句话函数,不用再单独写个函数了,可以不停嵌套,算了,我不敢用。
类,继承,多态
例外处理
还有正则表达式
python真牛,简直是C#,要什么功能就引入模块就行,这些模块大家写好了上传给大家用,下载就能用,包括各种机器学习模块!
python模块甚至比.net类库丰富而强大,就说机器学习,python有很多类库,C#为何没有呢?没人做?
我觉得把 C#去掉类型定义,就接近python,语法是接近javascript,但功能接近python
C#有的功能python都有,感觉python简直逆天了。
当然python有机器学习库,是开发人工智能的优秀语言,不过语法不太直观,要深入学习才行,可能很多人转不过弯。
python语法简洁,写的程序比较短,对高手来说可能不是问题。
我以前认为C#是最好的语言了,现在python会让你不再认可这样的观点。
只有弱智才需要直观的语言,要进入python就要接受python的规则,即使你不认可。
入门很重要,先买一本 python书籍阅读吧。