【数据分析 - 基础入门之NumPy⑥】- NumPy案例巩固强化

文章目录

  • 前言
  • 一、NumPy基础训练
    • 1.1 创建一个长度为10的一维全为0的ndarray对象,并让第5个元素为1
    • 1.2 创建一个元素为从10到49的ndarray对象
    • 1.3 将第2题的所有元素位置反转
    • 1.4 创建一个10*10的ndarray对象并打印最大最小元素
    • 1.5 创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0
    • 1.6 创建一个每一行都是从0到4的5*5矩阵
    • 1.7 创建一个范围在0-1之间的长度为12的等差数列
    • 1.8 创建一个长度为10的随机数组并排序
    • 1.9 创建一个长度为10的随机数组并将最大值替换为0
  • 二、NumPy强化训练
    • 2.1 给定一个4维矩阵,求最后两维的和
    • 2.2 给定数组[1,2,3,4,5],在每个元素后插入3个0
    • 2.3 给定一个二维矩阵,交换其中两行元素
    • 2.4 创建一个长度为100000的随机数组,使用两种方法求3次方,并比较所用时间
    • 2.5 创建一个5 * 3的随机矩阵和一个3 * 2的随机矩阵,求矩阵积
    • 2.6 矩阵每一行的元素都减去该行的平均值
    • 2.7 打印如下矩阵
    • 2.8 正则化一个5*5随机矩阵
  • 结语
  • 相关导读

前言

大家好!我是初心,本期给大家带来的是 NumPy案例巩固强化练习题,共17道,亲测。

一、NumPy基础训练

1.1 创建一个长度为10的一维全为0的ndarray对象,并让第5个元素为1

n1 = np.zeros(10,dtype=np.int16)
n1[4] = 1
n1

1.2 创建一个元素为从10到49的ndarray对象

n2 = np.arange(10,50)
n2

1.3 将第2题的所有元素位置反转

n2[::-1]

1.4 创建一个10*10的ndarray对象并打印最大最小元素

n4 = np.random.random((10,10))
print(np.max(n4))
print(np.min(n4))

1.5 创建一个10*10的ndarray对象,且矩阵边界全为1,里面全为0

n5 = np.zeros((10,10),dtype=np.int16)
n5[[0,9]] = 1
n5[:,[0,9]] = 1
print(n5)

1.6 创建一个每一行都是从0到4的5*5矩阵

n6 = np.array(range(0,5))
n6

1.7 创建一个范围在0-1之间的长度为12的等差数列

n7 = np.linspace(0,1,num=12)
n7

1.8 创建一个长度为10的随机数组并排序

n8 = np.random.random(10)
np.sort(n8)

1.9 创建一个长度为10的随机数组并将最大值替换为0

n9 = np.random.random(10)
n9[np.argmax(n9)] = 0
print(n9)

二、NumPy强化训练

2.1 给定一个4维矩阵,求最后两维的和

n1 = np.random.randint(1,10,(2,3,4,5)) # 四维数组
display(n1)
np.sum(n1,(2,3))
# axis = 0 表示第一个维度
# axis = 1 表示第二个维度
# axis = 2 表示第三个维度
# axis = 3 表示第四个维度

2.2 给定数组[1,2,3,4,5],在每个元素后插入3个0

n = np.arange(1,6)
display(n)
n2 = np.zeros(17,dtype=np.int16)
display(n2)
n2[::4] = n
n2

2.3 给定一个二维矩阵,交换其中两行元素

n = np.random.randint(1,10,(3,3))
display(n)
n = n[[1,0,2]] # 交换第一行和第二行
display(n)

2.4 创建一个长度为100000的随机数组,使用两种方法求3次方,并比较所用时间

n = np.random.randint(0,10,100000)
%timeit n ** 3
%timeit np.power(n,3)

2.5 创建一个5 * 3的随机矩阵和一个3 * 2的随机矩阵,求矩阵积

n1 = np.random.randint(0,10,(5,3))
n2 = np.random.randint(0,10,(3,2))
display(n1,n2)
np.dot(n1,n2)

2.6 矩阵每一行的元素都减去该行的平均值

n = np.random.randint(0,10,(3,4))
display(n)
# 行平均值
n2 = np.mean(n,axis=1).reshape(3,1)
display(n2)
n - n2

2.7 打印如下矩阵

n = np.zeros((8,8),dtype = np.int16)
display(n)
n[::2,1::2] = 1
n[1::2,0::2] = 1
display(n)

2.8 正则化一个5*5随机矩阵

n = np.random.randint(0,10,(5,5))
display(n)
min1 = np.min(n)
max1 = np.max(n)
n = (n - min1) / (max1 - min1)
display(n)

注:题目素材来自 ——《千锋教育》

结语

本期跟大家分享的就是这些题目了!希望大家可以多多实操练习,加强巩固,以便更好的掌握 NumPy 。

相关导读

文章直达链接
上期回顾【数据分析 - 基础入门之NumPy⑤】- NumPy基本操作 - 二
下期预告【数据分析 - 基础入门之pandas篇①】- pandas基础入门 - 一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/15304.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java web开发--springboot

Java web开发--springboot Java有很多web框架 但是有的框架不是很好用:比如Java Servlets(个人感觉)不好调试,WEB-INF文件关联来关联去很烦躁,启动后 crtlc还关闭不了(我一般习惯用ctrlc命令来关闭服务).导致后面我调试springboot时一直报错,原来是Java Servlets的服务没关(我习…

CUDA+CUDNN+torch+torchvision安装

弄了好久,终于弄好了!!! 原因:其实之前我是已经配置好pytorch的相关环境的了。但是这段时间,在跑GNN相关论文中的代码时,发现代码中的某个函数要求torch必须得是1.8 而我之前安装的是torch1.1…

SQl排序与分页

1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序DESC(descend):降序 ORDER BY 子句在SELECT语句的结尾。 1.2 单列排序 SELECT last_name, job_id, department_id, hire_date FROM employees ORDER…

IDEA使用教程

1. 查看代码历史版本 若要查看特定 Java 类的代码历史版本,请执行以下操作: 鼠标右键点击所需查看的 Java 类。 在弹出菜单中选择 "Local History"(本地历史) >> "Show History"(显示历史…

短视频seo矩阵+抖音小程序源码开源部署(二)

一、 开发思路: 通过短视频seo矩阵抖音小程序的形式,实现视频的批量制作,小程序内容批量挂载,客户线索批量收集,实现企业运营价值最大化。开发逻辑:通过短视频矩阵布局seo搜索关键词,接入小程序…

C/C++图形库EasyX保姆级使用教程(四) 图片的展示与缩放

C/C图形库EasyX保姆级使用教程 第一章 Microsoft Visual Studio 2022和EasyX的下载及安装使用 第二章 图形化窗口设置以及简单图形的绘制 第三章 图形颜色的填充及相关应用 第四章 图片的展示与缩放 文章目录 C/C图形库EasyX保姆级使用教程前言一、图片的展示1.变量存储图片2.…

OpenCV 入门教程:寻找和绘制轮廓

OpenCV 入门教程:寻找和绘制轮廓 导语一、寻找轮廓二、绘制轮廓三、示例应用3.1 目标检测和定位3.2 图像分割 总结 导语 寻找和绘制轮廓是图像处理中常用的技术之一,用于识别、定位和分析图像中的目标区域。在 OpenCV 中,寻找和绘制轮廓可以…

MySQL数据库 - 表的操作

目录 一、创建表 二、创建表案例 1、显示当前使用的数据库名 2、创建表 2.1 MyISAM存储引擎表 2.2 InnoDB存储引擎表 三、查看表结构 四、修改表 1、新增列 2、修改列类型 3、修改列名 4、修改表名 5、删除列 五、删除表 表的操作至少会涉及如下两类SQL语句&…

Linux--调试器:gdb

gcc与g默认动态链接形成的可执行程序(比如a.out)是release 版本,不可调试!!! 如何搞成debug可调试版本? gcc 程序名 -o 可执行程序名 -g //添加了-g就表明该程序是debug方式发布的 查看可执行…

【Python】面向对象 - 封装 ② ( 访问私有成员 | 对象无法访问私有变量 / 方法 | 类内部访问私有成员 )

文章目录 一、访问私有成员1、对象无法访问私有变量2、对象无法访问私有方法3、类内部访问私有成员 一、访问私有成员 1、对象无法访问私有变量 在下面的 Python 类 Student 中 , 定义了私有的成员变量 , # 定义私有成员__address None该私有成员变量 , 只能在类内部进行访问 …

depot_tools问题记录 - 执行fetch/gclient命令无响应

文章目录 前言开发环境问题描述问题分析解决方案最后 前言 在研究将Dart dill文件序列化为可读文本时遇到的问题。 开发环境 macOS: 13.4 问题描述 之前使用depot_tools中的fetch/gclient命令还是正常的,今天想实测--no-history参数时突然遇到命令无响应的情况…

在 FPGA 上通过 2D CNN 进行高效视频理解的 TSM 网络

在这个项目中,将在线和离线 TSM 网络部署到 FPGA,通过 2D CNN 执行视频理解任务。 介绍 在这个项目中,展示了 Temporal-Shift-Module ( https://hanlab.mit.edu/projects/tsm/)在 FPGA 上解决视频理解问题的实用性和性能。 TSM 是一种网络结构…