numpy库学习总结
numpy库
目录
一、数组
1、数组创建
2、数组属性
3、缺失值问题
4、特殊数组
5、np.random 模块
6、数组的排序
7、数组的重塑
8、索引和切片
9、数组的合并
10、数组的运算
二、np下面的通用函数
三、ndarry实例的常用方法
四、np.char模块下面的字符串函数
五、矩阵运算、协方差
六、np其他常用函数
一、数组
1、数组创建
import numpy as np
dir(np) # 查看np库中的函数
np.array([['张','男','19'],['李','女','20']],dtype='object')
# 当输入不同数据类型的元素时,需要指明数据类型,object使用最多,否则全部转化为字符串
np.arange(1,5,0.4) # 随机快速生成数组
np.arange(10,0,-1) # 倒序生成
np.linspace(1,8,5) # 第一、二位数是起始和结束位置,第三位意思是等分多少份,包含最后一位
np.linspace(1,8,5,endpoint=False) # 不包含最后一位,再等分5份,表示1和8起始点在一个地方
#如何查看numpy定义了哪些dtype?
np.typeDict # 特殊元素组成的数组,可以是集合和字典等
a=np.array([{1,2},{3,4},{5,6}],dtype="object")
#注意这里dtype="object"可以省略。
#a是一个一维数组,它的shape是(3,)
2、数组属性
a.ndim # 返回数组维度
b.shape # 返回一个元组, 表示2行3列
a.size # 返回数组包含多少个元素
b.dtype #返回数据类型
a.itemsize # 表示一个元素占用多少个字节
a.size * a.itemsize # 返回数组占用多少个字节
3、缺失值问题
np.nan # 引用缺失值函数
a.dtype # 缺失值nan默认为float,所有它会将前面的整数型也转换成浮点型
np.array([1,2,None]) # 缺失值None会默认加上 dtype=object,所有库都可以识别
out[5]:
array([1, 2, None], dtype=object)
np.array(['1','2',np.nan]) # 缺失值nan 需要定义类型为object,只有np库或关联的库可识别np.isnan(a) #识别缺失值,只能识别数值型,返回布尔值,应用范围非常小
4、特殊数组
np.zeros((2,3)) # 生成全部为0的数组,输入的必须为元组的形式
np.ones((3,4)) # 生成全部为1的数组
np.eye(2) # 生成单位矩阵
np.diag([1,2,3,4]) # 生成对角阵
np.empty((2,3)) # 随机生成没有初始化的数组
5、np.random 模块
np.random.seed(100) # 指定随机种子,保证每次生成的随机数都是一样
np.random.rand(3,4) # 在0到1之间随机生成
np.random.uniform(10,50,(4,3)) # 第一、二位是起始范围,第三位元组表示需要生成的行列数
np.random.randn(3,4) #标准正态分布
np.random.randint(10,30,(3,4)) # 第一、二位是起始范围,第三位元组表示需要生成的行列数
np.random.choice(['张三','李四','王五'],10) # 从前面列表中随机抽取10个a= np.array([1,2,3])
np.random.shuffle(a) #随机播放,直接影响数组a# 累计求和
a.cumsum()
6、数组的排序
np.argsort(a) # 返回索引值升序排列
np.sort(a) # 按元素大小升序,不会改变数组a
a.sort() #直接改变数组a
np.argsort(b,axis=0) # axis=0,按列排序,返回索引值,=1时,按行排序
sorted(b,key=lambda x:x[1])
#默认进行升序排序,可以通过reverse参数进行设定
7、数组的重塑
np.arange(15).reshape(3,5) # 随机生成一个数组,然后划分3行5列
np.arange(6).reshape(2,-1) # -1 表示替代列数(函数自行计算列数),此题-1就表示6/2=3列
c.ravel() # 多维数组压缩到一维数组
np.tile(a,(3,3)) # 按a,行和列分别扩大3倍
8、索引和切片
a[[0,2]] # 切取不连续的行,取一个不连续的行或列时候就需要用中括号,也就是列表
a[1:3,1] # 逗号左边表示行,右边表示列数# 布尔索引
c[c[:,0]<0.5] # 切取第一列小于0.5的行
9、数组的合并
np.concatenate((a,a),axis=0) # axis=0,增加行数,纵向合并
np.concatenate((a,a),axis=1) # axis=0,增加行数,横向合并
10、数组的运算
a+b # a和b都是数组,a和b的对应元素相加
a*b # 对应元素相乘# 广播运算,后缘维度相同的两个数组也可以运算,也就是列数相同,又叫沿着第0维度广播
a = np.array([[0,0,0],[1,1,1],[2,2,2],[3,3,3]])
b= np.array([1,2,3])
a+b
out[8]:
array([[1, 2, 3],[2, 3, 4],[3, 4, 5],[4, 5, 6]])
#某个数组一个维度为1 ,其他维度都相同的两个数组也可以运算,又叫沿着第1维度广播
a = np.array([[0,0,0], [1,1,1],[2,2,2],[3,3,3]])
b=np.array([[1],[2],[3],[4]])
a+b
out[12]]:
array([[1, 1, 1],[3, 3, 3],[5, 5, 5],[7, 7, 7]])
二、np下面的通用函数
# 一元通用函数包括np.abs、np.sqrt、np.square等。
np.add(a,b) # a+b,对应元素相加
np.multiply(a,b) # a*b,对应元素相乘
np.maximum(a,b) # 两个数组对应位置的元素相比,返回较大值
三、ndarry实例的常用方法
a.T # 矩阵转置
a.transpose(1,0) # 矩阵转置,应用范围更广,三维使用
a.astype('str') # 转换数据类型
a.tolist() # 转换成列表
四、np.char模块下面的字符串函数
np.char.add(a,b) # 连接对应位置的字符串
np.char.upper(a) # 转换成大写
d=np.char.split(a,sep=" ") # 将字符串转换成列表,sep参数是设置分隔符
五、矩阵运算、协方差
# 点积
a.dot(b) # 方法1
a @ b # 方法2
np.matmul(a,b) # 方法3# 内积运算 一个矩阵乘以另外一个矩阵的转置就是内积
np.inner(a,a) # 方法1
np.dot(a,a.T) # 方法2# 求行列式和逆矩阵,矩阵必须是方阵
np.linalg.det(a) # 行列式
np.linalg.inv(a) # 逆矩阵# 二维数组的协方差矩阵
data1=np.random.rand(3,10) #随机生成一个二维数组
np.cov(data1) #可以将每一行看做一个X,3个X的协方差,输出3*3的列表
六、np其他常用函数
sum([1,2,3],5) # 5是起始值,即5+1+2+3=11
a = np.array([[1,2,3],[3,4,5]])
np.sum(a,1) # 1 表示轴的意思,也就是行相加,列不变,返回([6,12])
sum(a,2) # 每列分别相加再加2,返回([6,8,10])
np.max(a) # 返回数组中最大的值5
a.argmin(a) #返回数组中最小的值1
np.max(a,0) # 0 表示0轴的意思,返回每一列的最大值([3,4,5])
a.argmax(axis=0) # 返回每一列的最大值的索引([1,1,1],dytype=int64)np.sum(a,axis=0,keepdims=True) # 每列和二维数组
out[12]:
array([[4, 6, 8]])
numpy库学习总结相关推荐
- python的 numpy库学习总结和介绍(超详细)模块
目录 前言 numpy是什么? 一.创建数据容器 1.np.array(),通过传递一个列表,元祖来创建 2.np.zeros(),np.ones(),np.empty(),np.full(),传递对 ...
- Numpy库学习—squeeze()函数
numpy.squeeze()函数 语法:numpy.squeeze(a,axis = None) 1)a表示输入的数组:2)axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错: ...
- numpy库学习 向量 矩阵 均为有两个[[ ,而秩为1的数组只有一个[ np.array([[]]) 与np.array([])的区别
对于一维普通数组取shape 时只有第一项有值 举例 (4,) 对于二维普通数组取shape 时才会有完整的第二项值 举例 (4,1) https://blog.csdn.net/zenghaitao ...
- python中size的用法.dim_【Numpy库学习笔记】Numpy中dim、shape和size的理解
一.dim 理解: dim就是维数,比如数组会有一维数组,二维数组--.numpy的dim维数同理. 那如何判断numpy的维数,最简单的方法就是数一数"中括号"的数量.没有中括号 ...
- Numpy库的学习(三)
今天我们继续学习一下Numpy库的学习 废话不多说 ,开始讲 比如我们现在想创建一个0-14这样一个15位的数组 可以直接写,但是很麻烦,Numpy中就给我们了一个方便创建的方法 numpy中有一个a ...
- python numpy库_numpy库学习总结(基础知识)
最近在学习Python中OpenCV库,学习花了很多时间,发现基础知识很重要,尤其是numpy这个库,在进行程序开发时,处理大量类似数组这种数据结构时,它的重要性等同于Python中的列表,像前篇我们 ...
- PaddlePaddle入门|百度零基础实践深度学习课程笔记——使用Python语言和Numpy库来构建神经网络模型
前面的课程已经讲解了Python的一些基础操作和使用Notebook实现编程的基础知识,下面通过用Python语言和Numpy库来构建神经网络模型来初步实践. 波士顿房价预测任务 问题描述 波士顿房价 ...
- python学习笔记之numpy库的使用——超详细
文章目录 NumPy介绍 一.如何创建 1.导入Numpy库,并命名为np: 2.查看版本 3.通过列表创建一维数组: 4.通过列表创建二维数组: 5.创建全为0的二维数组 6.创建全为1的三维数组 ...
- buffer转int python_Python学习教程第23天numpy库(上)
点击蓝字 关注我们 numpy库的重要性 numpy库是进行数据处理时的必须库之一,大家都知道Python结合几个外加库进行数据处理,好用到与matlab say goodbye! numpy库的安装 ...
- python学习——numpy库
属性: 维度 元素类型 大小 形状 创建一维 : np.arange np.linspace 注意range()只能for循环 创建零数组 一数组 单位数组 数组拼接: hstack vstack s ...
最新文章
- matlab生成ai图片,MATLAB绘图:导出矢量图
- 《一本书读懂法律常识》笔记
- VC6.0下opencv1.0的环境配置
- 将Notepad++配置成Java轻量级的IDE
- html图片平移,CSS3 按钮悬停时背景图片平移入场
- java 日期只计算年月日大小_Java 计算两个日期相差多少年月日
- 前端怎么使用jsessionid_前端搞微前端 | 侑夕 - 如何落地微前端一体化运营工作台...
- 009.共享目录下VS编写的程序在linux下打开出现中文乱码
- 逻辑电路 -异或门Xor Gate
- 论文笔记_S2D.13-2017-3DV-稀疏不变的卷积神经网络(Sparsity Invariant CNNs)
- 地理信息安全在线培训考试系统题库-多选题
- list()与tolist()区别
- sql未保存文档找回
- 爬虫————stocksnap国外高清图片网站
- 写论文不会写摘要,演讲不会写开场白,不会写广告词,SCQA模型帮你搞定
- dejavu中如何添加html文件,如何使用iText和Flying Saucer在HTML中创建PDF格式的字体? | 所有编程讨论 | zhouni.net...
- 软件设计架构中各模块breakdown
- Python制作酷炫的动画效果
- 计算机三级网络技术最全知识点总结三
- 如何解决eNSP启动AR/WLAN设备失败问题