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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。