专栏首页早起PythonNumPy进阶修炼|矩阵操作20题

NumPy进阶修炼|矩阵操作20题

大家好,又到了NumPy进阶修炼专题,其实已经断更很久了,那么在本文正式发布题目之前,先说下改动的地方,在以前的Pandas120题NumPy热身20题中,我都是将我的答案附在每一题的后面?

这种形式的题目对于读者来说,尤其是新手朋友们,很容易被我的思路带进去,实际上不论我的pandas还是numpy的习题,每一题都有多种解法,并且我的解法有时也并不是最佳方法,所以为了让大家多一点自己思考的时间,在numpy以及后面的其他系列习题中,我将换一种方式整理习题?

就像上图一样,我将同时发布两个Notebook版本习题,一份习题单独版,一份带有我的答案的单独版本,大家可以先试着在只有习题的版本中思考,写代码,并与我的答案对比,也欢迎给我提交不一样的答案!

好了,废话不多说,我们来看今天的20题,主要将涉及到用NumPy对矩阵的一些操作

21 数据创建

题目:创建主对角线都是5的5x5矩阵

难度:⭐

答案

result = np.diag([5,5,5,5,5])

22 数据修改

题目:交换第一列与第二列

难度:⭐⭐

答案

a = result[:, [1,0,2,3,4]]

23 数据修改

题目:交换第一行与第二行

难度:⭐⭐

答案

result[result % 2 == 1] = 666

24 数据查看

题目:判断两个矩阵是否有任何元素不同

难度:⭐⭐

答案

print((a == b).all())

25 数据计算

题目:计算两个矩阵不同元素的个数

难度:⭐⭐

答案

len(np.argwhere(a != b))

26 数据查看

题目:找到两个矩阵不同元素的位置

难度:⭐⭐

答案

np.argwhere(a != b)

27 数据计算

题目:对a和b做矩阵乘法

难度:⭐⭐

答案

np.dot(a,b)

28 数据计算

题目:计算a和b对应元素相乘

难度:⭐⭐

答案

print(np.multiply(a,b))
print('========方法2========')
print(a * b) #方法2

29 数据计算

题目:计算行列式(使用21题生成的矩阵)

难度:⭐⭐

答案

np.linalg.det(result)

30 数据计算

题目:矩阵求逆(使用21题生成的矩阵)

难度:⭐⭐

答案

np.linalg.inv(result)

31 数据计算

题目:将22与23题生成的np.array对象修改为np.matrix对象

难度:⭐⭐

答案

a = np.matrix(a)
b = np.matrix(b)

32 数据计算

题目:计算上一题生成的两个np.matrix格式矩阵的对应元素乘积(对比异同)

难度:⭐⭐

答案

np.multiply(a,b)

33

数据计算

题目:对31题生成的两个np.matrix格式矩阵做矩阵乘法(对比异同)

难度:⭐⭐

答案

a * b

34 数据计算

题目:将ab两个矩阵按照行拼接

难度:⭐⭐

答案

np.hstack((a,b))

35 数据计算

题目:将ab两个矩阵按照列拼接

难度:⭐⭐

答案

np.vstack((a,b))

36 数据计算

题目:思考下面代码运行后new的结果

难度:⭐⭐⭐

答案

new = np.pad(result,pad_width = 1,constant_values=1)

37 数据查找

题目:找到new中大于1的元素的位置

难度:⭐⭐

答案

np.argwhere(new > 1)

38 数据修改

题目:将new中大于1的元素修改为8

难度:⭐⭐

答案

new[new > 1] = 8

39 数据计算

题目:对new矩阵按列求和

难度:⭐⭐

答案

np.sum(new, 0)

40

数据计算

题目:对new矩阵按行求和

难度:⭐⭐

答案

np.sum(new, 1)

以上就是本期20题的全部内容,你可以在后台回复NumPy来获取Notebook的两种版本习题练习,其实NumPy中的操作没有Pandas中的多变,所以全部大概在100题左右,差不多已经整理完毕。本文主要目的就是说一下新版的变化,如果你也喜欢这种形式的习题可以给我点个在看,我们下期见。

注:我未授权任何人在微信公众号之外的平台发布Pandas和NumPy系列文章,但近期在其他网站发现有人搬运相关习题甚至标记为原创,如有读者发现这种情况可以点击举报并联系我,希望大家能够尊重原创,谢谢!

本文分享自微信公众号 - 早起Python(zaoqi-python),作者:刘早起

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NumPy进阶修炼|热身20题

    大家好,NumPy系列讲解已经更新了两期,今天将整理一些相关的题目来实际操作一下,因为在Pandas系列中有涉及到部分NumPy操作因此我也不确定最终会有多少题...

    刘早起
  • Python正则表达式的运用与常用的正则表达式(附超有用的小项目练习)

    在前天我们详细讲解了Python正则表达式相关知识点。那么本文带来的是偷学Python第三十二天:Python正则表达式的运用(附超有用的小项目练习),其他内容...

    刘早起
  • 开始你的第一个机器学习项目|文末送书

    大家好,关于数据挖掘或者机器学习的理论我想大家应该都已经了解很多,而数据挖掘的工具例如Pandas、NumPy、Sklearn等在历史文章都有所介绍,因此今天我...

    刘早起
  • DevExpress A field with the name '' was not found on the selected data source.

    绑定控件时发现的错误,找了很久终于找到原因了,可能也是大家没注意的地方,希望能给大家带来一些帮助。

    aehyok
  • Spread for Windows Forms高级主题(6)---数据绑定管理

    自定义列和区域的数据绑定 当表单被绑定到一个数据集时,表单中的列就会相继的被分配到数据集的区域上。例如,第一个数据域分配给列A,第二个数据区域分配给列B,等等。...

    葡萄城控件
  • 【github】论怎么去写一个高大上的ReadMe

    以前我时常觉得,自己写的ReadMe很单调乏味,但后来仔细研究一下后,发现有很多方式可以让ReadMe在简洁的基础上变得好看些,所以在这里和大家分享,如果大家有...

    外婆的彭湖湾
  • 【NIPS2017最新Tutorial】几何深度学习(Geometric Deep Learning )讲解(附slide下载)

    【导读】美国时间 12 月 4 日,第 31 届神经信息处理系统大会(Neural Information Processing Systems,NIPS)在美...

    WZEARW
  • Bootstrap源码分析之nav、collapse

    导航分析(nav): 源码文件: _navs.scss:导航模块 Mixins/_nav-divider.scss:分隔线 Mixins/_nav-vertic...

    sam dragon
  • HTML5动画软件工具编辑器 HTML5动画分类 工具推荐

    用户1258909
  • 【自然框架】表单控件 之 一个表单修改多个表里的记录

          FormView 确实挺方便的,不过他也有几个小问题,只把FormView拖到页面里是不行的,还得再拽几个文本框、下拉列表框这一类的控件,还得布局。...

    用户1174620

扫码关注云+社区

领取腾讯云代金券