Python数据分析与展示[第一周]
ipython 中的问号
获得相关的描述信息
%run 系统文件
执行某一个文件
ipython的模式命令
%magic 显示所有的魔术命令
%hist 命令历史输入信息
%pdb 异常发生后自动进入调试器
%reset 删除当前命名空间中的全部变量或名称
%who 显示Ipython 当前命名空间中的已经定义的变量
%time statemnent 给出代码执行时间
%timeit statement 多次实行代码,计算平均执行时间
基本读取数据的方法
维度:数据的组织形式
一维数据 列表 数组
一组数据的结构 列表中 数据类型可以不同,数组类型相同
二位数据 多个一维数据的组合形式
多维数据 在性维度上的扩展形成
高维数据 字典
一位数据 列表(有序) 集合(无序)
高维数据 字典形式或数据表示格式(json xml yaml)
numpy
np.ndarray
import numpy as np
使一维向量像变量
一个维度数据类型往往相同 节省内存和时间
ndarray
实际数据
描述数据的元数据
下表从0开始
轴axis 数据的维度
秩rank 轴的数量
ndarray 对象的属性
.ndim 秩轴的数量 或 维度的数量
.shape 对象的尺度 n行m列
.size 对象元素的个数
.dtype 对象的元素类型
.itemsize 为各元素的大小以字节为单位
ndarray的元素类型
bool
intc 32或64
int p 用于索引的整数 与c中的 sszie_t 一致 int32 或 int64
int8 int16 int32 int64
uint8-16-32-64
float16-32-64/
complex64 实部虚部都是32位浮点数类型
complex128 实部虚部都是64位浮点数类型
当每一个元素行传不相同的时候 非同质对象 尽量避免使用
生成ndarray 的方法
1从列表元组中创建
np.array( ,dtype=np.float32) 可以指定类型
2使用函数创建
np.arange() 元素从0到n-1
np.ones(shape) 根据shape 生成一个全1的类型,shape 是一个元组类型
np.zeros(shape) 同上
np.full(shape,val) 生成权威val的
np.eye(n) n阶的单位矩阵
np.ones_like(a) 形状相似
np.zeros_like(a)
np.zeros_like(a,val)
np.linspace(1,10,4, endpoint=False) 起始位置 种质元素 包含几个元素
np.logspace(1,2,base=4) 4^1 - 4^2 的等比数列
np.concatenate((a,b)) 将两个nparray合并
ndarray的方法
.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变
.resize(shape) 修改原数组(原数组改变) resize 不接受负数(-1) reshape 可以
.swapaxes(ax1,ax2) 对n维中的两个维度进行调换
.flatten() 对数组进行降维,返回一个一维数组 ,原数组不变
ndarray的类型变换
new_a=a.astype(new_type) // np.int 具体是那种类型有py自行决定
(不改变原数据)创建新的数组,拷贝
数组转列表
.tolist()
//慢得多
数组操作 索引切片
a[1:4:2] 开始编号:终止编号:步长
不含终值
a[0,1,2] 这是可以的
a[-1,-2,-3]这是表示从右向左的索引方式
a[:,1,-3]
a[:,1:3,:]
a[:,:,::2] 最后一个维度以2为步长
ndarray的运算
标量运算
1数组中的每一个元素都与之进行运算
a=a/a.mean()
标量元素
np.abs(x)
np.fabs()
np.sqrt()
np.squar()
np.log() np.log10() np.log2()
np.ceil() np.floor()
np.rint() 四舍五入
np.modf() 将数组的小数和整数分别以两个独立的数组形式返回
np.cos cosh sin sinh tan tanh
np.exp()
np.sign()
+-*/**
np.maximum(x,y) np.fmax()
np.minimum(x,y) np.fmin() 求对应的最大值最小值
np.mod(x,y) 元素及的模运算
np.copysign(x,y) 将y元素的符号复制给对应数组x中的对应元素
><==!=产生bool型的数组
数据的读取 csv
写入csv
np.savetxt(frame,array,fmt='%.18e',delimiter=None)
frame 文件字符串或产生器,可以使.gz或.bz2的压缩文件
array 要储存的数组
fmt 写入文件的格式
delimiter 分割字符串默认是任何空格(更改成,才是csv文件)
例:
np.savetxt('a.csv',a,fmt=‘%d',delimiter=',')
np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
frame 读入的文件 ,也可以是压缩文件.gz .bz2
dtype 数据的类型 np.float/np.int
delimiter 分割字符串 默认是空格
unpack 如果True 读入属性将分别写入不同的变量
例:
b=np.loadtxt("a.csv",demiliter=',')
局限性
只能存取读取一维和二维数据
多维数据的存取
np.一些方法
np.tofile(frame ,sep='',format='%s')
frame 文件 字符串
sep 分割字符不给的话就是二进制写入
format 存储存储的格式
np.fromfile(frame ,sep='',dtype=float,count=-1)
frame 文件字符串
dtype 读取的数据累心和
count 读入的元素个数 -1 表示读入整个文件
sep空为二进制
例:
a.tofile("b.dat",sep='',format='%d')
c=np.fromfile('b.dat',dtype=np.int,sep='').reshape(10,5,2)
存入的是一个无维度信息的数据
读出的是一维数组 需要人为的更改维度信息
tofile 和 fromfile 需要相结合使用
通过元数据文件来储存额外的信息
np的便捷文件存取
np.save(fname,array)
frame 以npy为扩展名 压缩扩展名为npz
array 数组变量
np.load(fname)
frame 文件名格式同上
numpy的随机函数
np.radom.*
.rand(d0,d1,...,dn) 【0-1)之前的浮点数均匀分布
.randn(d0,d1,...dn) 根据d0-dn 创建随机数数组,标准正态分布 //这还比较奇怪,居然不是接受一个shape
.randint(low,[,high,shape])根据shaoe 创建随机整数或证书驻足 范围是low,high ,均匀分布
.seed(s) 随机数种子 s 是给定的种子值
.shuffle(a) 按照数组a的第一轴进行随机排列,改变数组a
.permutation(a) 根据数组a的第一轴产生一个新的乱序数组,不改变数组a
.choice(a[,size,replace=False,p]) 从一维数组a中以概率p抽取元素,形成size 行传的新数组
.replace 表示是否可以重用元素 默认为true(可以重复抽取)
np.random.choice(b,(3,2),p=b/np.sum(b))
//元素越大概率越大的方式
.uniform(low,high,size) 产生均匀分布的数组
.normal(loc,scale,size) loc 均值 sclae 标准差
.possion(lam,size) lam是随机事件发生的概率
numpy 的统计函数
np.sum(a,axis=None) 求和运算 axis指点是哪个轴
np.mean(a,axis=None ) 求期望
np.average(a,axis=None,wright=None) 加权平均值
np.std(a,axis) 求标准差
np.bar(a, axis) 求方差
例:
a= [[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
]
np.avarage(a,axis=0,weights=[10,2,1])
2.1875 3.1875 4.1875 5.1875 6.1875
min(a) max(a)
argmin() ragmax() 记录最小值最大值得小标 片平滑成一维之后的下表
unravel_index(index,shape) 根据 shape 将一维下表转化成多维下标
ptp() 计算最大值与最小值得差
median 只算中位数
例:
np.unravel_index(np.argmax(b),b.shape)
得到最大值的多维下标
numpy的梯度函数
np.random.gradient(f)
计算数组元素中的梯度 当f为多维是,返回每个维度的梯度
梯度分
存在两侧值
只有一侧值
计算
二维数组则返回两个数组表示分别的梯度
返回这个元素在这层维度的梯度
实例: 图像的手绘表示
PIL 库 第三方库 处理图像的库
python image library
from PIL import Image
表示一个Image类 一个图像
from PIL import Image
import numpy as np
im=np.array(Image.open("D:/pycodes/beijing.jpg"))
print(im.shape,im.dtype)
>>(669,1012,3) uint
RGB 值
图像的变换
读入图像 获得RGB值 修改后保存为新的图片
a=np.array(Image.open("asdsd"))
b=[255,255,255] -a
im=Image.fromarray(b.astype('uint8'))
im.save("asas")
计算像素补值?
np.array(Image.open("asasas") .convert("L") )
convert 方法对应打开元素的灰度值
图像的手绘效果
特征:
1.黑白灰色
2.边界线条重
3.相同或相近色彩趋于白云
4.略有光源效果
Python数据分析与展示[第一周]的更多相关文章
- Python数据分析与展示[第二周]
matplotlib 有各种可视化的类构成 一般调用 matplotlib.pypolt 这个命令字库 相当于快捷方式 plt.plot(a) 只有一个一维列表 x轴充当列表索引 plt.ylabel ...
- Python学习之旅--第一周--初识Python
一:Python是一种什么样的语言? 1.语言的分类: a.编译型语言和解释性语言: 通常所说的计算机语言分为编译型和解释型语言.编译型语言典型的如C,C++,通常在程序执行之前必须经由编译器编译成机 ...
- 【学习笔记】PYTHON数据分析与展示(北理工 嵩天)
0 数据分析之前奏 课程主要内容:常用IDE:本课程主要使用:Anaconda Anaconda:一个集合,包括conda.某版本Python.一批第三方库等 -支持近800个第三方库 -适合科学计算 ...
- Python数据分析与展示[第三周](pandas简介与数据创建)
第三周的课程pandas 分析数据 http://pandas.pydata.org import pandas as pd 常与numpy matplotlib 一块定义 d=pd.Series(r ...
- Python数据分析与展示第2周学习笔记(北理工 嵩天)
单元4:Matplotlib库入门 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt # -*- cod ...
- Python数据分析与展示第0&1周学习笔记(北理工 嵩天)
一前奏 1..Python语言开发工具选择 IDLE:自带默认常用入门级 PyCharm:简单.集成度高 Anaconda:awesome IDE较为简单,不做详细记录. 二.表示 1.numpy库入 ...
- Python数据分析与展示[第三周](pandas数据类型操作)
数据类型操作 如何改变Series/ DataFrame 对象 增加或重排:重新索引 删除:drop 重新索引 .reindex() reindex() 能够改变或重排Series和DataFrame ...
- Python数据分析与展示[第三周](pandas数据特征分析单元8)
数据理解 基本统计 分布/累计统计 数据特征 数据挖掘 数据排序 操作索引的排序 .sort_index() 在指定轴上排序,默认升序 参数 axis=0 column ascending=True ...
- Python数据分析与展示第3周学习笔记(北京理工大学 嵩天等)
入门学习马上结束辽. 1.Pandas库 import pandas as pd 两个数据类型:Series,DataFrame Series类型:数据+索引 自定义索引 b = pd.Series( ...
随机推荐
- Linux常用技巧
1.解决不能中文显示 xshell 终端语言显示选择UTF-8 #yum groupinstall chinese-support 2.heredocument报错“unexpected end of ...
- vue 生产环境和测试环境的配置
我们引用的是axios 给src目录增加 api 文件夹 里面写上index.js // 配置API接口地址 var root = process.env.API_ROOT // 引用axios va ...
- MYSQL错误代码和消息
服务器错误信息来自下述源文件: · 错误消息信息列在share/errmsg.txt文件中.“%d”和“%s”分别代表编号和字符串,显示时,它们将被消息值取代. · 错 ...
- JZOJ5966【NOIP2018提高组D2T3】保卫王国(并查集)
题目 还是懒得把题目放上来了. 大意:给你一棵带点权的树,你要花费一些代价选择一些点使得相邻的两个点至少有一个被选. 然后有很多个询问,每个询问强制两个点的状态,问强制了这两个点的状态后的方案. 比赛 ...
- pycharm每次新建项目都要重新安装一些第三方库的解决办法(转载防删)
目前有三个解决办法,也是亲测有用的: 第一个方法:因为之前有通过pycharm的project interpreter里的+号添加过一些库,但添加的库只是指定的项目用的,如果想要用,就必须用之前的项目 ...
- JS两个相同的字符串被判断为不相等问题
今天在写js的时候,遇到一个奇怪的问题,明明两个字符串相等,用alert()打印出来都一样,typeof的结果都是string, 仔细查看过了首尾都没有空格. 可是用a==b却判断为不相等 后来在网上 ...
- SQL Server中存储过程与函数的区别
本质上没区别.只是函数有如:只能返回一个变量的限制.而存储过程可以返回多个.而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行.执行的本质都一样. 函数限制比较多,比如不能用临 ...
- GC Roots的几种对象
在java语言里,可作为GC Roots的对象包括下面几种: >虚拟机栈(栈帧中的本地变量表)中的引用的对象: >方法区中类静态属性引用的对象: >方法区中常量引用的对象: > ...
- py3.x和py2.x的区别
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...
- 【vue】imitate-beautiful-thing
我从未见过这么美妙的项目,当然与我接触的项目少有关,但是这个项目满满的艺术气息,让人沉醉,让人忍不住的去研究代码. 先放项目地址:https://github.com/eidonlon/imitate ...