数据分析入门——numpy
一、什么是numpy
Numpy提供了一个在Python中做科学计算的基础库,重在数值计算,主要用于处理多维数组(矩阵)的库。用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。本身是由C语言开发,是个很基础的扩展,Python其余的科学计算扩展大部分都是以此为基础。
二、快速入门numpy库
1.导入numpy(安装anaconda已带很多科学计算包,无需安装导入即可)
导入画图工具matplotlib,用于数据分析与可视化
打开一张猫的图片,发现计算机眼里,它只是一个数组,这样numpy也就上场了!:
使用type就能发现,他是Numpy的ndarray,使用imshow()可以查看这只可爱的猫:
三、创建numpy.ndarray
1.使用np.array,由python的list创建
多维数组合理:
通过shape查看是几行几列的:
图片的分别为长宽加最后一维:颜色
2.通过rountines函数创建ndarray
ones:创建指定形状数组,数据元素使用1来填充
使用imshow则可以显示这张图片了:
plt.imshow(n3)
// zeros同理
使用其他自定义数字,通过full创建:
通过eye创建对角线矩阵:对角线为1,其他均为0(满秩)
通过linspace创建有规律的数组:(默认取样数量num为50个)
通过arange创建数组,在给定区间创建均匀间隔的值:(左闭右开)
通过randint生成随机数组,例如0到100之间,生成5个数:
通过randn生成一个标准正太分布的数组
通过normal生成自定义的正太分布(其中loc参数表示拐点,scale表示波动性)
通过random.random生成0-1左闭右开的随机数组
四、ndarray的基本操作
1.索引
和列表完全一致,使用下标取值
多维同理,例如使用randint(0,100,(3,4))创建的3行四列数组,使用n1[0,1]取出第0行第1个
2.切片
一维数组与列表切片完全一致,多维同理
多维数组和一维数组是同理的(比如3维数组可以看成元素是2维的1维数组),多维数组的切片,就是三维切哪些,二维切哪些,一维切哪些
使用-1的步长表示反转:n1[::-1]
3.变形
使用reshape,传入tuple进行变形操作(多维数组传入负数直接变成一维数组:cat.reshape(-1))
4.级联
np.concatenate() ,参数是列表(可以传List或者tuple),纬度和形状必须相同,通过axis可以改变级联的方向
使用axis改变级联方向
图片同理:
使用np.hstack与np.vstack进行纬度变更,分别是变成水平与垂直转换,来处理自己
5.切分
使用split切分,在索引位置切分,分成多个数组:
使用vsplit与hsplit进行垂直于水平切分:
6.副本
需要注意的是所有赋值运算不会给ndarray创建副本,原对象的改变,也会改变ndarray的值(两个ndarray之间赋值,赋值的改变会影响被赋值的对象) ,要使用副本,使用copy:n2 = n1.copy()。否则直接 n2 = n1,n1会影响n2的值
五、ndarray的聚合操作
可以直接调用ndarray的函数操作,例如求最大最小值:
推荐使用np.max等操作,可以控制对某个轴(axis = 0时是Y轴)求最大值:
其他几个max、min、sum等同理
NumPy:数学和统计方法 常用函数: sum 求和
cumsum 求前缀和
mean 求平均数
std 求标准差
var 求方差
min 求最小值
max 求最大值
argmin 求最小值索引
argmax 求最大值索引
六、ndarray的矩阵操作
1.算数运算
基础的加减乘除(通过基础的 + -等计算符号,或者通过np.add等进行操作)
2.矩阵积dot
必须是shape相反的,n行m列,乘以m行n列
矩阵乘法原理如下:
七、ndarray广播机制
1) 为缺失元素补1
2)假定缺失元素用已有值补充
https://www.cnblogs.com/jiaxin359/p/9021726.html
例如,一个2行3列的数组与一行3列的数组进行相加,就会有广播机制:
八、ndarray的排序
1.快速排序
np.sort():不改变输入
ndarray.sort():本地处理,不占用空间,但改变输入
2.部分排序
只取最大的k个值或最小的k个值:np.partition(n,k):k为正时为最小的几个数,k为负时为最大的几个数(但这几个数并没有排序)
参考:https://blog.csdn.net/qq_37007384/article/details/88668729
数据分析入门——numpy的更多相关文章
- 数据分析入门——numpy类库基础知识
numpy类库是数据分析的利器,用于高性能的科学计算和数据分析.使用python进行数据分析,numpy这个类库是必须掌握的.numpy并没有提供强大的数据分析功能,而是它提供的ndarray数据结构 ...
- Python数据分析入门
Python数据分析入门 最近,Analysis with Programming加入了Planet Python.作为该网站的首批特约博客,我这里来分享一下如何通过Python来开始数据分析.具体内 ...
- Python数据分析入门之pandas基础总结
Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...
- Python数据分析入门与实践 ✌✌
Python数据分析入门与实践 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 这是一个数据驱动的时代,想要从事机器学习.人工智能.数据挖掘等前沿技术,都离不开 ...
- 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片
概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...
- 数据分析 之 NumPy
目录 简单了解数据分析 Python数据分析三剑客(Numpy,Pandas,Matplotlib) 简单使用np.array() 使用np的routines函数创建数组 ndarray N维数组对象 ...
- Python数据分析入门与实践
Python数据分析入门与实践 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以关 ...
- 数据分析01 /numpy模块
数据分析01 /数据分析之numpy模块 目录 数据分析01 /数据分析之numpy模块 1. numpy简介 2. numpy的创建 3. numpy的方法 4. numpy的常用属性 5. num ...
- 数据分析之Numpy库入门
1.列表与数组 在python的基础语言部分,我们并没有介绍数组类型,但是像C.Java等语言都是有数组类型的,那python中的列表和数组有何区别呢? 一维数据:都表示一组数据的有序结构 区别: 列 ...
随机推荐
- Spring源码窥探之:Spring AOP初步使用
AOP即面向切面编程.它的底层实际是用了spring的动态代理,具体是JDK的代理还是CGLIB的代理,就视情况而定了.本博客园仅仅作为平时记录,显得有些杂乱无章,如果想了解动态代理,设计模式,请访问 ...
- 题解 UVa11388
题目大意 \(T\) 组数据,每组数据给定两个整数 \(G,L\),输出数对 \(x,y\) 满足 \(GCD(x,y)=G,LCM(x,y)=L\) 且 \(x\) 最小.若无解则输出 \(-1\) ...
- Ubuntu18.04下安装Sublime Text3并解决不能输入中文
Ubuntu18.04下安装Sublime Text3并解决不能输入中文! 废话不多说,直接按顺序执行下面命令开始安装! wget -qO - https://download.sublimetext ...
- (转载) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建AlwaysOn,前两篇是为搭建AlwaysOn 做准备的 步骤 这一篇依然使用step by step的方式 ...
- spring-data-jpa一对多多对一多对多关联
一对多.多对一 Country类 @Entity @Table(name = "Country") public class Country { @Id //sequence id ...
- [LuoguP1462]通往奥格瑞玛的道路
题目链接 题意简述:现在有一个图,每经过一个点就会交钱,走一条路就会扣血.在血量>0的前提下,要从1走到n点,并且要求路径上交钱的最大值最小. 解题思路:首先最大值最小,我们选择二分.目前有两个 ...
- HTML5自定义属性操作
一.自定义属性(html5标准)data-属性名称="属性值" 自定义属性的名称驼峰式命名规则需要用-隔开 自定义属性名称如果连在一起写,大写会自动转为小写 data-user=& ...
- 洛谷 4290 [HAOI2008]玩具取名 题解
P4290 [HAOI2008]玩具取名 题目描述 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用&qu ...
- NOIP前做题记录
鉴于某些原因(主要是懒)就不一题一题写了,代码直接去\(OJ\)上看吧 CodeChef Making Change 传送门 完全没看懂题解在讲什么(一定是因为题解公式打崩的原因才不是曲明英语太差呢- ...
- [ThinkPHP6.*安装 (草稿先发布,再维护)
ThinkPHP6.0的安装,官方文档中有详细的说明,不过在安装之前,大家还是要做一些准备的,就是PHP本地开发环境 的搭建. 官方手册地址:https://www.kancloud.cn/manua ...