experiment-02-实验二 numpy的基本使用
实验二 numpy的基本使用
1.实验内容
(1)numpy的导入。
(2)数组的基本创建、索引和切片。
(3)数组维度变换与重塑。
(4)数组排序。
(5)数组的组合和分拆。
2.目的要求
(1)学会numpy的导入。
(2)掌握数组的基本创建、索引和切片。
(3)学会数组维度变换与重塑的操作。
(4)掌握按照不同维度对数组的排序。
(5)掌握数组的组合与分拆。
3.实验方法手段及其条件
(1)数组的基本创建。
① 调用 numpy 的 array 函数创建一维数组a1,一维数组a2(指定dtype为float),二维数组a3以及三维数组a4,如下图所示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bAl69Sht-1669126646605)(experiment-02-two-pic/01.png)]
import numpy as np
a1 = np.array((0,1,2,3,5,6,7))
a1
array([0, 1, 2, 3, 5, 6, 7])
a2 = np.array((0,1,2,3,5,6,7),dtype=float)
a2
array([0., 1., 2., 3., 5., 6., 7.])
a3=np.array([[0,1,2,3],[4,5,6,7]])
a3
array([[0, 1, 2, 3],[4, 5, 6, 7]])
a3=np.arange(8).reshape(2,4)
a3
array([[0, 1, 2, 3],[4, 5, 6, 7]])
a4=np.array([[[0,1],[2,3]],[[4,5],[6,7]]])
a4
array([[[0, 1],[2, 3]],[[4, 5],[6, 7]]])
a4=np.arange(8).reshape(2,2,2)
a4
array([[[0, 1],[2, 3]],[[4, 5],[6, 7]]])
② 定义一个结构化数据类型 xs_struc,包含字符串字段 id、name,整数字段 age及浮点字段 grade,并将这个 dtype 应用到 ndarray对象xs_rec,如下图所示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-owoNQuAo-1669126646605)(experiment-02-two-pic/02.png)]
xs_struc = np.dtype([('id',np.str_,4),('name',np.str_,10),('age',np.int8),('grade',np.float32)])
xs_struc
dtype([('id', '<U4'), ('name', '<U10'), ('age', 'i1'), ('grade', '<f4')])
xs_rec=np.array ([('1001','zhangsan',20,90.),('1002','1isi',21,88.),('1000','wangwu',20,91.)],dtype=xs_struc)
xs_rec
array([('1001', 'zhangsan', 20, 90.), ('1002', '1isi', 21, 88.),('1000', 'wangwu', 20, 91.)],dtype=[('id', '<U4'), ('name', '<U10'), ('age', 'i1'), ('grade', '<f4')])
③ 使用np.arange()函数快速创建以下两个数组:第1个是含0-9数值的数组,第2个是从2开始,100以内,等差值为10的数组,如下图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D2tBsglD-1669126646606)(experiment-02-two-pic/03.png)]
a=np.arange(0,10,1)
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a=np.arange(2,100,10)
a
array([ 2, 12, 22, 32, 42, 52, 62, 72, 82, 92])
④ 创建形状为(3,4),dtype=int的全0数组,如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aPKF2FHW-1669126646606)(experiment-02-two-pic/04.png)]
m=np.zeros ((3,4),dtype=int)
m
array([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]])
(2)编写程序完成数组a1、a3和a4维度变换与重塑的操作。
① 使用ndim查看各数组的维度,输出结果分别为1 2 3。
print(a1.ndim,a3.ndim,a4.ndim)
1 2 3
② 分别使用reshape()方法和resize()函数将a3转化为形状为(4,2)的数组b31和b32,输出结果如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M8wKF2gn-1669126646607)(experiment-02-two-pic/05.png)]
b31=np.reshape(a3,(4,2))
b31
array([[0, 1],[2, 3],[4, 5],[6, 7]])
b32=np.resize(a3,(4,2))
b32
array([[0, 1],[2, 3],[4, 5],[6, 7]])
③ 分别使用ravel()函数、flatten()和reshape()方法将数组a4展平,输出结果如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZWVP76Jt-1669126646607)(experiment-02-two-pic/06.png)]
a4.ravel()
array([0, 1, 2, 3, 4, 5, 6, 7])
a4.flatten()
array([0, 1, 2, 3, 4, 5, 6, 7])
a4.reshape(1,1,8)
array([[[0, 1, 2, 3, 4, 5, 6, 7]]])
(3)编写程序完成数组a3、a4和xs_rec的索引切片操作。
① 使用整数索引,获取数组a3中如图所示的元素,输出结果为[6]。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u8zhs4aO-1669126646607)(experiment-02-two-pic/07.png)]
print(a3[1,2])
6
② 使用整数数组索引,获取数组a4中如图所示的元素,输出结果为[2 1]。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AWHitNGz-1669126646608)(experiment-02-two-pic/08.png)]
[a4[0,1,0],a4[0,0,1]]
[2, 1]
③ 使用布尔索引,获取数组a4中大于5的元素,输出结果为[6 7]。
print(a4[a4>5])
[6 7]
④ 使用字段名索引,获取数组xs_rec中lisi的学号、年龄和分数,输出结果为1002 21 88.0。
xs_rec[1][['id','age','grade']]
('1002', 21, 88.)
xs_rec[1]['id'],xs_rec[1]['age'],xs_rec[1]['grade']
('1002', 21, 88.0)
(4)对以下语句生成的数组a5分别按行和列排序,输出结果如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WDQrBPvh-1669126646608)(experiment-02-two-pic/10.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-clULNbry-1669126646608)(experiment-02-two-pic/09.png)]
a5=np.array([2,13,72,44,62,3,6,456,24,7,85,93,89,5]).reshape(7,2)
a5
array([[ 2, 13],[ 72, 44],[ 62, 3],[ 6, 456],[ 24, 7],[ 85, 93],[ 89, 5]])
a5.sort(axis=1)#行
a5
array([[ 2, 13],[ 44, 72],[ 3, 62],[ 6, 456],[ 7, 24],[ 85, 93],[ 5, 89]])
a5=np.array([2,13,72,44,62,3,6,456,24,7,85,93,89,5]).reshape(7,2)
a5.sort(axis=0)
a5
array([[ 2, 3],[ 6, 5],[ 24, 7],[ 62, 13],[ 72, 44],[ 85, 93],[ 89, 456]])
(5)对以下语句生成的两个二维数组按要求进行组合与分拆。
arr1 = np.arange(6).reshape((3, 2))
arr1
array([[0, 1],[2, 3],[4, 5]])
arr2 = np.array([[0, 1], [1, 0], [2, 1]])
arr2
array([[0, 1],[1, 0],[2, 1]])
① 对arr1和arr2完成水平拼接和垂直拼接,输出结果如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DAhjqtif-1669126646609)(experiment-02-two-pic/12.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9laEUmZ3-1669126646609)(experiment-02-two-pic/11.png)]
- 数组的分割主要有:
1.水平分割:np.split(arr,n,axis=1) 或 np.hsplit(arr,n)
2.垂直分割:np.split(arr,n,axis=0) 或 np.vsplit(arr,n)
np.vstack((arr1,arr2))#垂直拼接
array([[0, 1],[2, 3],[4, 5],[0, 1],[1, 0],[2, 1]])
np.hstack((arr1,arr2))
array([[0, 1, 0, 1],[2, 3, 1, 0],[4, 5, 2, 1]])
② 对arr1和arr2在0轴和1轴上分别完成拼接,输出结果如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WuU595jz-1669126646609)(experiment-02-two-pic/13.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yXVA64Oq-1669126646609)(experiment-02-two-pic/12.png)]
np.concatenate((arr1,arr2),axis=0)
array([[0, 1],[2, 3],[4, 5],[0, 1],[1, 0],[2, 1]])
np.concatenate((arr1,arr2),axis=1)
array([[0, 1, 0, 1],[2, 3, 1, 0],[4, 5, 2, 1]])
③ 对arr1完成水平分拆和垂直分拆,输出结果如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JdiI5W6K-1669126646610)(experiment-02-two-pic/15.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Cx5snS7-1669126646610)(experiment-02-two-pic/16.png)]
b=np.hsplit(arr1,2)
print(b)
[array([[0],[2],[4]]), array([[1],[3],[5]])]
np.vsplit(arr1,3)
[array([[0, 1]]), array([[2, 3]]), array([[4, 5]])]
④ 对arr1在0轴和1轴上分别完成分拆,输出结果如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bAwUrzEI-1669126646610)(experiment-02-two-pic/17.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1bLSoB1C-1669126646610)(experiment-02-two-pic/18.png)]
np.split(arr1,3,axis=0)
[array([[0, 1]]), array([[2, 3]]), array([[4, 5]])]
b=np.split(arr1,2,axis=1)
print(b)
[array([[0],[2],[4]]), array([[1],[3],[5]])]
experiment-02-实验二 numpy的基本使用相关推荐
- 【神经网络实验】Numpy手写多层神经网络
引言 这个作业的目的是给你们介绍建立,训练和测试神经系统网络模型.您不仅将接触到使用Python包构建神经系统网络从无到有,还有数学方面的反向传播和梯度下降.但在实际情况下,你不一定要实现神经网络从零 ...
- 数据库原理实验二 数据库管理 实验报告
广州大学学生实验报告实验二:数据库管理 此篇分享仅供参考学习,图文禁复制,勿作他用!谢谢配合! 数据库原理实验之实验二:数据库管理 软件:Oracle SQL Developer 今天实验才刚开始,花 ...
- python语言基础实验_实验二Python语言基础函数包练习.doc
实验二Python语言基础函数包练习 实验 Python语言基础函数包练习:1208 学号: 实验目的 1.Python语言包,如math.NumPySciPy和Matplotlib等函数包的使用实验 ...
- c语言 k最近邻分类算法代码,实验二 K-近邻算法及应用
实验二 K-近邻算法级应用 一.实验目的 1.理解K-近邻算法原理,能实现算法K近邻算法: 2.掌握常见的距离度量方法: 3.掌握K近邻树实现算法: 4.针对特定应用场景及数据,能应用K近邻解决实际问 ...
- matlab建立二阶开环系统仿真图,实验二 Simulink仿真实验
实验二 Simulink仿真实验 一. 实验目的: 1.学会使用Matlab软件中的Simulink仿真工具. 2.了解二阶系统瞬态响应指标的意义其计算. 二. 实验内容及原理 1. 用Matlab仿 ...
- 广州大学机器学习与数据挖掘实验二
实验二 逻辑回归与朴素贝叶斯分类 一. 实验目的 本实验课程是计算机.人工智能.软件工程等专业学生的一门专业课程,通过实验,帮助学生更好地掌握数据挖掘与机器学习相关概念.技术.原理.应用等:通过实验提 ...
- 【Java程序设计】Java上机实验(二)
实验二.数组 一.实验目的: 1.学会使用一维与二维数组管理简单数据. 2.学会编写简单的菜单驱动(命令行式)的Java程序 二.实验环境: BLUEJ 三.实验内容: (写出主要的内容) 1 ...
- 《Python语言程序设计》实验二
<Python语言程序设计>实验二 一.实验项目:Python语言序列数据结构2 1.字典运算及应用 2.集合运算及应用 3.可迭代对象应用 4.理解并运用内置函数enumerate(), ...
- 大数据先导实践实验二
实验二:大数据的处理 实验内容: 在本次实验中,请在k-mean算法.DBSCAN算法中选择任意一种算法完成聚类任务,并对于聚类结果实现可视化. 实验总体流程: (1)完成对于pathbased.sp ...
最新文章
- L - Subway POJ - 2502
- mysql防止从节点可写数据_mysql 主从数据不一致 Slave_SQL_Running: No 解决方法
- php 不等待返回的实现方法(异步调用)
- LTE/NR用户接入过程笔记
- [转载]项目风险管理七种武器-孔雀翎
- cleanmymac能够很方便的清理mac上面没用的软件,尤其是这个清理大文件的功能
- Centos7搭建Kubernetes集群
- Searchsploit
- [转载]图的割点、桥与双连通分支
- 数据结构与算法--图论最短路径算法应用-词阶求解
- 鸿蒙将至,安卓安否?
- 《以截屏为基础的演示文档制作软件》(ScreenSteps Pro)更新v2.9.1/含注册机[压缩包]...
- Bailian2870 求矩阵的加法【矩阵】
- python入门基本知识
- chrome插件“京东商品佣金助手”之京东云java web环境搭建(二)
- mysql数据库建表的作用_浅谈(SQL Server)数据库中系统表的作用
- 安装Centos系统时选择安装的包
- python中oserror winerror,在python中将WindowsError转换为OSError
- 悼念打dota的日子
- 灵活使用 console 让 js 调试更简单