Python数据分析-Python语法基础,IPython和Jupyter-Notebooks(二)

news2025/1/31 3:50:45

title: ‘Python数据分析:Python语法基础,IPython和Jupyter Notebooks(二)’
tags:

  • python
  • 数据分析
    categories:
  • python
  • 数据分析
    keywords:
  • python
  • 数据分析
    cover: …/img/404_icecream_whale.png
    description: 本文介绍python的基础语法和jupyter notebooks继承编辑器的使用。
    abbrlink: 55017
    date: 2023-08-01 10:28:25

第二章

Python 解释器


Python是解释性语言。Python解释器同一时间只能运行一个程序的一条语句。标准的交互Python解释器可以在命令行中通过键入python命令打开:

C:/Users/86178>python
Python 3.9.15 (main, Nov 24 2022, 14:39:17) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 5
>>> print(a)
5

>>>提示输入代码。要退出Python解释器返回终端,可以输入exit()或按Ctrl-D。

运行Python程序只需调用Python的同时,使用一个.py文件作为它的第一个参数。假设创建了一个hello_world.py文件,它的内容是:

print('Hello world')

你可以用下面的命令运行它(hello_world.py文件必须位于终端的工作目录):

$ python hello_world.py
Hello world

IPython基础


运行Jupyter Notebook

notebook是Jupyter项目的重要组件之一,它是一个代码、文本(有标记或无标记)、数据可视化或其它输出的交互式文档。Jupyter Notebook需要与内核互动,内核是Jupyter与其它编程语言的交互编程协议。Python的Jupyter内核是使用IPython。要启动Jupyter,在命令行中输入jupyter notebook:

在多数平台上,Jupyter会自动打开默认的浏览器(除非指定了--no-browser)。或者,可以在启动notebook之后,手动打开网页http://localhost:8888/

当保存notebook时(File目录下的Save and Checkpoint),会创建一个后缀名为.ipynb的文件。这是一个自包含文件格式,包含当前笔记本中的所有内容(包括所有已评估的代码输出)。可以被其它Jupyter用户加载和编辑。要加载存在的notebook,把它放到启动notebook进程的相同目录内。

Tab补全

在shell中输入表达式,按下Tab,可以补全:

  • 已输入变量(对象、函数等等)的命名空间

  • 任何对象的方法和属性

  • 模块名

  • 文件路径时(即使是Python字符串)

自省

在变量前后使用问号?,可以:

  • 显示对象的信息

  • 对象是一个函数或实例方法,定义过的文档字符串,也会显示出信息

  • 使用??会显示函数的源码

  • 搜索IPython的命名空间,字符与通配符结合可以匹配所有的名字

%run命令

你可以用%run命令运行所有的Python程序。

如果一个Python脚本需要命令行参数(在sys.argv中查找),可以在文件路径之后传递,就像在命令行上运行一样。

笔记:如果想让一个脚本访问IPython已经定义过的变量,可以使用%run -i

在Jupyter notebook中,可以使用%load,它将脚本导入到一个代码格中。

中断运行的代码

代码运行时按Ctrl-C,无论是%run或长时间运行命令,都会导致KeyboardInterrupt。这会导致几乎所有Python程序立即停止,除非一些特殊情况。

警告:当Python代码调用了一些编译的扩展模块,按Ctrl-C不一定将执行的程序立即停止。在这种情况下,你必须等待,直到控制返回Python解释器,或者在更糟糕的情况下强制终止Python进程。

从剪贴板执行程序

使用Jupyter notebook,可以将代码复制粘贴到任意代码格执行。

使用%paste%cpaste函数。

%paste可以直接运行剪贴板中的代码:

%cpaste功能类似,但会给出一条提示:

Pasting code; enter '--' alone on the line to stop or use Ctrl-D.

使用%cpaste,你可以粘贴任意多的代码再运行。你可能想在运行前,先看看代码。如果粘贴了错误的代码,可以用Ctrl-C中断。

键盘快捷键

Jupyter notebooks有另外一套庞大的快捷键,建议参阅Jupyter notebook的帮助文档。

魔术命令

IPython中特殊的命令(Python中没有)被称作“魔术”命令。这些命令可以使普通任务更便捷,更容易控制IPython系统。魔术命令是在指令前添加百分号%前缀。

魔术命令可以被看做IPython中运行的命令行。许多魔术命令有“命令行”选项,可以通过?查看

魔术函数默认可以不用百分号,只要没有变量和函数名相同。这个特点被称为“自动魔术”,可以用%automagic打开或关闭。

一些魔术函数与Python函数很像,它的结果可以赋值给一个变量。

IPython的文档可以在shell中打开,我建议你用%quickref%magic学习下所有特殊命令。

一些可以提高生产率的交互计算和Python开发的IPython指令。

表2-2 一些常用的IPython魔术命令

集成Matplotlib

IPython非常好的集成了数据可视化和其它用户界面库,比如matplotlib。%matplotlib魔术函数配置了Jupyter notebook中的matplotlib。这点很重要,其它创建的图不会出现(notebook)或获取session的控制,直到结束(shell)。

Python 语法基础


本节将会概述基本的 Python 概念和语言机制。

缩进,代码块和语句的结束

Python 使用缩进(tab和空格)来组织代码,而不是像其他语言,比如R,C++,Java等一样使用括号来实现。

Python 中的冒号标志着缩进代码块的开始,冒号之后的所有代码的缩进量必须相同。

Python 的语句不需要使用分号结尾,但是分号可以对同在一行的语句进行切分。

a = 1; b = 2; c = 3

Python不建议将多条语句放到一行,这会降低代码的可读性。

万物皆对象

就像Java一样(笔者学过一段时间Java),我们可以把任何事物看成一个对象,这个对象中包含着一些属性和一些方法。

值得注意的是,python的对象模型具有一致性,每个数字、字符串、数据结构、函数、类、模块等,都是在Python解释器的自有“盒子”内,它被认为是Python对象。

注释

任何前面带有 # 的文本都会被Python解释器忽略。

# Hello World!
Hello Python! # 放在代码之后,可用来说明该语句的作用

函数和对象方法调用

在调用函数时,我们使用圆括号 ( ),传递0个或者多个参数,并且可以使用一个变量来接受函数调用的返回值。

test = f(x, y, z)
g()

几乎Python中的每个对象都有附加的函数,称作 方法,可以用来访问对象的内容。
想了解的话建议参考*python官方教程*

函数可以使用位置和关键词参数:

test = f(a, b, c, d = 1, e = 'example')

后面会有更多介绍。

变量和参数传递

当在Python中创建变量(或名字),你就在等号右边创建了一个对这个变量的引用。
有其他编程语言基础的话应该能理解这个引用是什么意思,就像C语言里面的指针一样,我假定大家是有一定基础的,所有在这里就不再多说了。不懂的建议参考菜鸟编程

Python被认为是强类型化语言,这意味着每个对象都有明确的类型(或类),默认转换只会发生在特定情况下。

为了让函数可以处理多种类型的输入,我们可以使用isinstance函数检查对象的数据类型。

属性和方法

Python的对象通常都有属性和方法。

鸭子类型

通常,我们可能不关心对象的类型,只关心对象是否有某些方法或用途。这通常被称为“鸭子类型”,来自“走起来像鸭子、叫起来像鸭子,那么它就是鸭子”的说法。

引入

在Python中,模块就是一个有.py扩展名、包含Python代码的文件。

 import numpy as np
 import pandas as pd

二元运算符和比较运算符

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

可变与不可变对象

Python中的大多数对象,比如列表、字典、Numpy数组,和类,都是可变的,即这些对象或者这些对象包含的值可以被修改。

而其他的,例如 字符串和元组,是不可变的。

标量类型

Python的标准库中有一些内建的类型,用于处理数值数据、字符串、布尔值,和日期时间。这些单值类型被称为标量类型,本系列文章中称其为标量。

数值类型

Python的主要数值类型是intfloat

字符串

Python拥有强大的处理字符串的功能。(这部分内容很简单,以后会从实际应用中讲述,可自行了解)

字节和Unicode

在Python 3及以上版本中,Unicode是一级的字符串类型,这样可以更一致的处理ASCII和Non-ASCII文本。

布尔值

True and False

类型转换

str、bool、int和float也是函数,可以用来转换类型。

None

None是Python的空值类型,如果一个函数没有明确的返回值,就会默认返回None。

另外,None不仅是一个保留字,还是唯一的NoneType的实例。

日期和时间

Python内建的datetime模块提供了datetimedatetime类型。datetime类型结合了datetime,是最常使用的。

strftime方法可以将datetime格式化为字符串:

In [108]: dt.strftime('%m/%d/%Y %H:%M')
Out[108]: '10/29/2011 20:30'

strptime可以将字符串转换成datetime对象:

In [109]: datetime.strptime('20091031', '%Y%m%d')
Out[109]: datetime.datetime(2009, 10, 31, 0, 0)

控制流

if、elif、else

if是最广为人知的控制流语句。它检查一个条件,如果为True,就执行后面的语句。

if后面可以跟一个或多个elif,所有条件都是False时,还可以添加一个else

如果某个条件为True,后面的elif就不会被执行。当使用andor时,复合条件语句是从左到右执行。

for 循环

for循环是在一个集合(列表或元组)中进行迭代,或者就是一个迭代器。

你可以用continue使for循环提前,跳过剩下的部分。

可以用break跳出for循环,break只中断for循环的最内层,其余的for循环仍会运行。

While 循环

while循环指定了条件和代码,当条件为False或用break退出循环。

pass

pass是Python中的非操作语句。代码块不需要任何动作时可以使用(作为未执行代码的占位符);因为Python需要使用空白字符划定代码块,所以需要pass

range

range函数返回一个迭代器,它产生一个均匀分布的整数序列。

三元表达式

Python中的三元表达式可以将if-else语句放到一行里。语法如下:

value = true-expr if condition else false-expr

因此,三元表达式中的if和else可以包含大量的计算,但只有True的分支会被执行。因此,三元表达式中的if和else可以包含大量的计算,但只有True的分支会被执行。

虽然使用三元表达式可以压缩代码,但会降低代码可读性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2285161.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis学习之哨兵一

一、基本概念 1.主从复制的问题: 一旦主节点出现故障需要手动的将一个从节点晋升为主节点同时需要修改应用方的主节点地址还需要通过命令其他节点去复制新的主节点。 主节点的写能力和存储能力受到单机的限制 2.高可用: 上图为一主二从的redis主从复制模…

【C++高并发服务器WebServer】-9:多线程开发

本文目录 一、线程概述1.1 线程和进程的区别1.2 线程之间共享和非共享资源1.3 NPTL 二、线程操作2.1 pthread_create2.2 pthread_exit2.3 pthread_join2.4 pthread_detach2.5 patch_cancel2.6 pthread_attr 三、实战demo四、线程同步五、死锁六、读写锁七、生产消费者模型 一、…

【时时三省】(C语言基础)文件的随机读写

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 fseek 根据文件指针的位置和偏移量来定位文件指针 示例: 这个输出的就是ade seek_cur的意思是从当前偏移量 2就是从a往后偏移两个就是d 偏移量 SEEK_CUR…

【python】python基于机器学习与数据分析的二手手机特性关联与分类预测(源码+数据集)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 python基于机器学习与数据分析的二手手机特性关联与…

WPF进阶 | WPF 数据绑定进阶:绑定模式、转换器与验证

WPF进阶 | WPF 数据绑定进阶:绑定模式、转换器与验证 一、前言二、WPF 数据绑定基础回顾2.1 数据绑定的基本概念2.2 数据绑定的基本语法 三、绑定模式3.1 单向绑定(One - Way Binding)3.2 双向绑定(Two - Way Binding)…

【数据结构】动态内存管理函数

动态内存管理 为什么存在动态内存管理动态内存函数的介绍🎊malloc补充:perror函数🎊free🎊calloc🎊realloc 常见动态内存错误对空指针的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放使用free释放一…

neo4j-community-5.26.0 install in window10

在住处电脑重新配置一下neo4j, 1.先至官方下载 Neo4j Desktop Download | Free Graph Database Download Neo4j Deployment Center - Graph Database & Analytics 2.配置java jdk jdk 21 官网下载 Java Downloads | Oracle 中国 path: 4.查看java -version 版本 5.n…

macbook安装go语言

通过brew来安装go语言 使用brew命令时,一般都会通过brew search看看有哪些版本 brew search go执行后,返回了一堆内容,最下方展示 If you meant "go" specifically: It was migrated from homebrew/cask to homebrew/core. Cas…

LCD液晶屏的工作原理以及背光模组

LCD液晶屏的工作原理以及背光模组 液晶屏工作原理 像素点的主要结构背光模组 LCD液晶屏主要由两部分组成,液晶屏和背光模组。背光模组提供均匀稳定的光源,液晶屏控制光线的传播路径,是屏幕显示设定的图像。 液晶屏 LCD的核心是两片玻璃之间…

maven的打包插件如何使用

默认的情况下,当直接执行maven项目的编译命令时,对于结果来说是不打第三方包的,只有一个单独的代码jar,想要打一个包含其他资源的完整包就需要用到maven编译插件,使用时分以下几种情况 第一种:当只是想单纯…

Controller 层优化四步曲

Controller 层优化四步曲 前言 在开发过程中,Controller 层作为系统与外界交互的桥梁,承担着接收请求、解析参数、调用业务逻辑、处理异常等职责。 然而,随着业务复杂度的增加,Controller 层的代码往往会变得臃肿且难以维护。 …

Java后端之AOP

AOP&#xff1a;面向切面编程&#xff0c;本质是面向特定方法编程 引入依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>示例&#xff1a;记录…

中文输入法方案

使用了三年的自然码双拼&#xff0c;毫无疑问是推荐使用双拼输入法。 三年积累下来的习惯是&#xff1a; 1 自然码方案 2 空格出字 字母选字 直到如今&#xff0c;想要做出改变&#xff0c;是因为这样的方案带来的痛点&#xff1a; 1 使用空格出字就无法使用辅助码&#…

Julius AI 人工智能数据分析工具介绍

Julius AI 是一款由 Casera Labs 开发的人工智能数据分析工具&#xff0c;旨在通过自然语言交互和强大的算法能力&#xff0c;帮助用户快速分析和可视化复杂数据。这款工具特别适合没有数据科学背景的用户&#xff0c;使数据分析变得简单高效。 核心功能 自然语言交互&#x…

机器学习day4

自定义数据集 使用pytorch框架实现逻辑回归并保存模型&#xff0c;然后保存模型后再加载模型进行预测 import numpy as np import torch import torch.nn as nn import torch.optim as optimizer import matplotlib.pyplot as pltclass1_points np.array([[2.1, 1.8],[1.9, 2…

LVGL+FreeRTOS实战项目:智能健康助手(蓝牙模块篇)

HC-05 蓝牙模块简介 功能&#xff1a;支持串口通信的蓝牙模块&#xff0c;广泛应用于无线数据传输。支持 AT 指令配置。 接口&#xff1a;UART 通信&#xff0c;默认波特率为 9600bps。 应用&#xff1a;无线调试、数据传输、无线控制等。 硬件连接 HC-05 引脚功能STM32 连…

【愚公系列】《循序渐进Vue.js 3.x前端开发实践》029-组件的数据注入

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…

Redis学习之哨兵二

一、API 1.sentinel masters:展示被监控的主节点状态及相关的统计信息 2.sentinel master <master name>:展示指定的主节点的状态以及相关的统计信息 3.sentinel slaves <master name>:展示指定主节点的从节点状态以及相关的统计信息 4.sentinel sentinels <mas…

【Linux基础指令】第二期

本期博客的主题依旧是 "基础指令" &#xff1b; 上一期的基础指令链接&#xff1a; 【Linux基础指令】第一期-CSDN博客 &#xff0c;话不多说&#xff0c;正文开始&#xff1a; 一、Linux的指令 1.cp 拷贝功能&#xff1a; cp [stc] [dest] # 将 src文件 拷贝到…

MySQL(表空间)

​开始前先打开此图配合食用 MySQL表空间| ProcessOn免费在线作图,在线流程图,在线思维导图 InnoDB 空间文件中的页面管理 后面也会持续更新&#xff0c;学到新东西会在其中补充。 建议按顺序食用&#xff0c;欢迎批评或者交流&#xff01; 缺什么东西欢迎评论&#xff01;我都…