python numpy库函数,numpy函数库手册

  python numpy库函数,numpy函数库手册

  任务描述

  相关知识

  算术运算

  矩阵运算

  简单统计

  编程要求

  试验规格

  任务描述

  这个任务:根据这个知识,完成右边代码编辑器中缺失的代码,完成编程,通过所有测试用例。

  相关知识

  为了完成这项任务,你需要掌握:

  算术运算;

  矩阵运算;

  简单统计。

  算术运算

  如果你想对ndarray对象中的元素进行逐元素的算术运算,你可以简单地进行加、减、乘、除。代码如下:

  将numpy作为np导入

  a=np.array([0,1,2,3])

  将# a中的所有元素加2,结果是[2,3,4,5]

  b=a 2

  # a中的所有元素都减2,结果是[-2,-1,0,1]

  c=a - 2

  # a中的所有元素都乘以2,结果是[0,2,4,6]

  d=a * 2

  # a中的所有元素都被平方,结果是[0,1,4,9]

  e=a ** 2

  # a中的所有元素除以2,结果是[0,0.5,1,1.5]

  f=a/2

  将# a中的所有元素与2进行比较,结果为[True,True,False,False]

  g=a 2

  矩阵运算

  同样形状的矩阵A和矩阵B之间做元素式运算也很简单,加减乘除即可。代码如下:

  将numpy作为np导入

  a=np.array([[0,1],[2,3]])

  b=np.array([[1,1],[3,2]])

  # a和B元素一个元素一个元素相加,结果是[[1,2],[5,5]]

  c=a b

  # a和B逐个元素相减,结果是[[-1,0],[-1,1]]

  d=a - b

  # a逐个元素地乘以B,结果是[[0,1],[6,6]]

  e=a * b

  # a的元素by元素除以B的元素by元素,结果是[[0。 1.], [0.6666667, 1.5]]

  f=a/b

  # a和B逐一做幂运算,结果是[[0,1],[8,9]]

  g=a ** b

  # a与B逐元素比较,结果为[[真,假],[真,假]]

  h=a b

  细心的同学应该发现了,*只能做elementwise运算,但显然你要做实矩阵乘法就不能用*了。NumPy提供@和dot函数实现矩阵乘法。代码如下:

  将numpy作为np导入

  A=np.array([[1,1],[0,1]])

  B=np.array([[2,0],[3,4]])

  # @表示矩阵相乘,矩阵A乘以矩阵B,结果是[[5,4],[3,4]]

  打印(A @ B)

  #面向对象风格,矩阵A乘以矩阵B,结果是[[5,4],[3,4]]

  打印(a .点(B))

  #对于进程样式,矩阵A乘以矩阵B,结果是[[5,4],[3,4]]

  print(np.dot(A,B))

  简单统计

  有时候你想知道ndarray对象中元素的和是多少,最小值是多少,最小值在哪里,最大值是多少,最大值在哪里。此时,您可能希望编写一个循环来遍历ndarray对象中的所有元素以进行统计。为了解放我们的双手,NumPy提供了sum、min、max、argmin、argmax等函数。实现简单的统计功能。代码如下:

  将numpy作为np导入

  a=np.array([[-1,1,2,3],[4,5,6,7],[8,9,10,13]])

  #计算A中所有元素的和,结果是67

  print(a.sum())

  #找出A中最大的元素,结果是13

  print(a.max())

  #查找A中的最小元素,结果是-1

  打印(a.min())

  #求A中A中最大元素的位置,由于A中有12个元素,位置从0开始,所以结果是11。

  print(a.argmax())

  #求A中最小元素的位置,结果是0

  打印(a.argmin())

  有时候,我们在数数的时候需要根据轴来数数。比如公司员工的基本工资、绩效工资、年终奖信息如下:

  施工号码

  基本工资

  绩效工资

  年终奖

  一个

  3000

  4000

  20000

  2

  2700

  5500

  25000

  三

  2800

  3000

  15000

  这样的表是显而易见的,可以用ndarray存储。代码如下:

  将numpy作为np导入

  info=np.array([[3000,4000,20000],[2700,5500,25000],[2800,3000,15000]])

  info实例化之后,就有了维度和轴的概念。显然,info是一个二维数组,所以它的维数是2。维度2,换句话说,info有两个轴:轴0和轴1(轴数从0开始)。轴的方向如下图所示:

  如果要统计这三个员工中基本工资、绩效工资、年终奖的最小值和最大值(也就是说分别统计每一栏的最小值和最大值)。我们可以沿着0轴计数。要实现沿哪个轴计数,只需修改轴即可。代码如下:

  将numpy作为np导入

  info=np.array([[3000,4000,20000],[2700,5500,25000],[2800,3000,15000]])

  #沿0轴计数,结果为[2700,3000,15000]

  打印(信息最小值(轴=0))

  #沿0轴计数,结果是[3000,5500,25000]

  print(info.max(axis=0))

  PS:不修改轴时,轴的值默认为无。这意味着ndarray对象中的所有元素都将在统计中考虑在内。

  编程要求

  根据提示,在右边的编辑器Begin-End补充代码,根据测试用例的输入打印每行最大值的位置。

  具体要求请参考后续测试样本。

  在开始编程之前,请仔细阅读右边上部代码编辑区给出的代码框架!

  试验规格

  该平台将测试您编写的代码,并将您输出的值与实际的正确值进行比较。只有所有数据计算正确,才能进入下一关。

  测试输入:

  [[0.2, 0.7, 0.1], [0.1, 0.3, 0.6]]

  预期产出:

  [1 2]

  开始你的任务,祝你成功!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: