Numpy数值计算初体验
- [第1关 Numpy创建数组](#第1关 Numpy创建数组)
- [第2关 Numpy数组的基本运算](#第2关 Numpy数组的基本运算)
- [第3关 Numpy数组的切片与索引](#第3关 Numpy数组的切片与索引)
- [第4关 Numpy数组的堆叠](#第4关 Numpy数组的堆叠)
- [第5关 Numpy的拆分](#第5关 Numpy的拆分)
第1关 Numpy创建数组
任务描述
本关的小目标是,使用 Numpy 创建一个多维数组。
测试说明
本关的测试过程如下:
平台运行step1/cnmdatest.py文件,并以标准输入方式提供测试输入;
cnmdatest.py文件调用cnmda中的cnmda方法,平台获取cnmdatest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。
以下是平台对step1/cnmdatest.py的测试样例:
测试输入: 5 8
预期输出: (5,8)
测试输入: 4 9
预期输出: (4,9)
开始你的任务吧,祝你成功!
python
# 引入numpy库
import numpy as np
# 定义cnmda函数
def cnmda(m,n):
'''
创建numpy数组
参数:
m:第一维的长度
n: 第二维的长度
返回值:
ret: 一个numpy数组
'''
ret=0
# 请在此添加创建多维数组的代码并赋值给ret
#********** Begin *********#
x=np.arange(n)
ret=np.array([x]*m)
#********** End **********#
return ret
第2关 Numpy数组的基本运算
任务描述
本关的小目标是,学会Numpy二维数组的一些基本操作。
测试说明
本关的测试过程如下:
平台运行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]]
开始你的任务吧,祝你成功!
python
# 引入numpy库
import numpy as np
# 定义opeadd函数
def opeadd(m,b,n):
'''
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m+b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
#********** Begin *********#
ret=m+b[n]
#********** End **********#
return ret
# 定义opemul函数
def opemul(m,b,n):
'''
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m*b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
#********** Begin *********#
ret=m*b[n]
#********** End **********#
return ret
第3关 Numpy数组的切片与索引
任务描述
本关的小目标是,从数组中选择指定的元素。
测试说明
本关的测试过程如下:
平台运行step2/cetest.py文件,并以标准输入方式提供测试输入;
cetest.py文件调用ce中的ce方法,平台获取cetest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。
预处理的数组
[[1,2,3,4,5],[7,8,9,10,11],[12,13,14,15]]
以下是平台对step2/cetest.py的测试样例:
测试输入:
1
3
预期输出:
[7,8,9]
测试输入:
2
2
预期输出:
[12,13]
开始你的任务吧,祝你成功!
python
# 引入numpy库
import numpy as np
# 定义cnmda函数
def ce(a,m,n):
'''
参数:
a:是一个Numpy数组
m:是第m维数组的索引
n:第m维数组的前n个元素的索引
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加切片的代码,实现找出多维数组a中第m个数组的前n个元素 并赋值给ret
#********** Begin *********#
ret=a[m,:n]
#********** End **********#
return ret
第4关 Numpy数组的堆叠
任务描述
本关的目标是,改变Numpy数组的形状。
测试说明
本关的测试过程如下:
平台运行step3/manipulationtest.py文件,并以标准输入方式提供测试输入;
manipulationtest.py文件调用manipulation中的三个方法,平台获取manipulationtest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。
预处理数组:
a = np.array([[1,2,3],[4,5,6]])
b = np.array([[3,4,5],[7,8,9]])
以下是平台对step3/manipulationtest.py的测试样例:
测试输入: v
预期输出:
[[1 2 3]
[4 5 6]
[3 4 5]
[7 8 9]]
测试输入: d
预期输出:
[[[1 3]
[2 4]
[3 5]]
[[4 7]
[5 8]
[6 9]]]
开始你的任务吧,祝你成功!
python
# 引入numpy库
import numpy as np
# 定义varray函数
def varray(m,n):
'''
参数:
m:是第一个数组
n:是第二个数组
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的垂直叠加并赋值给ret
#********** Begin *********#
ret=np.vstack((m,n))
#********** End **********#
return ret
# 定义darray函数
def darray(m,n):
'''
参数:
m:是第一个数组
n:是第二个数组
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的深度叠加并赋值给ret
#********** Begin *********#
ret=np.dstack((m,n))
#********** End **********#
return ret
# 定义harray函数
def harray(m,n):
'''
参数:
m:是第一个数组
n:是第二个数组
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的水平叠加并赋值给ret
#********** Begin *********#
ret=np.hstack((m,n))
#********** End **********#
return ret
第5关 Numpy的拆分
任务描述
本关的目标是,对Numpy数组进行拆分。
本关的测试过程如下:
平台运行step5/splitarraytest.py文件,并以标准输入方式提供测试输入;
splitarraytest.py文件调用splitarray中的三个方法方法,平台获取splitarraytest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。
预处理数组:
a= np.arange(9).reshape(3,3)
c = np.arange(27).reshape(3,3,3)
以下是平台对step4/splitarraytest.py的测试样例:
测试输入: v
预期输出: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]
测试输入: h
预期输出: [array([[0],[3],[6]]), array([[1],[4],[7]]), array([[2],[5],[8]])]
开始你的任务吧,祝你成功!
python
# 引入numpy库
import numpy as np
# 定义varray函数
def vsarray(m,n):
'''
参数:
m:是第一个数组
n:是需要拆分到的维度
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的纵向拆分并赋值给ret
#********** Begin *********#
ret=np.vsplit(m,n)
#********** End **********#
return ret
# 定义darray函数
def dsarray(m,n):
'''
参数:
m:是第一个数组
n:是需要拆分到的维度
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的深度拆分并赋值给ret
#********** Begin *********#
ret=np.dsplit(m,n)
#********** End **********#
return ret
# 定义harray函数
def hsarray(m,n):
'''
参数:
m:是第一个数组
n:是需要拆分到的维度
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的水平拆分并赋值给ret
#********** Begin *********#
ret=np.hsplit(m,n)
#********** End **********#
return ret
感谢您的关注!