*相关知识 使用Numpy,我们可以方便的对数组进行拆分,比如使用hsplit()、vsplit()、dsplit()、split()函数等。 拆分数组 准备数组。 import numpy as np In: a= np.arange(9).reshape(3,3) In: a Out: array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) hsplit() 横向拆分。 In: np.hsplit(a,3) Out:[array([[0],[3], [6]]), . array([[1], [4],[7]]), array([[2],[5], [8]])] vsplit() 纵向拆分。 In: np.vsplit(a,3) Out: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])] dsplit() 深度拆分。 深度拆分要求数组的秩大于等于3。 c= np.arange(27).reshape(3,3,3) In: np.dsplit(c,3) Out:[array([[[ 0], [ 3], [ 6]], [[ 9], [12], [15]], [[18], [21], [24]]]), array([[[ 1], [ 4], [ 7]], [[10], [13], [16]], [[19], [22], [25]]]), array([[[ 2], [ 5], [ 8]], [[11], [14], [17]], [[20], [23], [26]]])] 编程要求 本关的任务是,补全右侧编辑器中Begin-End区间的代码,分别实现Numpy数组的纵向拆分、横向拆分、深度拆分。具体要求如下: 函数接受一个参数,然后将数组进行拆分; 本关的测试样例参见下文; 本关设计的代码文件splitarray.py的代码框架如下:
引入numpy库
import numpy as np
定义varray函数
def vsarray(m,n): ‘’’ 参数: m:是第一个数组 n:是需要拆分到的维度 返回值: ret: 一个numpy数组 ‘’’ ret = 0 # 请在此添加代码实现数组的纵向拆分并赋值给ret #********** Begin # #* End **********# return ret
定义hsarray函数
def hsarray(m,n): ‘’’ 参数: m:是第一个数组 n:是需要拆分到的维度 返回值: ret: 一个numpy数组 ‘’’ ret = 0 # 请在此添加代码实现数组的水平拆分并赋值给ret #********** Begin # #* End **********# return ret
定义dsarray函数
def dsarray(m,n): ‘’’ 参数: m:是第一个数组 n:是需要拆分到的维度 返回值: ret: 一个numpy数组 ‘’’ ret = 0 # 请在此添加代码实现数组的深度拆分并赋值给ret #********** Begin # #* End *********# return ret 测试说明 本关的测试过程如下: 平台运行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]])] 开始你的任务吧,祝你成功!
import numpy as np
def vsarray(m,n):
'''
参数:
m:是第一个数组
n:是需要拆分到的维度
返回值:
ret: 一个numpy数组
'''
ret = 0
ret = np.vsplit(m,n)
return ret
def dsarray(m,n):
'''
参数:
m:是第一个数组
n:是需要拆分到的维度
返回值:
ret: 一个numpy数组
'''
ret = 0
ret = np.dsplit(m,n)
return ret
def hsarray(m,n):
'''
参数:
m:是第一个数组
n:是需要拆分到的维度
返回值:
ret: 一个numpy数组
'''
ret = 0
ret = np.hsplit(m,n)
return ret
|