编程要求
本关的任务是,补全右侧编辑器中Begin-End
区间的代码,分别实现Numpy
数组的垂直叠加、水平叠加、深度叠加。具体要求如下:
- 函数接受两个参数,然后将两个参数进行叠加;
- 本关的测试样例参见下文;
本关设计的代码文件manipulation.py
的代码框架如下:
# 引入numpy库
import numpy as np
# 定义varray函数
def varray(m,n):
'''
参数:
m:是第一个数组
n:是第二个数组
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的垂直叠加 并赋值给ret
#********** Begin *********#
#********** End **********#
return ret
# 定义darray函数
def darray(m,n):
'''
参数:
m:是第一个数组
n:是第二个数组
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的深度叠加并赋值给ret
#********** Begin *********#
#********** End **********#
return ret
# 定义harray函数
def harray(m,n):
'''
参数:
m:是第一个数组
n:是第二个数组
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加代码实现数组的水平叠加并赋值给ret
#********** Begin *********#
#********** End **********#
return ret
通关代码
# 引入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
(后面几关请点击主页)
相关知识
使用Numpy
,我们可以方便的更改数组的形状,比如使用reshape()、ravel()、flatten()、transpose()
函数等。 具体的使用如下:
改变数组形状
reshape()
ravel()
拆解,将多维数组变成一维数组。
flatten()
拉直,其功能与ravel()
相同,但是flatten()
返回的是真实的数组,需要分配新的内存空间,而ravel()
仅仅是改变视图。
shape()
使用元组改变数组形状。
transpose()
转置。
数组的堆叠
从深度看,数组既可以横向叠放,也可以竖向叠放。因此,我们我们对数组进行堆叠,Numpy
数组对堆叠包含以下几个函数: 首先,创建两个数组。
hstack()
水平叠加。
vstack()
垂直叠加。
dstack()
深度叠加。
仍在学习路上......接受指正,积极完善。