python文件和数据格式化思维导图,思维导图:Numpy+Pandas
思维导图:Numpy+Pandas
附:文本结构
Numpy+Pandas
Numpy
基于矩阵运算的模块
数组转矩阵
A = np.array([[1,2,3],[2,3,4]])
矩阵属性
ndim
维度
shape
形状
size
元素个数
创建矩阵
array
数组形式初始化
dtype
int
int32
float
float32
ones
全1的矩阵
zeros
全0的矩阵
empty
所有元素都接近0的矩阵
np.random.random
随机生成指定形状的矩阵
arange
(start , end , step)
区间
[start,end)
步长
step
默认为 1
linspace
(start , end , num)
区间
[start,end]
点的数量
num
reshape
变形
基本运算
加减
N次方
A**N
普通乘法(同位置元素相乘)
*
矩阵乘法(前者的行元素乘后者的列元素)
写法1
np.dot(A, B)
写法2
A.dot(B)
基本运算2
sum、min、max
axis=0
按列计算
axis=1
按行计算
默认不设置axis
对全部元素
argmin、argmax
求最值的索引
mean、average
求均值
median
中位数
cumsum
累加
[1,2,3,4]=>[1,3,6,10]
diff
累差
[1,2,3,4]
[1,1,1]
后项与前项的差值
nonzero
找出非零项,并将N维度索引分开成N个一维矩阵表示
sort
从小到大排序
可控制axis,默认是axis=1(行)
转置
方法1
A.T
方法2
np.transpose(A)
clip(Array, Array_min, Array_max)
将超出边界的值调整为指定的边界值,未超出的值继续保持原值
索引
表示方式
A[I][j]
A[i, j]
切片操作
start:end
A[2,3:5]
行索引为2,列索引为区间[3,5)
A[:,:5]
前5列的所有数据
A[:5]
前五行的所有数据
开始索引:结束索引
空值代表边界值
::n
A[::3]
跳步,每3个数取第一个数
A.flatten()
展开为1维矩阵
A.flat
是一个迭代器
for a in A.flat
遍历元素
合并
np.vstack(A,B)
纵向合并
[[A],[B]]
np.hstack(A,B)
横向合并
[A,B]
np.concatenate((A,B,B,A),axis=1)
多个矩阵纵向合并
np.concatenate((A,B,B,A),axis=0)
多个矩阵横向合并
一维矩阵(n个元素)的转置
先转成二维
shape=(1,n)
A[np.newaxis,:]
A.reshape(1,A.size)
shape=(n,1)
A[:,np.newaxis]
A.reshape(A.size,1)
再进行转置
newA.T
分割
等量分割
纵向分割
np.split(A,2,axis=1)
np.vsplit(A,2)
横向分割
np.split(A,2,axis=0)
np.hsplit(A,2)
每个分块必须等量,否则报错
不等量分割
纵向分割
np.array_split(A,2,axis=1)
横向分割
np.array_split(A,2,axis=0)
分块可不等量
赋值
浅拷贝
B=A
B和A是同一个对象,变化同步
深拷贝
B=A.copy()
B和A是不同对象,变化不同步
Pandas
主要两个数据结构
Series
pd.Series(indexA,valueA)
左边索引,右边值
pd.Series(valueA)
不配置索引,则索引从0开始++
DataFrame
每个列的类型可不同
df = Pandas.DataFrame(value, 行索引标签, 列索引标签)
value
二维数组或矩阵
行索引标签
行索引,类似数据库表的行号
列索引标签
列索引,即表头,类似数据库表的字段名
df = Pandas.DataFrame(value)
自动生成索引
df[‘列标签’]
按列索引取出一列
df.index
df.columns
df.value
df.describe()
数据情况
df.sort_index(axis=1, ascending=False)
对索引排序,升序
ascending=True为降序
df.sort_values(by=‘列标签’)
对某列值排序
常用方法
pd.date_range('20160101',periods=6)
生成6个日期
选择数据
df[位置:位置]
[s,e)
df[‘标签’:‘标签’]
[s,e]
df[‘列标签’] = df.column
选择某列
df.loc(‘行标签’,‘列标签’)
根据标签,选择某行,某列
可配合 : 使用
df.iloc(行位置,列位置)
根据位置,选择某行,某列
可配合 : 使用
df.ix(行位置,‘列标签’)
混合标签和位置,选择某行,某列
可配合 : 使用
df[df.‘列标签’<8]
使用判断进行筛选
修改数据
选择数据=新赋值
新增数据
df[‘newColumn’]=pd.Series(......)
为DataFrame添加一列新Series
长度需要对齐
删除NaN的数据
df.dropna(axis=0,how=‘any’)
将有NaN值的行删除
df.dropna(axis=1,how=‘all’)
将整列全是NaN的列删除
替换NaN的数据
df.fillna(value=0)
将NaN替换成0
判断是否是NaN
df.isnull()
对每个元素分别进行判断
pd.any(df.isnull)
含有NaN就是True
读取文档
data = pd.read_csv(‘filepath’)
读取csv
支持的格式
csv
Excel
json
html
pickle
......
data. to_pickle(‘data.pickle’)
转成pickle持久化数据存在磁盘
合并
np.concat([df1, df2, df3], axis=1, ignore_index=True, join=‘inner’)
默认axis=0
纵向
默认ignore_index=False
索引会重复
默认join=‘outer’
外连接,不抛弃对不上号的部分
内连接则会抛弃
join_axes = [df1.index]
依据df1的index进行合并
df1没有的部分将被抛弃
df1.append([df2, df3])
只有纵向合并
np.merge(left, right, on=[‘key1’, ’key2’], how=‘left’)
类似数据库的leftTable left join rightTable on leftTable.key1=rightTable.key1 and ...
how
inner
默认
outer
left
right
indicator=True
会把合并情况放在最后一列
indicator=‘命名’
会把合并情况放在最后一列,并给出列名
suffixes=['_boy', '_girl']
为标签添加后缀
区分数据所属,防止标签重叠
pd.merge(left, right, left_index=True, right_index=True, how='outer')
根据索引号合并
画图
import matplotlib.pyplot as plt
plt.plot([xx],[yy])
设置方式1
data = pd.Series()
data.plot()
设置方式2
data = pd.DataFrame
plt.show()
渲染
图类型
plot.scatter
plot.bar
plot.box
plot.hist
plot.area
plot.kde
plot.hexbin
配置
ax = data.plot.scatter(x='A',y='B',color='DarkBlue',label='Class1')
data.plot.scatter(x='A',y='C',color='LightGreen',label='Class2',ax=ax)
ax=ax
将此图画在ax同一张画布上
计算速度优化
矩阵存储方式选择
order=‘C’
C-type以行为主在内存中排列
order=‘F’
Fortran以列为主在内存中排列
根据使用的级别是行是列,进行选择
view比copy快
能不copy就不copy
ravel是flatten的view方式,快很多
一个个选是copy
:是view
::也是view
加法性能对比
a = a + 1
最慢
是copy,并且要转到下一步np.add再进行运算
np.add(a, 1)
稍快
是copy
a += 1
更快
是view
np.add(a, 1, out=a)
最快
是view
numpy比pandas速度快
pandas是基于numpy的扩展
python文件和数据格式化思维导图,思维导图:Numpy+Pandas相关推荐
- Python文件和数据格式化学习笔记
一.文件的使用 1. 文件的定义: 文件是数据的抽象和集合:文件是存储在辅助存储器上的数据序列:文件是数据存储的一种形式: 2. 文件的展现方式:文本文件和二进制文件(两种) 文本文件和二进制文件只是 ...
- Python文件和数据格式化(教程)
文件是一个存储在副主存储器的数据序列,可包含任何数据内容. 概念上,文件是数据的集合和抽象,类似的,函数是程序的集合和抽象. 用文件形式组织和表达数据更有效也更加灵活. 文件包括两种形式,文本文件和二 ...
- 7 Python文件与数据格式化
一.标准库OS常用命令 需要先自建一个文件夹,并将当前目录修改为该文件夹. import os os.getcwd() #查看当前路径 os.chdir("C:/Users/盛小胖yx/De ...
- python文件与数据格式化
[一]文件概述 1.文件标识 意义:找到计算机中唯一确定的文件 组成:文件路径.文件名主干.文件扩展名 2.文件类型(文本文件 ,二进制文件) 文本文件:专门存储文本字符数据. 二进制文件:不能直接使 ...
- Python 文件与数据格式化
目录 一.文件概述 二.文件的基本操作 三.文件与目录管理 一.文件概述 1.文件的标识:意义:找到计算机中唯一确定的文件. 组成:文件名主干.文件扩展名以及文件路径. 2.类型:计算机中的文件分为文 ...
- python——文件和数据格式化
一: 文件的打开关闭 文件处理的步骤: 打开-操作-关闭 文件的打开 <变量名> = open("<文件名>, <打开模式>") 打开模式 'r ...
- python——文件和数据格式化练习题:文件独特行数
描述 统计附件文件中与其他任何其他行都不同的行的数量,即独特行的数量. 问题分析 这道题是python123课程里面的一道题,我先说一下我的分析过程: 要实现问题找到不同行数,那就要用每一行分别和出它 ...
- Day06-Python文件和数据格式化
简介 此系列主要记录若干年前学习Python的心路历程,本文为第六章(同时也是基础内容的最后一章)Python文件和数据格式化.经过以上学习应该已经掌握Python的基本编程. 文件的使用: 数据的抽 ...
- python第七章文件和数据格式化选择题_《计算机二级Python语言程序设计考试》第7章:文件和数据格式化...
注明:本系列课程专为全国计算机等级考试二级 Python 语言程序设计考试服务 目录 考纲考点 文件的使用: 文件打开.关闭和读写 数据组织的维度:一维数据和二维数据 一维数据的处理:表示.存储和处理 ...
最新文章
- 3.request response
- 谷歌顶级量子科学家详述他为何从谷歌辞职
- 非营利组织Eatbch展示了每一个小的微交易是如何起作用的
- 浅谈微博精准推荐——用户行为挖掘与相似用户挖掘
- linux——ISCSI 网络磁盘共享
- bootstrap源码分析之form、navbar
- SpringBoot 对象输出
- 机器学习:随机森林RF-OOB袋外错误率
- php连接函数config,smarty内置函数config_load用法实例
- 使用Maven构建Struts2项目
- excanvas让canvas兼容ie7,8
- .Net Core之初识及WebApi的简单使用和发布
- APP软件下载导航站源码+带后台版/亲测可用
- IAR for MSP430安装教程
- Xp系统优化 服务相关命令(6)
- 用Python制作圣诞树
- 主动降噪技术matlab,主动降噪技术(ANC)的前生今世--原理仿真
- PHP框架高级编程——应用Symfony、CakePHP和Zend
- 尚学堂视频笔记一:java面向对象基础和java基础知识
- GDB attach 调试