首页 > Python资料 博客日记
python每日学习11:numpy库的用法(下)
2024-08-05 08:00:05Python资料围观51次
本篇文章分享python每日学习11:numpy库的用法(下),对你有帮助的话记得收藏一下,看Python资料网收获更多编程知识
python每日学习11:numpy库的用法(下)
-
数组的拼接
名方法称 说明 concatenate 连接沿现有轴的数组序列 hstack 水平堆叠序列中的数组(列方向) vstack 竖直堆叠序列中的数组(行方向) concatenate 函数用于沿指定轴连接相同形状的两个或多个数组,格式:numpy.concatenate((a1, a2, …), axis) # 列表的拼接 a=[1,2,3] b=[4,5,6] a.extend(b) # 一维数组的拼接 x=np.arange(1,4) y=np.arange(4,7) print(np.concatenate([x,y])) # 二维数组的拼接 a=np.array([[1,2,3],[4,5,6]]) b=np.array([['a','b','c'],['d','e','f']]) print(np.concatenate([a,b])) print(np.concatenate([a,b],axis=0)) print(np.concatenate([a,b],axis=1)) # hstack()、vstack()和dstack()的使用 # numpy.hstack它通过水平堆叠来生成数组。 # numpy.vstack 它通过垂直堆叠来生成数组 # vstack 与hstack的使用 a=np.arange(1,4) b=np.arange(4,7) print(np.vstack([a,b])) print(np.hstack([a,b])) # 三维数组的拼接 # axis=0可以使用vstack替换 # axis=1可以使用hstack替换 # axis=2可以使用dstack替换 aa=np.arange(1,37).reshape(3,4,3) bb=np.arange(101,137).reshape(3,4,3) print(np.concatenate((aa,bb),axis=0))#6 4 3 print(np.concatenate((aa,bb),axis=1)) #3 8 3 print(np.concatenate((aa,bb),axis=2))#3 4 6
-
数组的转置
# 数组的转置:将行与列对调,即第一行变成第一列…或第一列变成第一行…的操作即使转置操作。 # transpose进行转换 a=np.arange(1,13).reshape(2,6) print(a) print(a.transpose()) print(a.T)
-
数组的分隔
# numpy.split 函数沿特定的轴将数组分割为子数组,格式如下:numpy.split(ary, indices_or_sections, axis) # split分隔 x=np.arange(1,9) a=np.split(x,4) print(a) print(a[0]) print(a[1]) print(a[2]) print(a[3]) #传递数组进行分隔 b=np.split(x,[3,5])#左开右闭 print(b) # 水平分隔:使用hsplit函数可以水平分隔数组,该函数有两个参数,第1个参数表示待分隔的数组,第2个参数表示要将数组水平分隔成几个小数组 # hsplit的使用 grid=np.arange(16).reshape(4,4) a,b=np.hsplit(grid,2) print(a) print(b) # 垂直分隔:使用vsplit函数可以垂直分隔数组,该函数有两个参数,第1个参数表示待分隔的数组,第2个参数表示将数组垂直分隔成几个小数组。 # vsplit的使用 grid=np.arange(16).reshape(4,4) a,b=np.vsplit(grid,2)#行分成 0+1 2+3 a,b,c=np.vsplit(grid,[1,3])#行分成 0 1+2 3
-
数学函数
方法 说明 np.abs()、np.fabs() 计算整数、浮点数的绝对值 np.sqrt() 计算各元素的平方根 np.reciprocal() 计算各元素的倒数 np.square() 计算各元素的平方 np.exp() 计算各元素的指数ex np.log() np.log10() np.log2() 计算各元素的自然对数、底数为10的对数、底数为2的对数 np.sign() 计算各元素的符号,1(整数)、0(零)、-1(负数) np.ceil() np.floor() np.rint() 对各元素分别向上取整、向下取整、四舍五入 np.modf() 将各元素的小数部分和整数部分以两个独立的数组返回 np.cos() 、np.sin()、np.tan( 对各元素求对应的三角函数 np.add()、np.subtract()、np.multiply()、np.divide() 对两个数组的各元素执行加法、减法、乘法、除法求每个元素的倒数 a=[3,4,5,6,7,8] b=np.array(a) print(1/b) # reciprocal()函数的使用 a=np.arange(1,10,dtype=np.float32).reshape(3,3) print(np.reciprocal(a)) # square()函数的使用 # 一维数组 a=np.arange(1,10) print(np.square(a)) #二维数组 aa=np.arange(1,13).reshape(3,4) print(np.square(aa)) # sign()函数的使用 a=np.arange(-5,5) print(np.sign(a))#计算各元素的符号,1(整数)、0(零)、-1(负数) # modf()函数的使用 b=np.arange(-5,5,0.4) print(np.modf(b)) # 三角函数的使用:NumPy 提供了标准的三角函数:sin()、cos()、tan()。 x=np.linspace(1,10,5) y=np.sin(x) print(y) # numpy.around(a,decimals) 函数返回指定数字的四舍五入值 # decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置 # numpy.floor() 返回数字的下舍整数。 # numpy.ceil() 返回数字的上入整数。 a=np.array([1.0,4.55,123,0.657,25.323]) print(np.around(a)) print(np.around(a, decimals=1)) print(np.around(a, decimals=-1)) print(np.rint(a)) print(np.floor(a)) print(np.ceil(a))
-
算术函数
# 算术函数:如果参与运算的两个对象 都是ndarray,并且形状相同,那么会对位彼此之间进行(+ - * /)运算。NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。 # 算术函数的使用 a=np.arange(9,dtype=np.float32).reshape(3,3) b=np.array([10,10,10]) print(np.add(a,b)) print(np.subtract(a,b)) print(np.multiply(a, b)) print(np.divide(a, b)) # 算术函数中out参数的使用 x=np.arange(5) y=np.empty_like(x) np.multiply(x,10,out=y) print(y) # mod()函数的使用 # numpy.mod() 计算输入数组中相应元素的相除后的余数。函数 # numpy.remainder() 也产生相同的结果。 a=np.array([10,10,30]) b=np.array([3,5,7]) print(np.mod(a, b)) print(np.remainder(a, b))
-
统计函数
方法 说明 np.sum() 求和 np.prod() 所有元素相乘 np.mean() 平均值 np.std() 标准差 np.var() 方差 np.median( 中数 np.power() 幂运算 np.sqrt() 开方 np.min() 最小值 np.max() 最大值 np.argmin() 最小值的下标 np.argmax() 最大值的下标 np.cumsum() 对数组中元素累积求和,可指定轴 np.cumprod() 对数组中元素累积求积,可指定轴 np.ptp() 计算一组数中最大值与最小值的差,可指定轴 np.unique() 删除数组中的重复数据,并对数据进行排序 np.nonzero() 返回数组中非零元素的索引 power() 函数的使用 x=np.arange(1,5) y=np.empty_like(x) np.power(x,2,out=y) print(y) # median ()函数的使用 a=np.array([4,2,1,5]) print(np.median(a))#计算偶数个的中位数 a=np.array([4,2,5]) print(np.median(a))#奇数个的中位数 a=np.arange(1,16).reshape(3,5) print(np.median(a)) print(np.median(a,axis=0))#中间行 print(np.median(a,axis=1))#中间列 #mean函数的使用 a=np.arange(1,11).reshape(2,5) print(np.mean(a)) print(np.mean(a,axis=0)) print(np.mean(a,axis=1)) # 函数的使用 a = np.random.randint(10,50,size=20) np.max(a) np.sum(a) np.min(a) np.max(a) np.ptp(a) np.unique(a) np.nonzero(a)
-
其他常用函数
方法 说明 np.tile() 将数组的数据按照行列复制扩展 np.repeat() 将数组中的每个元素重复若干次 roll() 沿指定轴对数组元素进行移位 resize() 重新调整数组的大小 place()/put() 将数组中满足条件的元素/指定的元素替换为指定的值 np.savetxt() 将数据保存到txt文件中 np.loadtxt() 从文件中加载数据 np.genfromtxt() 根据文件内容中生成数据,可以指定缺失值的处理等 np.any() 如果数组中存在一个为True的元素(或者能转为True的元素),则返回 np.all() True如果数组中所有元素都为True(或者能转为True的元素),则返回True np.where(条件,x,y) 如果条件为True,对应值为x,否则对应值为y np.dot() 将矩阵相乘 np.sort() 对数组进行排序,返回一个新的排好序的数组,原数组不变 np.sort() 返回的是数组值从小到大排序后元素对应的索引值 # tile()和repeat()函数的使用 a=np.arange(4) np.tile(a,2)##复制2次 np.tile(a,(3,2))#行列复制 print(np.repeat(a, 2)) a=np.arange(1,13).reshape(3,4) np.repeat(a,2) print(np.repeat(a, 2, axis=0)) print(np.repeat(a, 2, axis=1)) # roll()函数的使用 b=np.arange(12) print(np.roll(b, 3))#一维数组,向后调3个 print(np.roll(b, -1))#向前调2个 aa=np.arange(1,13).reshape(3,4) print(np.roll(aa, 2)) print(np.roll(aa, 2, axis=0)) # resize()函数的使用 aa.reshape(4,3)#修改维度,元素个数必须相同 np.resize(aa,(5,6)) #resize重新调整数组的大小,元素个数可以不相同 # replace()和put()函数的使用 aa=np.random.randint(40,100,(3,4)) np.place(aa,aa<60,0)##小于60分的 全部替换为0 aa=np.arange(1,13).reshape((3,4)) np.put(aa,2,100)#put()指定的索引处的元素替换为指定的值 # savetxt()和loadtxt()函数的使用 a=np.random.randint(-50,100,1000) #保存 np.savetxt('savetxt.txt',a,fmt='%d') #加载 b=np.loadtxt('savetxt.txt',dtype=int) # any()、all()函数的使用 x=np.array([False,True,False,1,0,True]) np.any(x)#any函数 只要有一个元素为True,则结果返回True np.all(x)#all函数 只有所有元素都为True,则结果返回True # where()函数的使用 np.random.seed() a=np.random.randint(20,100,10) print(a) print(np.where(a>50,True,False)) # dot函数的使用 x=np.array([[1,2],[3,4]]) y=np.array([[2,3],[1,2]]) x.dot(y)#dot函数 矩阵相乘 矩阵相乘前提是,第一个矩阵的列数和第二个矩阵的行数要相同 x.dot(3) #每个元素与3相乘
-
数组排序
# 数组排序:排序中主要用到的方法是np.sort和np.argsort。其中np.sort()是对数组直接排序。而np.argsort()是返回排序后的原始索引。 # 一维数组排序 a=np.array([5,2,4,5,7,3,8]) print(np.sort(a)) print(np.argsort(a))#np.argsort()是返回排序后的原始索引。 # 二维数组排序 np.random.seed(44) a=np.random.randint(100,size=(4,6)) print(np.sort(a)) print(np.sort(a,axis=0))#上行比下行小 print(np.sort(a,axis=1))#左列比右列小 # 按最后一列进行排序 b=a[:-1] print(b)#可以先获取最后一列的数组 index=np.argsort(b)#获取最后一列数组排序后的原始索引
-
numpy广播机制
# 广播的规则 # 1,如果两个数组维度个数不同,那么小维度的数组形状会在左边补1 # 2,如果两个数组形状在任何一个维度上都不匹配,数组的形状会沿着维度为1的维度扩展到匹配上另一个数组的形状 # 3,如果没有维度形状为1,则会引发异常两个数组相加 # 0 1 2 0 0 0 # 0 1 2 1 1 1 # 0 1 2 2 2 2 a=np.array([0,1,2]) print(a+5) b=np.array([2,2,2]) print(a+b) # 维度不相同的数组相加 a=np.arange(3) b=np.arange(3).reshape(3,1) print(a+b)
-
比较掩码
# 比较掩码:比较操作,会返回与参与运算数组形状相同的数组,其中,满足条件的为True,不满足的为False # 数组的比较操作 a=np.array([[1,2,39],[34,45,67]])#传入的数组,需要和a形状一致,且类型为Bool类型,这个叫做掩码式索引 print(a<50) # 掩码式索引取值,过滤掉不符合条件的 print(a[np.array([[True,True,True],[True,True,False]])]) print(a[a<50])
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj