当前位置: 首页 > 编程日记 > 正文

如何搭建一个高效的Python开发环境

“工欲善其事,必先利其器”,这里我们来搭建一套高效的 Python 开发环境,为后续的数据分析做准备。

关于高效作业,对于需要编写 Python 代码进行数据分析的工作而言,主要涉及两个方面。

1. 一款具备强大的自动完成和错误提示的开发工具

Python 丰富的函数库和组件库是这门语言强大的核心原因,但我们不可能去记忆所有的方法名和参数名,往往只能记住一些常用的或者某个方法开头的几个字母。这个时候一个好的开发工具就需要能聪明地“猜”出你想输入的代码,并给出候选列表方便你选择(类似于输入法的字词提示功能)。

另外,当你输入错误的时候,这个工具能够提示你具体是哪里错了,建议改成什么,从而大幅提升编写效率。在别人还在查到底是哪个单词拼错了导致代码跑不起来的时候,你已经写完一个完整的模块了。

2. 掌握快捷键

Python 数据分析需要边写边看结果,甚至每写两行代码就需要点击运行、新建文本段落、代码段落等操作。所以熟练地掌握快捷键,可以使绝大多数的操作都不需要鼠标,手不用离开键盘就能完成,起到事半功倍的效果。

整个配置过程相比传统的环境安装稍微多了几步,不过并不复杂,只需要跟着一步一步操作就可以。

搭建环境的版本说明如下: Anaconda3.0

VS Code 1.51.1

实际并无太多版本限制,你安装最新版即可。

第一步、数据科学增强版的 Python 环境:Anaconda

Anaconda 是一个 Python 数据科学工具包,里面包含了 Python 做数据计算最常用的库和工具,属于必装软件。目前它已经非常成熟,并且整套 Anaconda 可以免费提供给个人使用。

1. 用浏览器访问 Anaconda 的个人版页面www.anaconda.com/products/in… ,点击 Download,页面会自动跳转到具体的下载页面:

在这里插入图片描述

2. 根据自己的设备类型 (Mac/Windows),选择合适的安装包版本。**无论 Windows 还是 Mac, 都选择 Graphical Installer,它代表图形化的安装器,之后更易于使用。

3. 下载之后双击安装包进行安装(如图所示),直接点击 Next。
在这里插入图片描述

4. 接下来就是使用协议界面,点击 I Agree,代表同意使用协议。
在这里插入图片描述

5. 之后连续 Next,可以看到选择安装位置的界面,如果没有特殊的需求,直接默认位置就好,继续点击 Next。

6. 最后一个配置界面是高级选项,不用更改,直接点击 Install,等待 2~3 分钟之后,即可完成安装。

安装完毕之后,可以从程序中找到 Anaconda Navigator,点击打开就可以看到整套 Anaconda3 的所有工具(如下图所示):
在这里插入图片描述

其中 Notebook 是数据分析应用范围最广泛的工具,但它却不是一款足够有效率的工具,因为它缺乏智能的代码输入联想、自动完成和错误提示。而有效率的分析师是不会容忍自己用“记事本”写代码的。

所以,接下来,我们可以在自己的电脑中配置一个智能、强大的 Notebook(此时安装好的 Anaconda3 页面先不关闭)。

第二步,飞一般的代码编辑器:VS Code

VS Code( Visual Studio Code),是微软开发的跨平台代码编辑器,靠着其强大的插件生态,目前已经成为全球最流行的代码编辑器。本次我们就通过 VS Code,来解决 Notebook 开发效率的问题。

首先按照以下的步骤安装和配置 VS Code。

1. 下载:用浏览器访问code.visualstudio.com/,网页会直接识别当前的…

2. 安装:下载完毕后,双击安装包进行安装,全部默认配置即可。

3. 安装中文语言包【可选,习惯英文的同学可以跳过】:启动 VS Code,进入插件 Tab(左侧边栏最后下方的图标),输入 【Chinese】,出现的第一个插件,点击 Install 安装。安装完成后,重启 VS Code 即可生效。

在这里插入图片描述

4. 安装 Python 插件:依旧是在插件面板,输入 【Python】,安装列表中的第一个插件。
在这里插入图片描述

至此,基础的 VS Code 环境已经配置完毕。

第三步,配置 VS Code 使用 Anaconda 的 Python 环境

打开 VS Code,选择【文件】-【新建文件】,会建立一个默认的文本文件,按 CTRL +s 保存,文件名为【hello.py】。

后缀名一定要是 .py,因为 VS Code 要根据文件的后缀名来匹配合适的工具链。

保存之后,如果 VS Code 识别到 Python 文件,我们上一步安装的 Python 插件就会开始工作,寻找本机的 Python 环境,结果会展示在下方的状态栏上。

在这里插入图片描述

Anaconda 的 Python 环境包含了丰富的科学计算的库,所以是做数据分析的首选。

确认环境之后,我们即可进入最后一步。

第四步,Jupyter in VS Code

我们进入 VS Code 的插件 Tab(左侧边栏最下方的图标),输入 Jupyter 安装由微软官方出品的 Jupyter 插件(前几个有 Microsoft 字眼的)。

在这里插入图片描述

安装完成之后,重启 VS Code(如果显示是禁用,那就是安装好了,直接操作后续即可)。按 【CTRL+P】 弹出命令面板,输入【>Jupyter】,此时会列出所有 Jupyter 插件支持的操作,选择 【Jupyter: Create New Blank Jupyter Notebook】,如下图所示。
在这里插入图片描述

选择之后,VS Code 内部就出现了一个类似 Notebook 的编辑界面,和传统的网页版 Notebook 不同,VS Code 中的 Notebook 具备强大的代码提示和自动完成的功能。接下来,我们来学习一下它的主要操作。

打开编辑界面,我们将 Notebook 可操作性的区域分为三个部分:主操作区、Cell 操作区、 边栏操作区。

主操作区:主要用来控制整个 Notebook 的一些行为.(大家可以把鼠标放在图标上看一下各个按钮对应的功能)。

边栏操作区:不同位置的“+”号代表在不同位置插入 Cell。

Cell 操作区:主要用来控制当前 Cell 的行为。

Cell 是 Notebook 中的核心概念,直译过来是“单元格”,但 Notebook 中的 Cell 却不能用单元格简单概括,所以本文统一用 Cell 描述,一个 Notebook 由多个 Cell 组成。 Cell 一共有两种类型:

代码 Cell,主要用来编写 Python 代码,每个代码 Cell 都可以单独执行,并且执行结果会展示在 Cell 的下方。

文本 Cell,顾名思义,用来编写文本, 对于数据分析工作而言,除了代码本身,分析的思路、推导的逻辑同样非常重要,文本 Cell 就是用来承载这些内容。

这也是 Notebook 区别于 IPython 最大的地方,可以实现代码和文本的混排,来最大化的呈现数据分析的产出。

Notebook 的基本操作

接下来,我们通过一个具体的目的,学习一下 Notebook 的基本操作。这些操作在后续的博文中会经常用到,我们先通过几个简单的小案例初步熟悉一下。

1、创建一个 Notebook,保存为 my_practice.ipynb。

2、添加一个 Cell,通过代码打印“this is my first Notebook”, 并运行。 在之后的案例中,我们每介绍一个小阶段,都会通过新建一个 Cell 来编写代码测试我们实验的内容。

3、添加一个 Cell,并转换成文本 Cell,输入文字“我的数据分析启程了!”。

4、添加一个 Cell,通过代码打印 1+1 的结果。

下面我们开始完成上面的案例:

第一步,按【CTRL + P】(Mac 对应【CMD + P】), 调出 VS Code 的命令面板,输入【> Jupyter】可以看到 Notebook 插件支持的命令,其中比较常用的几个如下。

  1. Create New Black Jupyter Notebook: 创建新的空白 Notebook 工作区。
  2. Export to PDF:将当前的 Notebook 导出为 PDF,在后续写数据分析报告的时候会用到。
  3. Import Jupyter Notebook:导入已有的 Notebook。用来导入已有的 Notebook 文件。
    在这里插入图片描述

首先选择第一个,创建一个新的 Notebook,创建之后按 【CTRL + S】 保存,文件名输入:first.ipynb。

第二步,新建 Cell,我们点击边栏操作区的 + 号即可新建 Cell, 然后我们输入以下代码:
在这里插入图片描述

第三步,我们类似第二步首先新建一个 Cell,并点击 Cell 操作区中的 M 图标,切换为文本模式,并输入“我的数据分析启程了!”。输入完毕后鼠标点击 Cell 之外的任意区域即可退出编辑模式,进入预览模式(双击 Cell 可重新进入编辑模式)。这样,我们的第三步就完成了。 如图所示。
在这里插入图片描述

第四步,就很简单了,我们直接新建一个 Cell, 并输入以下代码:

print(1+1)

运行 Cell,可以看到打印了“2”,至此,我们的任务已经全部完成。整个过程如图所示。

在这里插入图片描述

至此,你已经在自己电脑上配置出一套面向数据分析的 Python 开发环境,也知道如何新建 Notebook,以及在 Notebook 中添加代码 Cell 来输入代码、文本 Cell 来输入文字。

相关文章:

并发编程下的集合:数组寻址、LinkedList、HashMap、ConcurrentHashMap

如果发现hash取模后的数组索引位下无元素则直接新增,若不是空那就说明存在hash冲突,则判断数组索引位链表结构中的第一个元素的key以及hash值是否与新的key一致则直接覆盖,若不一致则判断当前的数组索引下的链表结构是否为红黑树,若为红黑树则走红黑树的新增方法,若不为红黑树则遍历当前链表结构,遍历中发现某个节点元素的next为null是则直接将新元素指针与next进行关联,若在遍历到next为空前判断到,某个节点的key以及key的hash值与新的key与新的keyhash值一致时则走覆盖。

【日常开发之Windows共享文件】Java实现Windows共享文件上传下载

下拉框选择你选择的用户点击添加,然后共享确定。创建一个文件夹然后点击属性界面,点击共享。maven版本存在于SMB协议的兼容问题。首先开启服务,打开控制面板点击程序。点击启用或关闭Windows功能。我这边是专门创建了一个用户。SMB1.0选中红框内的。

rust wasm入门

demo## 编译 Rust 为 WebAssembly在本教程中,我们将使用 Rust 的 npm 包构建工具 wasm-pack 来构建一个 npm 包。

iced 入门一

本教程的目标是创建一个简单的购物清单应用程序。我们希望允许添加和删除购物清单中的项目。在编写代码之前,我们必须首先了解 Iced 构建的结构:Elm 架构。它是 GUI 库使用的架构,最初用于 Elm 编程语言。它的核心原则很简单。它围绕三个概念构建:模型、视图和更新。

注解annotation

Kubernetes的系统组件(例如,kube-scheduler、kube-controller-manager、kube-apiserver、kubectl 或其他第三方组件)向用户的Kubernetes对象添加注解时,必须指定一个前缀。注解(annotation)可以用来向 Kubernetes 对象的 metadata.annotations 字段添加任意的信息。除了使用注解,您也可以将这类信息存放在一个外部的数据库,然而,在使用、分享这些信息的时候,可能会变得难以管理。

Rust XTask 模式介绍与应用

XTask(扩展任务)是一种在Rust项目中定义和执行自定义构建任务的方式。它通过创建一个独立的Rust库或二进制项目来封装这些任务,利用Rust语言的强类型、安全性和跨平台能力,使得构建流程更加健壮、可读和可维护。

ModuleNotFoundError: No module named ‘qcloud_cos‘

是腾讯云提供的一个Python SDK,用于与腾讯云对象存储(COS)服务进行交互。使用pip安装qcloud_cos报以下错误。这个错误表示Python无法找到名为。

需要在method方法被调用之后,仅打印出a=100,b=200,请写出method方法的代码

通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。public static final PrintStream err“标准”错误输出流。PrintStream 是打印输出流,它继承于FilterOutputStream。第二个用的是用的是char类型,根本不是方法,当要输出方法体的时候,会给你遍历数组。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。诡异的是,如果错了,面试官对你说了一句:你回去看看,

一个合格的Java选手必须要掌握的并发锁知识

Java内置锁:基于Java语法层面(关键词)实现的锁,主要是根据Java语义来实现,最典型的应用就是synchronized。Java显式锁:基于JDK层面实现的锁,主要是根据基于Lock接口和ReadWriteLock接口,以及统一的AQS基础同步器等来实现,最典型的有ReentrantLock。使用方式:synchronized关键字互斥锁主要有作用于对象方法上面,作用于类静态方法上面,作用于对象方法里面,作用于类静态方法里面等4种方式。

Integer.toHexString(b & 0xff)理解以及& 0xff什么意思

首先toHexString传的参数应该是int类型32位,此处传的是byte类型8位,所以前面需要补24个0。然后& 0xff 就是把前面24个0去掉只要后8位。toHexString(b & 0xff)相当于做了一次位的与运算,将前24位字符省略,将后8位保留。是两个十六进制的数,每个f用二进制表示是1111,所以占四位(bit),两个f()占八位(bit),八位(bit)也就是一个字节(byte).这个方法是把字节(转换成了int)以16进制的方式显示。我的理解是这样,如有不对欢迎指正!

python安装成功的图标_ubuntu下:安装anaconda、环境配置、软件图标的创建、成功启动anaconda图形界面...

Ubuntu安装anaconda常见的四大问题:目录1、介绍2、安装anaconda3、环境配置4、软件图标的创建5、成功启动anaconda图形界面1、介绍先介绍一下anaconda和python的关系:初学者所安装的python2/3只是python的环境,没有python的工具包&a…

使用JavaScript实现复杂功能:一个完整的电商网站搜索功能

随着互联网的发展,电子商务网站已经成为人们购物的重要平台。而在这些网站中,搜索功能无疑是核心功能之一。用户可以通过搜索快速找到他们需要的商品,从而提高购物体验。本文将详细介绍如何使用JavaScript实现一个完整的电商网站搜索功能。

C++并发编程:互斥锁std::mutex和lock_guard的使用

对象离开其作用域时,会自动调用析构函数,该析构函数会释放锁。这确保了在任何情况下(包括由于异常等原因导致的提前退出),锁都会被正确释放,从而避免了忘记手动释放锁而导致的死锁问题。mutex 用于控制多个线程访问共享资源,确保在任意时刻只有一个线程可以访问该资源,避免数据竞争。这确保了同一时刻只有一个线程可以访问被保护的资源,从而防止多线程并发访问导致的数据不一致性。是 C++ 标准库中提供的一个模板类,用于在其构造时自动获取锁,在析构时自动释放锁。是 C++ 标准库中提供的一种用于多线程同步的互斥锁实现。

上位机图像处理和嵌入式模块部署(qt插件的使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 一个软件一般有很多的功能,但是主流程只有一个。但在软件开发的过程当中,一般来说功能是需要不断添加的,但是主流程最好不要轻易修改。这里的插件就相当于各种各样的功能,而主流程就是如何怎么去调用这些插件的功能。所以,今天正好来学一下怎么添加qt插件,个人觉得这部分还是非常重要的。

C程序的内存空间布局(栈、堆、数据区、常量区、代码区)

较详细的介绍了栈、堆、数据区、常量区、代码区

Java中的四种访问权限(private,public,protected,无修饰)

/实体类属性和数据库字段名称不一致//实体类属性和数据库字段名称不一致return id;return age;emp.test();//直接调用public修饰的变量//private修饰的变量进行赋值//调用private修饰的变量1、public修饰符定义的属性和方法通过对象实例化进行调用,2、private修饰的属性通过set、get方法进行调用。

Java中的方法重载和方法重写有什么区别?

Java中的方法重载(Overloading)和方法重写(Overriding)都是面向对象编程中的重要概念,但它们之间有一些区别。方法重载是指在同一个类中,可以定义多个具有相同名称但参数列表不同的方法。这些方法具有不同的参数类型、参数个数或参数顺序。在调用重载方法时,Java编译器会根据传递给方法的参数类型和数量来选择要调用的正确方法。方法重载主要用于解决方法的命名冲突和提高代码的可读性和可维护性。

python基础使用之变量,表达式,语句

PYTHON基础知识系列之变量、表达式、语句

C语言常见面试题:什么是宏,宏的作用是什么?

宏在计算机科学中是一种批量处理程序命令,它是一种抽象的规则或模式,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。在编译时,预处理器会对宏进行展开,即将宏的内容替换到宏所在的位置。以上是宏的一些主要作用,但并不是全部。在实际编程中,根据需要选择是否使用宏以及如何使用宏,以实现更好的代码组织和可读性。,这样就可以计算出a和b的和。这个例子展示了宏的基本用法和作用。在这个例子中,我们定义了一个宏。,用于计算两个数的和。时,预处理器会将其展开为。

python基础小知识:引用和赋值的区别

通过引用,就可以在程序范围内任何地方传递大型对象而不必在途中进行开销巨大的赋值操作。不过需要注意的是,这种赋值仅能做到顶层赋值,如果出现嵌套的情况下仍不能进行深层赋值。赋值与引用不同,复制后会产生一个新的对象,原对象修改后不会影响到新的对象。如果在原位置修改这个可变对象时,可能会影响程序其他位置对这个对象的引用

Golang 搭建 WebSocket 应用(八) - 完整代码

本文应该是本系列文章最后一篇了,前面留下的一些坑可能后面会再补充一下,但不在本系列文章中了。

Python自动化实战之接口请求的实现

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

C#winform上位机开发学习笔记3-串口助手的信息保存功能添加

上位机开发的系列学习笔记,避免遗忘多记录多补充多优化

Python中如何简化if...else...语句

我们通常在Python中采用if...else..语句对结果进行判断,根据条件来返回不同的结果,如下面的例子。这段代码是一个简单的Python代码片段,让用户输入姓名并将其赋值给变量user_input。我们能不能把这几行代码进行简化,优化代码的执行效率呢?以下是对各行代码的解读。这里使用了or这个逻辑运算符,当user_input不为空时,user_input为真,name就被赋于user_input的值。采用这种方法可以轻松实现if...else语句的简化。我们可以使用一行简短的代码来实现上面的任务。

前端JS代码中Object类型数据的相关知识

遍历JavaScript中的对象有几种方法,包括使用for…in循环、Object.keys()方法、Object.values()方法和Object.entries()方法。因此前端传入了日期类型数据之后,如果和后台数据库中的数据类型不一致,比如数据库中的日期数据类型格式是。前端传入的Object对象中其中某个字段值是日期类型的数据,则在前端的类型就是一个。,则数据传往后端之前需要做格式类型转换。,它的值是一个中国标准时间,比如。

Rust之旅 - Rust概念、Windows安装、环境配置

本章节介绍Rust概念、Windows安装、环境配置以及最初级的语法。至此,我们就成功的构建了一个Rust程序,并成功在Visual Studio Code里运行了这个程序,万事俱备,我们就可以开始Rust之旅了。资料获取,更多粉丝福利,关注下方公众号获取。

C语言中常用的字符串处理函数和内存操作函数

`memmove(void *destination, const void *source, size_t num)`:将`source`指向的内存块的前`num`个字节移动到`destination`所指向的内存块,即使内存块有重叠部分。返回指向`destination`的指针。- `memcpy(void *destination, const void *source, size_t num)`:将`source`指向的内存块的前`num`个字节复制到`destination`所指向的内存块。

一键式Excel分词统计工具:如何轻松打包Python脚本为EXE

最近,表姐遇到了一个挑战:需要从Excel文件中统计出经过分词处理的重复字段,但由于数据隐私问题,这些Excel文件不能外传。这种情况下,直接使用Excel内置功能好像是行不通的,需要借助Python脚本来实现。为了解决这个问题,我写了一个简单的数据分析和自动化办公脚本,以方便使用。想象一下,即使电脑上没有安装Python,也能通过一个简单的EXE文件轻松完成工作,这是多么方便!因此,我决定不仅要写出这个脚本,还要学会如何将其打包成一个独立的EXE文件。这样,无需Python环境的电脑也能直接运行它

深入解析JavaScript的原生原型

在JavaScript中,除了自定义对象,还存在很多由JavaScript语言本身提供的原生对象。这些原生对象同样基于原型继承机制,拥有自己的原型。理解原生对象的原型非常重要,可以让我们正确使用这些内置对象,也有助于进一步理解JavaScript的原型继承系统。本文将详细解析原生对象的原型结构,揭开一些常见原生对象原型的神秘面纱。​学习原生对象的原型关系,有助于我们在日常开发中正确理解和使用这些JavaScript内置对象,避免一些常见陷阱。

深入三目运算符:JavaScript、C++ 和 Python 比较

三目运算符是编程中常用的条件表达式,它允许我们根据条件选择不同的值。我们将通过具体的例子分别介绍 JavaScript、C++ 和 Python 中的三目运算符,以便更好地理解它们的用法和特性。JavaScript 示例// 例子: 根据条件选择不同的值var x = 10;var y = 20;"x 大于 y" : "x 不大于 y";在这个例子中,如果x大于y,则result的值为 “x 大于 y”,否则为 “x 不大于 y”。C++ 示例// 例子: 根据条件选择不同的值。