用python写了一个机器学习程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinox2010p1/article/details/77543383

学了一段时间机器学习和和深度学习文章,下载了机器学习库,运行了几个案例程序,决定开始写自己的程序

这个程序是从网上下载一些数据,然后整理这些数据,放到数据,重新排列组合,最后调用机器学习库训练和预测,可是当我要写程序的时候却行不通了。

读了一本董付国的《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书籍阅读吧。


猜你喜欢

转载自blog.csdn.net/sinox2010p1/article/details/77543383
今日推荐