任务描述
本关的小目标是,学会Numpy二维数组的一些基本操作。
相关知识
Numpy库可以直接进行一些四则运算,快速的处理两个Numpy数组:
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[1,2,3]])
向量与向量之间
1.加法
In:np.add(a,b) 或 a+b
Out:array([[5, 7, 9],
[5, 7, 9]])
2.减法
In:np.subtract(a,b) 或 a-b
Out:array([[-3, -3, -3],
[ 3, 3, 3]])
3.乘法(X乘)
In:np.multiply(a,b) 或 a * b
Out:array([[ 4, 10, 18],
[ 4, 10, 18]])
4.乘法(点乘)
a = np.array([[1,2,3],[4,5,6]])
b = np.array([4,5,6])
In: np.dot(a,b)
Out:array([32, 77])
5.除法
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[4,5,6],[1,2,3]])
In:np.divide(a,b) 或 a/b
Out:array([[ 0.25, 0.4 , 0.5 ],
[ 4. , 2.5 , 2. ]])
向量与标量之间
a = np.array([[1,2,3],[4,5,6]])
1.加法
In: a +1
Out:array([[2, 3, 4],
[5, 6, 7]])
2.减法
In: a -1
Out:array([[0, 1, 2],
[3, 4, 5]])
3.乘法
In: a*2
Out:array([[ 2, 4, 6],
[ 8, 10, 12]])
4.除法
In: a/2
Out:array([[ 0.5, 1. , 1.5],
[ 2. , 2.5, 3. ]])
5.求余
In:a%2
Out:array([[1, 0, 1],
[0, 1, 0]])
6.矩阵转置
In:a.T
Out:array([[1, 4],
[2, 5],
[3, 6]])
7.矩阵的逆
矩阵可逆的充要条件是矩阵满秩。
import numpy as np
import numpy.linalg as lg
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
In:lg.inv(a)
Out:array([[ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15],
[ -6.30503948e+15, 1.26100790e+16, -6.30503948e+15],
[ 3.15251974e+15, -6.30503948e+15, 3.15251974e+15]])
编程要求
本关的任务是,补全右侧编辑器中 Begin-End 区间的代码,以实现向量与标量相加和相乘的的功能。具体要求如下:
本关的测试样例参见下文;
本关设计的代码文件cal.py的代码框架如下:
import numpy as np
def opeadd(m,b,n):
'''实现加法
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m+b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
return ret
def opemul(m,b,n):
'''实现乘法
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m+b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
return ret
测试说明
本关的测试过程如下:
平台运行step5/caltest.py文件,并以标准输入方式提供测试输入;
caltest.py文件调用cal中的方法,平台获取caltest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。
以下是平台对step5/caltest.py的测试样例:
a= np.array([[1,2,3],[4,5,6]])
b = [1,2,3]
测试输入: add
预期输出:
[[2 3 4]
[5 6 7]]
测试输入:mul
预期输出:
[[ 2 4 6]
[ 8 10 12]]
开始你的任务吧,祝你成功!*
import numpy as np
def opeadd(m,b,n):
'''
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m+b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
ret = m + b[n]
return ret
def opemul(m,b,n):
'''
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m*b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
ret = m*b[n]
return ret
Original: https://blog.csdn.net/SorrymakerS/article/details/124415067
Author: -阿呆-
Title: 第2关:Numpy数组的基本运算
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/758587/
转载文章受原作者版权保护。转载请注明原作者出处!