Python模块的导入(import还是from…import)

1.背景介绍

在很多情况下,用户需要使用多个函数共同完成一项数据分析或学习任务,对此Python提供了模块。所谓模块,是一种以“.py”为文件扩展名的Python 文件,里面包含着很多集成的函数,可以很方便地被其他程序和脚本导入并使用。我们可以将模块理解为一辆汽车,代码就是一个个细小的汽车零部件,函数就是由一个个零部件组成的标准化的发动机、轮胎等。上一节我们提到,使用函数这一标准化代码块可以大大便利用户的操作,但是Python内置的函数并不多。所幸的是,Python提供了很多开放的、可以快速调用的模块,这些模块中包含着可供分析的函数,完全可以达到便捷开展机器学习或数据统计分析的效果。不仅在Python的标准库中有很多标准模块,还有很多第三方模块。截至目前,Python提供了大约200多个内置的标准模块,涉及数学计算、运行保障、文字模式匹配、操作系统接口、对象永久保存、网络和Internet脚本、GUI建构等各个方面。

2.使用import语句导入模块

我们可以使用import语句导入模块,它的基本语法格式为:

import modulename [as subname]

其中,modulename为模块名,as subname为可选参数,用于设置模块名的简称(即别名),因为如果模块名较为复杂,则反复调用时可能不太方便,使用简称便于操作。例如,输入以下代码导入pandas模块:

import pandas as pd # 导入pandas模块,并简称为pd

用户还可以一次性导入多个模块,多个模块之间用英文逗号(,)分隔。例如,输入以下代码可一次性导入pandas和numpy模块:

import pandas,numpy # 一次性导入pandas和numpy模块

在使用import语句导入模块时,每执行一行import语句就会创建一个新的命名空间,然后在该命名空间内执行与该模块相关的所有语句。各个命名空间是相对独立的,因此在调用模块中的变量、函数时,需要在变量名、函数名的前面加上“模块名.”作为前缀,以便在命名空间内搜索。

当使用import语句导入模块时,Python会按照以下顺序搜索模块:

(1)在当前执行Python脚本文件所在的目录下查找。

(2)在Python的Path环境变量下的每个目录中查找。

(3)在Python的默认安装目录下查找。

上述目录可通过以下代码查看:

import sys # 调用模块sys

print(sys.path) # 输出sys.path

运行结果如图3.8所示。(视具体安装的情况而定,以下结果为在笔者所用的计算机中执行的结果)

如果要导入的模块并未被搜索到(未出现在上述目录中),将无法成功导入模块。

3.使用from…import语句导入模块

如果用户不想每次导入模块时都创建一个与模块相匹配的命名空间,而是希望能直接将想要的变量、函数或类统一导入当前的命名空间中,则可以使用from…import语句导入模块。通过该方法导入的模块都集成到了当前的一个命名空间中,用户不用在变量名、函数名或者类名的前面加上“模块名.”作为前缀,直接使用变量名、函数名或者类名即可。当然这同样要求在使用from…import语句导入模块时,一定要保证所导入的变量名、函数名或者类名在当前命名空间内是唯一的,否则就会无法区分而造成冲突。该语句的基本语法格式为:

from modulename import member

其中,modulename为模块名;member为所需的变量、函数或类,可同时导入多个member,多个member之间用英文逗号(,)分隔。例如,在K近邻算法中,需要一次性导入模块sklearn.neighbors中的函数KNeighborsClassifier和RadiusNeighborsClassifier,代码为:

from sklearn.neighbors import KNeighborsClassifier, RadiusNeighborsClassifier

如果需要导入模块中的全部内容,则可使用星号通配符(*)。例如,在K近邻算法中,需要一次性导入模块sklearn.neighbors中的全部内容,代码为:

from sklearn.neighbors import * # 导入模块sklearn.neighbors中的全部内容

可调用dir()函数来查看模块模块sklearn.neighbors中的全部内容。例如,输入代码print(dir())运行结果如图3.9所示。

4.学习Python的心得体会与书目推荐

入门学Python,也真的不难。关键是找到学习入口,如果只是看语法,会很枯燥,也记不住。需要找到应用场景,也就是说要用Python来干什么?比如做个表、做个图,还是开展个数据分析、甚至建个模型。少儿编程很多都用Python了,为什么小孩们都能学的进去?因为学完了可以接着用于开发一个小游戏,回馈很快。从我周边朋友的经历来看,真正学进去的,基本上都是有数据分析需要的朋友们,因为工作中真的需要。所以我给大家推荐的学习场景入口是数据应用。

针对数据分析或机器学习推荐两本入门级的图书:《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。这两本书的特色是在数据分析、机器学习各种算法的介绍方面通俗易懂,较少涉及数学推导,对数学基础要求相对不高,在python代码方面讲的很细致,看了以后根据自身需要选取算法、优化代码、科学调参。都有配套免费提供的源代码、数据文件和视频讲解,也有PPT、思维导图、习题等。

为什么说这两本书值得?首先说《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社),内容非常详实,包含了Python和机器学习,相当于一次获得了两本书。在讲解各类机器学习算法时,逐一详解用到的各种Python代码,针对每行代码均有恰当注释(这一点基本上是大多数书目做不到的)。这本书在出版之前曾开发成9次系列课程,在某股份制银行全行范围类开展培训,490人跟随杨维忠老师上课学习(课程限报490人),培训完成后课程在知鸟平台上回放超过3万人次。很多银行员工通过这些学习一下子就学会了Python,并且用于工作中开展数据分析、机器学习、数据可视化等,这本书也被多家商业银行选做数字化人才培训教材,成为银行员工的一本网红书。

《Python数据科学应用从入门到精通》一书,旨在教会读者实现全流程的数据分析,并且相对《Python机器学习原理与算法实现》一书增加了很多概念性、科普性的内容,进一步降低了学习难度。国务院发展研究中心创新发展研究部第二研究室主任杨超 ,山东大学经济学院金融系党支部书记、副主任、副教授、硕士生导师张博,山东管理学院信息工程学院院长 袁锋 教授、硕士生导师,山东大学经济学院刘一鸣副研究员、硕士生导师,得厚投资合伙人张伟民等一众大牛联袂推荐。书中全是干活,买这一本书相当于一下子得到了5本书(Python基础、数据清洗、特征工程、数据可视化、数据挖掘与建模),而且入门超级简单,不需要编程基础,也不需要过多数学推导,非常适用于零基础学生。全书内容共分13章。其中第1章为数据科学应用概述,第2章讲解Python的入门基础知识,第3章讲解数据清洗。第4~6章介绍特征工程,包括特征选择、特征处理、特征提取。第7章介绍数据可视化。第8~13章介绍6种数据挖掘与建模方法,分别为线性回归、Logistic回归、决策树、随机森林、神经网络、RFM分析。从数据科学应用和Python的入门,再到数据清洗与特征工程,最终完成数据挖掘与建模或数据可视化,从而可以为读者提供“从拿到数据开始,一直到构建形成最终模型或可视化报告成果”的一站式、全流程指导。

两本书随书赠送的学习资料也很多,包括全部的源代码、PPT、思维导图,还有10小时以上的讲解视频,每一章后面还有练习题及参考答案,还有学习群,相对于只看网络上的视频,一方面更加系统、高效,另一方面照着书一步步操作学起来也事半功倍。全网热销中,当当、京东等平台搜索“Python机器学习 杨维忠”“Python数据科学 杨维忠”即可。

Python数据科学应用从入门到精通 京东链接​item.jd.com/14220836.html

Python机器学习原理与算法实现 京东链接​item.jd.com/13647545.html

《Python机器学习原理与算法实现》(杨维忠、张甜著,2023年2月,清华大学出版社),适用于学习Python/机器学习

《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)适用于学习数据分析、数据科学、数据可视化等。

创作不易,恳请多多点赞,感谢您的支持!也期待大家多多关注我,让我共同学习数据分析知识。

  • 19
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

数据科学作家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值