返回顶部
首页 > 资讯 > 后端开发 > Python >python数据分析系列(1)
  • 382
分享到

python数据分析系列(1)

系列数据python 2023-01-31 00:01:05 382人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录 Python基础 python语言基础 IPython的一些特性 Python语法基础 Python控制流

目录

  • Python基础
    • python语言基础
      • IPython的一些特性
      • Python语法基础
      • Python控制流
      • lambda表达式
    • Python的数据结构
      • 元组
      • 列表
      • 字典
      • 集合
      • 列表、集合、字典推导式
  • 未完待续。。。。

  python数据分析主要处理的是结构化数据(structured data)例如:

  • 表格型数据,其中各列可能是不同的类型(字符串、数值、日期等)。比如保存在关系型数据库中或以制表符/逗号为分隔符的文本文件中的那些数据。
  • 多维数组(矩阵)。
  • 通过关键列(对于sql用户而言,就是主键和外键)相互联系的多个表。
  • 间隔平均或不平均的时间序列。

python语言基础

Ipython的一些特性

  1. 自省: 在变量、对象或者函数之后使用问号 ? ,可以很方便的显示对象信息,使用??可以显示函数的源码例如:?还有一个用途,就是像Unix或windows命令行一样搜索IPython的命名空间。字符与通配符结合可以匹配所有的名字

  2. %run 命令: 你可以使用%run 命令 运行所有的Python程序,例如有一个文件 text.py 可以通过%run text.py来运行这个文件 可以在该命令行后面添加命令行参数(可在ays.argv访问)另外可以使用%load 将脚本导入到代码格中%paste %cpaste 可以执行剪切板中的代码 %cpaste会给出提示

  3. 键盘快捷键:

    表2-1 IPython的标准快捷键

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

Python语法基础

​ Python使用空白字符(tab和空格)来组织代码,而不是像其它语言,比如R、c++、JAVA和Perl那样使用括号。看一个排序算法for循环

for x in array:
    if x < pivot:
        less.append(x)
    else:
        greater.append(x)

冒号标志着缩进代码块的开始,冒号之后的所有代码的缩进量必须相同,直到代码块结束。分号;却可以用来给同在一行的语句切分:a = 5; b = 6; c = 7

  • 万物皆对象: Python语言的一个重要特性就是它的对象模型的一致性。每个数字、字符串、数据结构、函数、类、模块等等,都是在Python解释器的自有“盒子”内,它被认为是Python对象。每个对象都有类型(例如,字符串或函数)和内部数据。并且每个对象都有自己的方法可以通过.来访问。

  • 注释: 可以通过#来为代码添加注释

  • 函数和对象方法的调用: 用圆括号调用函数,传递零个或几个参数,或者将返回值给一个变量通过"."来访问方法:

    result = f(x, y, z)
    result = f(a, b, c, d=5, e='foo')
    g()
    obj.some_method(x, y, z)
  • 引用与复制: 当在Python中创建变量(或名字),你就在等号右边创建了一个对这个变量的引用。考虑一个整数列表a并将a赋值给一个新变量b:

    a = [1, 2, 3]
    b = a
    id(a)==id(b)

    结果为true 证明其实a和b其实是一个对象 这说明Python其实是允许多个变量名绑定到一个对象的

    图2-7 对同一对象的双重引用

    当你将对象作为参数传递给一个函数时,在函数内使用新的局域变量创建了对原始对象的引用,而不是复制(传值还是传引用这取决于传入的参数是可变对象还是不可变对象)。如果在函数里绑定一个新对象到一个变量,这个变量的变动会反映到上一层。因此可以改变可变参数的内容。假设有以下函数:

    def append_element(some_list, element):
        some_list.append(element)
    data = [1,2,3]
    append_element(data,4)
    data
    out: [1, 2, 3 ,4]
  • 鸭子类型: 经常地,你可能不关心对象的类型,只关心对象是否有某些方法或用途。这通常被称为“鸭子类型”,来自“走起来像鸭子、叫起来像鸭子,那么它就是鸭子”的说法。例如,你可以通过验证一个对象是否遵循迭代协议,判断它是可迭代的。对于许多对象,这意味着它有一个__iter__魔术方法,其它更好的判断方法是使用iter函数:

    def isiterable(obj):
        try:
            iter(obj)
            return True
        except TypeError: # not iterable
            return False
  • 字符的输入: Python使用input来获取输入用户的输入信息被看做一个字符串例如:

    a = input("please enter a number")

    输入3 那么a的类型是str

  • 引入: 在Python中,模块就是一个有.py扩展名、包含Python代码的文件。假设有以下模块:

    # some_module.py
    PI = 3.14159
    
    def f(x):
        return x + 2
    
    def g(a, b):
        return a + b

    如果想从同目录下的另一个文件访问some_module.py中定义的变量和函数,可以:

    import some_module
    result = some_module.f(5)
    pi = some_module.PI

    或者:

    from some_module import f, g, PI
    result = g(5, PI)

    使用as关键词,你可以给引入起不同的变量名:

    import some_module as sm
    from some_module import PI as pi, g as gf
    
    r1 = sm.f(pi)
    r2 = gf(6, pi)
  • 二元运算符:

    表2-3 二元运算符.

tips:list会创建一个新的Python列表是复制

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

    value = true-expr if condition else false-expr
  • 标量类型:

表2-4 Python的标量

tips:可以在字符串前面加一个r,表明字符就是它自身

​ 字符串对象有fORMat方法可以替换格式化的参数为字符串,产生一个新的字符串:

template = '{0:.2f} {1:s} are worth US${2:d}'
  • {0:.2f}`表示格式化第一个参数为带有两位小数的浮点数。
  • {1:s}表示格式化第二个参数为字符串。
  • {2:d}表示格式化第三个参数为一个整数。
template.format(4.5560, 'Argentine Pesos', 1)
>>>'4.56 Argentine Pesos are worth US$1'

使用str.encode('utf-8')可以将字符串编码为utf-8

  • 日期和时间类型:

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

In [1]: from datetime import datetime, date, time

In [2]: dt = datetime(2011, 10, 29, 20, 30, 21)

In [3]: dt.day
Out[4]: 29

In [5]: dt.minute
Out[6]: 30

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

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

表2-5 Datetime格式化指令(与ISO C89兼容)

当你聚类或对时间序列进行分组,替换datetimes的time字段有时会很有用。例如,用0替换分和秒:

In [110]: dt.replace(minute=0, second=0)
Out[110]: datetime.datetime(2011, 10, 29, 20, 0)

因为datetime.datetime是不可变类型,上面的方法会产生新的对象。

两个datetime对象的差会产生一个datetime.timedelta类型:

Python控制流

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

可以用continue使for循环提前继续执行,可以用break跳出for循环break只中断for循环的最内层。

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

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

In [123]: list(range(10))
Out[123]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

assert

lambda表达式

Python支持一种被称为匿名的、或lambda函数。它仅由单条语句组成,该语句的结果就是返回值。它是通过lambda关键字定义的,这个关键字没有别的含义,仅仅是说“我们正在声明的是一个匿名函数”。

def short_function(x):
    return x * 2

equiv_anon = lambda x: x * 2

Python的数据结构

元组

元组是一个固定长度,不可改变的Python序列对象。创建元组的最简单方式,是用逗号分隔一列值或者将值放在圆括号内,元组中存储的对象可能是可变对象。一旦创建了元组,元组中的对象就不能修改了:

In [1]: tup = 4, 5, 6

In [2]: tup
Out[2]: (4, 5, 6)
    In [3]: nested_tup = (4, 5, 6), (7, 8)

In [4]: nested_tup
Out[4]: ((4, 5, 6), (7, 8))

tuple可以将任意序列或迭代器转换成元组

可以用方括号访问元组中的元素下表从0开始

In [8]: tup[0]
Out[8]: 's'

如果元组中的某个对象是可变的,比如列表,可以在原位进行修改:

In [11]: tup[1].append(3)

In [12]: tup
Out[12]: ('foo', [1, 2, 3], True)

列表

列表是可变对象、内容可以被修改。可以用方括号定义,或用list函数,可以用append在列表末尾添加元素insert可以在特定的位置插入元素,insert的逆运算是pop,remove去除某个值,in可以检查列表是否包含某个值,用extend方法可以追加多个元素:

用切边可以选取大多数序列类型的一部分,切片的基本形式是在方括号中使用start:stop

注意左闭右开图3-1 Python切片演示

字典

字典可能是Python最为重要的数据结构。它更为常见的名字是哈希映射或关联数组。它是键值对的大小可变集合,键和值都是Python对象。创建字典的方法之一是使用尖括号,用冒号分隔键和值{key:value}注意其中的key必须是可哈希性的

集合

集合可以使用set来定义集合的操作如下表

表3-1 Python的集合操作

列表、集合、字典推导式

--结束END--

本文标题: python数据分析系列(1)

本文链接: https://lsjlt.com/news/181709.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python数据分析系列(1)
    目录 python基础 python语言基础 Ipython的一些特性 Python语法基础 Python控制流 ...
    99+
    2023-01-31
    系列 数据 python
  • 【数模之数据分析-1】
    数据分析之Numpy Array数组:相关程序运行如下: 索引与切片:与python大同小异,还是从0开始相关程序运行如下: 数值运算--array数组相关程序运行如下: 排序操作...
    99+
    2023-09-03
    数据分析 numpy python 程序人生6 数模
  • python数据分析之时间序列分析详情
    目录前言时间序列的相关检验白噪声检验平稳性检验自相关和偏相关分析移动平均算法简单移动平均法简单指数平滑法霍尔特(Holt)线性趋势法Holt-Winters季节性预测模型ARIMA模...
    99+
    2024-04-02
  • Python与AI分析时间序列数据
    目录简介序列分析或时间序列分析的基本概念安装实用软件包PandashmmlearnPyStructCVXOPTPandas:处理,切片和从时间序列数据中提取统计数据示例处理时间序列数...
    99+
    2024-04-02
  • JDBC系列:(1)通过JDBC连接数据库
    1、什么是JDBC2、JDBC连接数据库的三种方式2.1、第一种实现方式2.2、第二种实现方式2.3、第三种实现方式3、com.mysql.jdbc.Driver的内部实现1、什么是JDBC使用java代码...
    99+
    2024-04-02
  • Mysql系列——数据库设计(1)——关系型数据库使用情景
    为什么使用数据库许多人会问为什么软件存储数据会使用数据库?记得当时有一位做Flash开发的朋友说,你们做后端开发的一旦牵涉到存储数据就会想用数据库。其实存储数据可以使用文件。他的说法有一定道理。那么需要存储...
    99+
    2024-04-02
  • 数据分析-python
    数据分析 参考python数据分析与挖掘实战-张良均著 数据探索 数据质量分析 缺失值分析 异常值分析 一致性分析 利用箱线图检验异常值,可以看出数据的分布范围大致情况,和1/4值、1/2值、3/4值得情况。 代码: # -*- c...
    99+
    2021-04-03
    数据分析-python
  • python列表中数据类型的示例分析
    这篇文章给大家分享的是有关python列表中数据类型的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞...
    99+
    2023-06-14
  • Java基础系列15:JDBC中使用元数据分析数据库
    (1)DatabaseMetaData:package javase.jdbc; import java.sql.Connection; import java.sql.Da...
    99+
    2024-04-02
  • python学习3-内置数据结构1-列表
    列表及常用操作    列表是一个序列,用于顺序的存储数据1、定义与初始化lst = list() #使用list函数定义空列表lst = []    #使用中括号定义列表lst = [1,2,3]    #使用中括号定义初始值列表lst =...
    99+
    2023-01-31
    数据结构 列表 python
  • Python 列表元素分组,比如 [1,
    # 生成一个1到20的列表 a=[x for x in range(1,21)] # 把a列表切片,并赋值给b列表,x为0到20且步长为3的列表,在这里具体为[0,3,6,9,12,15,18] # 把x带入,b列表为[a[0:0+3]...
    99+
    2023-01-30
    元素 列表 Python
  • 怎么用Python与AI分析时间序列数据
    这篇文章主要讲解了“怎么用Python与AI分析时间序列数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python与AI分析时间序列数据”吧!简介时间序列数据表示一系列特定时间内的...
    99+
    2023-06-30
  • Python 数据分析教程探索性数据分析
    目录什么是探索性数据分析(EDA)?描述性统计分组数据方差分析相关性和相关性计算什么是探索性数据分析(EDA)? EDA 是数据分析下的一种现象,用于更好地理解数据方面,例如:&nb...
    99+
    2024-04-02
  • Python数据分析之分析千万级淘宝数据
    目录1、项目背景与分析说明2、导入相关库3、数据预览、数据预处理4、模型构建1)流量指标的处理2)用户行为指标3)漏斗分析4)客户价值分析(RFM分析)1、项目背景与分析说明 1)项...
    99+
    2024-04-02
  • python编程规范系列--建议08~1
      本系列来自《编写高质量代码 改善python程序的91个建议》的读书笔记整理。    本章主要内容 建议8:利用assert语句来发现问题 建议9:数据交换值时不推荐使用中间交换变量 建议10:充分利用Lazy evaluatio...
    99+
    2023-01-30
    建议 系列 python
  • Python解释数学系列——分位数Qua
    跳转到我的博客 案例1 Ex1: Given a data = [6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36],求Q1, Q2, Q3, IQR Solving: 步骤: 1. 排序,从小到大排列d...
    99+
    2023-01-30
    位数 数学 系列
  • python数据分析之pandas数据选
      Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用。本文主要介绍Pandas的几种数据选取的方法。   Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据...
    99+
    2023-01-30
    数据 python pandas
  • Python数据分析入门
    本文来分享一下如何通过Python来开始数据分析。具体内容如下:数据导入导入本地的或者web端的CSV文件;数据变换;数据统计描述;假设检验单样本t检验;可视化;创建自定义函数。数据导入这是很关键的一步,为了后续的分析我们首先需要导入数据。...
    99+
    2023-01-31
    入门 数据 Python
  • Python数据结构与算法中的队列详解(1)
    目录什么是队列?构建一个队列总结什么是队列? 队列,与栈类似,是有序集合。添加操作发生在 “尾部”,移除操作只发生在 “头部&...
    99+
    2024-04-02
  • 数据分析 | Pandas 200道练习题 进阶篇(1)
    文章目录 前期准备DA5 牛客网用户没有补全的信息DA6 查看牛客网哪些用户使用PythonDA7 牛客网Python用户的成就值DA8 文件最后用户的部分数据 好久没有更新数据...
    99+
    2023-09-01
    pandas 数据分析 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作