广告
返回顶部
首页 > 资讯 > 后端开发 > Python >[Python学习笔记]Python数据
  • 365
分享到

[Python学习笔记]Python数据

学习笔记数据Python 2023-01-30 22:01:56 365人浏览 薄情痞子

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

摘要

嵩天老师的课感觉很好呀,啦啦啦 0. 数据分析之前奏 课程主要内容: 常用IDE: 本课程主要使用:Anaconda Anaconda:一个集合,包括conda、某版本Python、一批第三方库等   -支持近800个第三方库

嵩天老师的课感觉很好呀,啦啦啦

0. 数据分析之前奏

课程主要内容:

image


常用IDE:

image

本课程主要使用:Anaconda


Anaconda:一个集合,包括conda、某版本Python、一批第三方库等

  -支持近800个第三方库

  -适合科学计算领域

  -包含多个主流工具

  -开源免费

  -跨平台

本身不是个ide 是将多个工具集成在一起的

 

conda

  -一个工具,用于包管理和环境管理

  -包管理与pip类似,管理python第三方库

  -环境管理能够允许用户使用不同版本的Python,并能灵活切换

 

conda将工具、第三方库、Python版本、conda都当作包,同等对待

 

conda有命令行工具      

C:\Users\king\Anaconda3\Scripts\conda.exe –version 可以查看conda版本

conda update conda    升级conda

刚开始的是命令行,现在也集成为GUI,anaconda默认生成root的环境空间

image

 

编程工具:spyder

image

默认不舒服  改下

image

image

 

交互式编程环境:IPython

  -是一个功能强大的交互式shell

  -适合进行交互式数据可视化和GUI相关应用

 

IPython几个技巧

?:可以在变量或者函数前面加?获得通用信息

%run :可以执行.py程序 注意:%run在一个空的命名空间执行%

image

 

trouble shooting:

ubuntu18中安装了anaconda3,启动spyder报错Segmentation fault (core dumped)

安装conda install pyopengl  然后再启动 卡住半天没了 出现killed报错 我日  然后升级了下anaconda3到最新才好了

1. 数据分析之表示

1.1 NumPy库入门

数据的维度

一维数据   列表、集合

二维数据   表格是经典的二维数据    用列表表示

多维数据   二维数据在更多维度上展开 比如时间维度  用列表表示

高维数据   仅使用最基本的二元关系展示复杂关系 key-value形式组织数据   用字典类型或者其他JSON、xmal、yaml等


NumPy的数组对象:ndarray

NumPy是一个开源的Python科学计算基础库

  -一个强大的N维数组对象ndarray

  -广播函数功能

  -整合C/C++/fortran代码的工具

  -线性代数、傅里叶变换、随机数生成等功能

NumPy是SciPy、pandas等数据处理或科学计算库的基础

使用 import numpy as np

 

ndarray是一个多维数组,由两部分组成,要求数组元素类型相同,数组下标从0开始

  -元数据(数据维度,数据类型等)

  -实际数据

np.array()                  --ndarray别名是array

轴(axis):保存数据的维度

秩(rank):轴的数量

image

例子:

image

里面的int32不是Python基础类型,是NumPy定义的类型,更多类型如下:

image

image

image

为啥要这么多数据类型?

  -科学计算涉及大量数据,对性能和存储都有较高要求

  -对元素类型精细定义,有助于numpy合理使用存储空间并优化性能,有助于程序员对程序规模由合理评估

 

ndarray数组也可以由非同质对象构成

非同质ndarray元素为对象类型

非同质ndarray数组无法发挥numpy优势,尽量避免使用


ndarray数组的创建和变换

image

1) 从python列表元组等类型创建数组

  x = np.array(list/tuple)

  x = np.array(list/tuple,dtype=np.float32)   不指定类型的时候numpy自动关联一个合适的

image

image

image

image

除了arange函数,其他都是浮点数

image

 

ndarray数组的变换:维度变换、元素类型变换

image

image

ndarray数组向列表变换

ls = a.tolist()


ndarray数组的操作

索引和切片

ndarray一维数组的索引和列表一样

image


ndarray数组的运算

数组与标量的运算等于每个元素都和这个标量算一下

image

image

image

maximum等经过运算存在数据类型隐式转换

1.2 NumPy数据存取与函数

数据的csv文件存取

image

image

image

csv只能存储读取一维和二维数据,这是它的局限


多维数据的存取

对于ndarray数组 有个方法  a.tofile(frame,sep=’’,fORMat=’%s’)

  -frame 文件、字符串  sep:数据分隔符,如果是空串,写入文件为二进制 format:写入数据的格式

image

可以保存为二进制,小些,但是无法人类读懂,如果知道是这样写的,可以还原,作为一种保存数据的方法

 

如何还原呢,np.fromfile(frame,dtype=float,count=-1,sep=’’)

  -dtype:读取的数据类型  count:读入元素的个数-1表示全部 

image

使用这个方法需要知道存入文件时候的数组维度和元素类型,就是元数据,所以fromfile和tofile需要配合使用,可以将元数据另外存储解决

 

NumPy的便捷文件存取

np.save(fname,array)或者np.savez(fname,array)

  -fname:文件名以.npy或者.npz

np.load(fname)

 

NumPy的随机数函数

NumPy的random子库 np.random.*

image

image

image

 

NumPy的统计函数

image

image

image

image

 

NumPy的梯度函数

image

image

image

1.3 实例1:图像的手绘效果

图像的数组表示

RGB色彩表示

PIL库  处理图像的第三方库 pip install pillow                   from PIL import Image

Image是PIL库中代表图像的类(对象)

图像是一个由像素组成的二维矩阵,每个元素是一个RGB值

image

 

图像的变换

image

image

image

image

image

 

 

图像的手绘实例

手绘特征:黑白灰色、边界线条较重、相同或者相近色彩趋于白色、略有光源效果

image

image

image

image

image

from PIL import Image
import numpy as np

a = np.asarray(Image.open('./test.jpg').convert('L')).astype('float')

depth = 10.                         # (0-100)
grad = np.gradient(a)                #取图像灰度的梯度值
grad_x, grad_y = grad                 #分别取横纵图像梯度值
grad_x = grad_x*depth/100.
grad_y = grad_y*depth/100.
A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A

vec_el = np.pi/2.2                     # 光源的俯视角度,弧度值
vec_az = np.pi/4.                     # 光源的方位角度,弧度值
dx = np.cos(vec_el)*np.cos(vec_az)     #光源对x 轴的影响
dy = np.cos(vec_el)*np.sin(vec_az)     #光源对y 轴的影响
dz = np.sin(vec_el)                 #光源对z 轴的影响

b = 255*(dx*uni_x + dy*uni_y + dz*uni_z)     #光源归一化
b = b.clip(0,255)

im = Image.fromarray(b.astype('uint8'))     #重构图像
im.save('./test2.jpg')

结果

image

image

 

2. 数据分析与展示

2.1 Matplotlib库入门

image

由各种数据可视化类组成,内部结构复杂,是受matlab启发

matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式

import matplotlib.pyplot as plt

image

 

plt.savefig(‘test’,dpi=600) #保存为png文件

 

绘制多个图形,分区域plt.subplot(3,2,4)

image

image


pylot的plot函数

plt.plot(x,y,format_string,**kwargs)

  -format_string 表示曲线的格式字符串   **kwargs表示第二组或更多(x,y,format_string)   当绘制多条曲线x不能省略,当绘制一条时候可以省略x用索引值

image

format_string由颜色字符、风格字符、标记字符组成

image

image

image

image


pyplot的中文显示

方法1:修改绘制区域的全部字体

image

image

image

方法2:

image


pylot的文本显示

image

image

首先字符串前边的r代表是原始字符串,也就是里边的内容不需要转移,这个一般在正则表达式的时候也这么用,而这里是laText的用法,在python中使用laText,需要在文本的前后加上$符号,也就是你所用的那样,然后就是laText的文本了,当你输入了以上内容,matplotlib会自动为你解析的,\pi代表的就是π

image


pylot子绘图区域

image

image

image

 

这种方法每次都要写(3,3),用另外一种方法GridSpec类

image

image

2.2 Matplotlib基础绘图函数示例(5个实例)

image

image

image


pylot饼图绘制

image

image


pylot直方图绘制

image


pylot极坐标绘制

image


pyplot散点图绘制

image

面向对象的绘制方法是matplotlib库的推荐方法,pillow库的函数变为对象的方法

2.3 实例2:引力波的绘制

Http://python123.io/dv/grawave.html 引力波数据源

import numpy as np
import matplotlib.pyplot as plt
from scipy.io import wavfile

rate_h, hstrain= wavfile.read(r"H1_Strain.wav","rb")
rate_l, lstrain= wavfile.read(r"L1_Strain.wav","rb")
#reftime, ref_H1 = np.genfromtxt('GW150914_4_NR_waveform_template.txt').transpose()
reftime, ref_H1 = np.genfromtxt('wf_template.txt').transpose() #使用python123.io下载文件

htime_interval = 1/rate_h
ltime_interval = 1/rate_l
fig = plt.figure(figsize=(12, 6))

# 丢失信号起始点
htime_len = hstrain.shape[0]/rate_h
htime = np.arange(-htime_len/2, htime_len/2 , htime_interval)
plth = fig.add_subplot(221)
plth.plot(htime, hstrain, 'y')
plth.set_xlabel('Time (seconds)')
plth.set_ylabel('H1 Strain')
plth.set_title('H1 Strain')

ltime_len = lstrain.shape[0]/rate_l
ltime = np.arange(-ltime_len/2, ltime_len/2 , ltime_interval)
pltl = fig.add_subplot(222)
pltl.plot(ltime, lstrain, 'g')
pltl.set_xlabel('Time (seconds)')
pltl.set_ylabel('L1 Strain')
pltl.set_title('L1 Strain')

pltref = fig.add_subplot(212)
pltref.plot(reftime, ref_H1)
pltref.set_xlabel('Time (seconds)')
pltref.set_ylabel('Template Strain')
pltref.set_title('Template')
fig.tight_layout()

plt.savefig("Gravitational_Waves_Original.png")
plt.show()
plt.close(fig)

结果

image

3. 数据分析之概要

3.1 Pandas库入门

Pandas提供高性能易用数据类型和分析工具

import pandas as pd

image


Pandas库的Series类型     --一维

image

也支持自定义索引

image

 

image

image

image

image

 

b.index  b.values   获得索引和数据  类似ndarray和字典

两套索引并存  但是不能混用

image

Series类型也与字典类型类似 可以in, get()

image

image

image


Pandas库的DataFrame类型  --二维

由共用相同索引的一组列组成,实际上就是一个表格

image

是一个表格型的数据类型,每列值类型可以不同

既有行索引也有列索引

常用于表达二维数据,单可以表达多维数据

image

image

image

image

image

image

DataFrame基本操作类似Series,根据行列索引


Pandas库的数据数据类型操作

如何改变结构呢 增加 或重排:重新索引    删除:drop

image

image

image

索引是不可修改类型  索引的操作就是对数据的操作   numpy不存在索引 必须通过维度来操作

image

image

image

Series只有0轴    DataFrame由0轴 1轴,drop默认操作0轴


Pandas库的数据类型运算

算术类型运算

image

image

image

image

image

 

比较运算

image

image

image

 

数据和索引建立关联关系  达到操作索引就是操作数据

image

3.2 Pandas数据特征分析

image


数据的排序  

可以对索引排序 

也可以对数据排序

image

image

 

image

image

image


基本的统计分析函数

image

image

image

image

image


累计统计分析

image

image

 

滚动计算(窗口计算)

image

image


数据的相关分析

image

image

image

 

image

image


image

--结束END--

本文标题: [Python学习笔记]Python数据

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • [Python学习笔记]Python数据
    嵩天老师的课感觉很好呀,啦啦啦 0. 数据分析之前奏 课程主要内容: 常用IDE: 本课程主要使用:Anaconda Anaconda:一个集合,包括conda、某版本Python、一批第三方库等   -支持近800个第三方库...
    99+
    2023-01-30
    学习笔记 数据 Python
  • Python学习笔记一(Python数据
    Python数据类型主要包括数字,字符串,列表,元组和字典。字符串,列表,元组和字典都是序列,序列最主要两个特点是索引操作和切片操作,索引操作让我们从序列中抓取一个特定项目,切片操作让我们能够获取序列的一个切片,即一部分序列。1.数字 ...
    99+
    2023-01-31
    学习笔记 数据 Python
  • python 学习笔记 3 -- 数据
    当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 引用 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。eg. # -*- coding: utf-8 -*-  shopli...
    99+
    2023-01-31
    学习笔记 数据 python
  • Python数据类型学习笔记
    带你走进数据类型 一:整数、浮点数 Python中整数和浮点数的定义以及运算和C++都是一样的,我在这里就不需多说了,我就说明一点:Python相对于C/C++而言,定义整数没有int 和 long lon...
    99+
    2022-06-04
    数据类型 学习笔记 Python
  • python学习笔记 函数
    一等函数 在python中,函数是一等对象。编程语言理论家把“一等对象”定义为满足以下条件的程序实体: 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传给函数 能作为函数的返回结果 在python中,整数、字符串和字典都是一...
    99+
    2023-01-31
    函数 学习笔记 python
  • Python学习笔记
    Python介绍 Python是一种解释型、面向对象的语言。 官网:www.python.org Python环境 解释器:www.python.org/downloads 运行方式: 交互模式。在IDLE中运行。 脚本模式。文件的后缀...
    99+
    2023-01-30
    学习笔记 Python
  • Python 学习笔记
    rs=Person.objects.all() all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据。 print rs.query 会打印出原生sql语句 rs=Pe...
    99+
    2023-01-31
    学习笔记 Python
  • python学习笔记--趣学Python
    由反弹球和球拍构成的游戏。球会在屏幕上飞过来,玩家要用球拍把它弹回去 画布和画弹球 引入模块 #Tkinter -- Python的标准GUI库,Tk 接口,是python 内置的安装包 from tkinter import * i...
    99+
    2023-01-31
    学习笔记 python Python
  • python学习笔记(三)—数据库篇
    一、数据库编程 数据库编程是指在应用程序中使用数据库管理系统(DBMS)进行数据存储、检索和处理的过程。数据库提供了一种结构化的方式来组织和存储数据,使得数据的管理更加高效和可靠。 1.1 关系数据库...
    99+
    2023-09-18
    python 学习 笔记
  • Python学习笔记五(Python
    Python urllib模块提供了一个从指定的URL地址获取网页数据,然后对其进行分析处理,获取想要的数据。1.查看urllib模块提供的urlopen函数。help(urllib.urlopen) urlopen(url, data...
    99+
    2023-01-31
    学习笔记 Python
  • Python学习笔记四(Python
    Python os模块提供了一个统一的操作系统接口函数,通过python os模块可以实现对系统本身的命令,文件,目录进行操作,官方参考文档( http://docs.python.org/library/os)。1)os.sep 可以...
    99+
    2023-01-31
    学习笔记 Python
  • 【Python学习笔记】-Python中
    python中的格式为 为真时的结果 if 判定条件 else 为假时的结果 实例: print(1 if 5>3 else 0) 是先输出结果,再判定条件 输出1,如果5大于3,否则输出0 一般用于判断赋值中,例...
    99+
    2023-01-31
    学习笔记 Python
  • Python学习笔记(四)——数字
    数字 在Python中,数字并不是一个真正的对象类型,而是一组类似类型的分类。Python不仅支持通常的数据类型(整数和浮点数。),而且能够通过常量去直接创建数字以及处理数字的表达式。  整数和浮点数 复数 固定精度的十进...
    99+
    2023-01-31
    学习笔记 数字 Python
  • Python学习笔记4——函数
    函数 1 # 函数需要先定义,关键字 def 2 def func(): 3 print("我是一个函数") 4 5 # 函数的调用 6 func() 执行结果: 我是一个函数 内建函数(内置函数) help(), prin...
    99+
    2023-01-30
    函数 学习笔记 Python
  • python——Matplotlib学习笔记
      Matplotlib是pyhon中一个强大的绘图图,可以理解为 MatLab 开源替代,鉴于MatLab的内存之大及安装之复杂,决定先学学Matplotlib这个库。  1Matplotlib的安装  window:  打开cmd,: ...
    99+
    2023-06-02
  • python-memcached学习笔记
    介绍:   memcached是免费、开源、高性能、分布式内存对象的缓存系统(键/值字典),旨在通过减轻数据库负载加快动态web应用程序的使用。   数据类型:只用一种字符串类型 1:安装 sudo apt-get install me...
    99+
    2023-01-31
    学习笔记 python memcached
  • python scrapy学习笔记
    scrapy是python最有名的爬虫框架之一,可以很方便的进行web抓取,并且提供了很强的定制型。一、安装scrapy# pip install scrapy二、基本使用1、初始化scrapy项目# scrapy startproject...
    99+
    2023-01-31
    学习笔记 python scrapy
  • Python学习笔记(1)
    1 def sum_args(*args): 2 return sum(args)) 3 4 def run_with_positional_args(func, *args): 5 return func(*...
    99+
    2023-01-31
    学习笔记 Python
  • python OpenCV学习笔记
    目录图像翻转图像轮廓排序图像轮廓排序颜色识别基础颜色识别根据BGR获取HSV阈值编辑器图像翻转 使用Python的一个包,imutils。使用下面的指令可以安装。 pip in...
    99+
    2022-11-12
  • Python学习笔记(matplotli
    Python学习笔记--在Python中如何调整颜色和样式   参靠视频:《Python数据可视化分析 matplotlib教程》链接:https://www.bilibili.com/video/av6989413/p=6 所用的库及环...
    99+
    2023-01-30
    学习笔记 Python matplotli
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作