任务描述
本关任务:使用 Numpy
创建一个多维数组。
相关知识
为了完成本关任务,你需要掌握:创建数组。
创建数组
在 Python
中创建数组有许多的方法,这里我们使用 Numpy
中的 arange
方法快速的新建一个数组:
import numpy as np
a = np.arange(5)
其中 import numpy as np
是指引入 Numpy
这个库,并取别名为 np
。之所以取别名,是为了代码编写的方便。a=np.arange(5)
是指将数值 0 1 2 3 4
赋值给 a
这个变量,这样我们就快速的创建了一个一维数组。
创建多维数组的方法是:
import numpy as np
b = np.array([np.arange(6),np.arange(6)])
这里,我们使用两个 arange
方法,创建了两个 1x6
的一维数组,然后使用 numpy
的 array
方法,将两个一维数组组合成一个 2x6
的二维数组。从而达到了创建多维数组的目的。
numpy
创建的数组可以直接复制,具体代码示例如下:
import numpy as np
x = [y for y in range(6)]
b=np.array([x]*4)
该段代码会创建一个 4*6
的数组。
编程要求
本关的任务是,补全右侧编辑器 Begin-End 内的代码,以实现创建一个 m*n
的多维数组的功能。具体要求如下:
-
函数接受两个参数,然后创建与之对应的的多维数组;
-
本关的测试样例参见下文。
本关设计的代码文件 cnmda.py
的代码框架如下:
# 引入numpy库
import numpy as np
# 定义cnmda函数
def cnmda(m,n):
'''
创建numpy数组
参数:
m:第一维的长度
n: 第二维的长度
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加创建多维数组的代码并赋值给ret
#********** Begin *********#
#********** End **********#
return ret
测试说明
本关的测试过程如下:
-
平台运行
step1/cnmdatest.py
文件,并以标准输入方式提供测试输入; -
cnmdatest.py
文件调用cnmda
中的cnmda
方法,平台获取cnmdatest.py
的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。
以下是平台对 step1/cnmdatest.py
的测试样例:
测试输入: 5 8
;
预期输出: (5,8)
测试输入: 4 9
;
预期输出: (4,9)
代码:
# 引入numpy库
import numpy as np
# 定义cnmda函数
def cnmda(m,n):
'''
创建numpy数组
参数:
m:第一维的长度
n: 第二维的长度
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加创建多维数组的代码并赋值给ret
#********** Begin *********#
b=np.arange(n);
ret = np.array([b]*m)
#********** End **********#
return ret