Python进阶之路第一话之python引力

Python的魅力:我来引你中毒

我不想说一些Python是世界最好的编程语言之类的鬼话,在我看来,每一种编程语言都有他们各自擅长的领域和不擅长的领域。举个例子,我用一根针,来削铅笔,很费劲不能实现,拿过来一把小刀,很轻松就完成任务了,我认为刀子比针牛X;后来我需要缝衣服了,把刀子拿过来怎么缝也缝不好,结果用针很轻松的完成任务了,我又感觉针比刀子牛X。到底谁牛X?能够学会在不同的场合使用最合适的工具的人,才是最牛X的,而刀子和针,仅仅是一个没有思想的工具罢了,程序语言也是一样的。由于笔者相对于其他语言而言对Python了解的更深入一点,所以接下来我就讲讲我所了解的Python特点。

人生苦短,我学 Python !

Python的优点,以下大致列举三点:

  1. 首先从易学性上来说,python更容易上手,所以有’新手友好‘的语言的称号。Python原本就被设计成类似用英语表达一样,所以语法简单,没有像句法括号和大量的修饰词,易读易学。
  2. 从代码的应用范围来说,python更广,这也是很多公司选择python做开发的原因,像豆瓣、知乎、Facebook等等,就是python开发的。
  3. python是胶水语言,可以调用 c 的代码,在编写脚本方面,Python的脚本是真正的脚本,能够被解释器执行,而且使用Python更容易编写跨平台的脚本,甚至不需要重新编译。从应用领域来说,Python,本身语法简单且功能强大,能够通过编写脚本就提供优秀的解决方案,并能够快捷地部署在各个领域。

Python的应用方向

话不多说,先贴张图:
在这里插入图片描述
相信你能从这张图中清晰地看出关于Python的应用方向,至于各个方向具体详细的说明在这里就不一一列举了。为了引起各位准大佬对于学习Python的兴趣,接下来我会以一些爬虫和机器学习的案例来展示Python的强大,能动手的绝不XX,项目案例走起!

项目案例一:Python爬虫一键爬取百万数据
引入:什么是网络爬虫?

网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以自动化浏览网络中的信息,当然浏览信息的时候需要按照我们制定的规则进行,这些规则我们称之为网络爬虫算法。使用Python可以很方便地编写出爬虫程序,进行互联网信息的自动化检索。搜索引擎离不开爬虫,比如百度搜索引擎的爬虫叫作百度蜘蛛(Baiduspider)。百度蜘蛛每天会在海量的互联网信息中进行爬取,爬取优质信息并收录,当用户在百度搜索引擎上检索对应关键词时,百度将对关键词进行分析处理,从收录的网页中找出相关网页,按照一定的排名规则进行排序并将结果展现给用户。在这个过程中,百度蜘蛛起到了至关重要的作用。那么,如何覆盖互联网中更多的优质网页?又如何筛选这些重复的页面?这些都是由百度蜘蛛爬虫的算法决定的。采用不同的算法,爬虫的运行效率会不同,爬取结果也会有所差异。所以,我们在研究爬虫的时候,不仅要了解爬虫如何实现,还需要知道一些常见爬虫的算法,如果有必要,我们还需要自己去制定相应的算法,这些在以后都会为大家详细地讲解,在此,我们仅需要对爬虫的概念有一个基本的了解。

先看一段简单的爬虫代码,如下是爬取某网站小说排名的代码:

import requests
from lxml import etree
import json

url = 'https://www.17k.com/top/refactor/top100/06_vipclick/06_vipclick_serialWithLong_top_100_pc.html'

headers = {
'User-Agent': 'Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'
}

response = requests.get(url=url,headers=headers)
# print(response.status_code)
response.encoding='utf-8'  # 将网页的编码方式改为utf-8
# response.decoding='gbk'

html = etree.HTML(response.text)
# print(response.text)
all_list = html.xpath("//div[@class='BOX']//tr")
# print(all_list)
info_list = []
for item in all_list:
    info = {}

    info['排名'] = item.xpath("./td[1]/text()")
    info['作品类别'] = item.xpath(".//td[2]/a/text()")
    info['作品名称'] = item.xpath(".//td/a[@class='red']/text()")

    info['更新时间'] = item.xpath(".//td[5]/text()")

    info['状态'] = item.xpath(".//td[7]/text()")
    info['榜单数值'] = item.xpath(".//td[8]/text()")
    print(info)
    # print(info)
    info_list.append(info)

print(json.dumps(info_list))


效果如下:
在这里插入图片描述
好吧,你可能第一眼看它就感觉很low,但是,我可以明确的告诉你,爬虫行业有一句话叫:一切可见皆可爬!记住,是一切你能在网页上看到的东西!当然了,别在试图触碰法律的前提下哈,我们是祖国的接班人,是高素质人才!你掌握了某种技术如果损害了别人的利益,很可能会触碰法律的底线,作为一个技术追求者,你可以用于技术交流但千万别用于商业用途。你可以让你爬的数据变成你想要的样子,比如说你可以把爬到的数据保存成一个文档、表格或者用于数据分析的图表,如下图爬的是招聘信息封装的表格:在这里插入图片描述
当然了,我们也可以爬一些图片、音乐、视频等文件保存下来,方便随时查看,多开几个进程速度可以比你在网站上下载的快很多,毕竟节省时间就是节省生命嘛。

项目案例二:浅谈引入机器学习
什么是机器学习?

机器学习有下面几种定义:
(1)机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。
(2)机器学习是对能通过经验自动改进的计算机算法的研究。
(3)机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。
只看上面的定义你可能还不太明白,简单的来说,它是一门数据驱动的科学,基本思想是基于数据构建统计模型,并利用模型对数据进行分析和预测,使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率。机器学习方法按其实现的目标的不同,可以分为:监督学习、无监督学习和强化学习。想深入学习的,推荐吴恩达教授讲的机器学习,B站或者网易云课堂上面都有,中文字幕,既可以理解还可以练练英语,一举两得。下面简单的介绍一下学习机器学习一些必须库的强大:

1.Numpy—基础科学计算库

Numpy 是一个运行速度非常快的数学库,主要用于数组计算,包含:
1.一个强大的N维数组对象 ndarray
2.广播功能函数
3.整合 C/C++/Fortran 代码的工具
4.线性代数、傅里叶变换、随机数生成等功能
机器学习中非常核心的scikit-learn 使用Numpy数组形式的数据来进行处理,所以我们需要把数据都转化成Numpy数组的形式,为了更直观了解Numpy数组,下面写三行简单的代码:

import numpy
i = numpy.array([[520,13,14],[25,9,178]])
print("i:\n{}".format(i))

运行结果如图:
在这里插入图片描述

2.Scipy—强大的科学计算工具集

Scipy是一个用于数学、科学、工程领域的常用软件包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等,它可以用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。

下面我们用几行代码展示对角矩阵和sparse存储的矩阵:

import numpy as np
from scipy import sparse
matrix = np.eye(6)
sparse_matrix = sparse.csr_matrix(matrix)
print("对角矩阵:\n{}".format(matrix))
print("\nsparse存储的矩阵:\n{}".format(sparse_matrix))

运行效果如图:
在这里插入图片描述

3.pandas—数据分析的利器

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

下面用几行代码演示用pandas.DataFrame生成数据表:

import pandas
data = {"Name":["小玉","小倩","小雪","白白"],
        
        "City":["北京","上海","深圳","安工"],
        "Age":["18","20","38","16"],
        "Height":["162","158","169","168"]
       }
data_frame = pandas.DataFrame(data)
display(data_frame)

运行效果如下:
在这里插入图片描述

4.matplotlib—强大的Python绘图库

matplotlib 是 Python 的绘图库。 它可与 Numpy 一起使用,提供了一种有效的 MatLab 开源替代方案。 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。

稍微展示一下matplotlib的能力,上代码:

%matplotlib inline
import matplotlib.pyplot as plt
x = np.linspace(-20,20,10)
y = x**3 + 2*x**2 + 6*x + 5
plt.plot(x,y,marker = "o")

运行效果如下图:
在这里插入图片描述

5.scikit-learn—非常流行的Python机器学习库

scikit-learn这个库是Scipy(scientific Python,python科学计算)工具集的一部分,该工具集包含多个为科学计算尤其是数据分析而开发的库。它是一个建立在Scipy基础上的用于机器学习的Python模块。在不同的应用领域中,已经发展出了大量的基于Scipy的工具包,他们统称为Scikits。scikit-learn包含众多顶级机器学习算法,主要有六大基本功能,分别是分类、回归、聚类、数据降维、模型选择和数据预处理。而在所有的分支版本中,scikit-learn是最有名的,是开源的,任何人都可以免费地使用这个库或者进行二次开发。

结语

本博客只是大体的介绍了一下Python的能力,由于水平有限,各种不足,还请在评论中给出建议,非常感谢。说实话,之所以开始写技术博客是因为想着在未来的某一天能看看自己走过的路,既是回忆,也可以让自己加深理解。在学习中以后会定期更新,计划陆续会讲一些python全栈内容,包括python基础中需要着重注意的点,面向对象、模块和包,网络编程,前端(html + css + javascript),数据库,Django基础进阶实战,爬虫(基础,分布式),机器学习,数据分析等内容,希望自己能坚持下去,一路走来,初心不改。
最后,作为一个技术追求者,我想说一句,只要有颗炽热的心,就没有什么能够阻挡你对天马行空的向往。“自由、共享、交流、钻研”,这是一片由开源精神培育的热土。亲爱的朋友们,你们今天还好吗?当我们为着这些原生态的精神而热泪盈眶时,当梦想还在支撑着我们寂寂前行时,我们应该明白:就算生活已经让我们跌到尘埃里,在地狱里挣扎,我们的心依然可以向着阳光,坚信希望的到来。不让生活磨灭我们的个性,是对我们自己精神价值的鼓舞,这样,在未来的某一天,我们也许会感叹在生命中曾经有过一段无悔的激情岁月。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰履踏青云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值