第一关:ndarray对象
平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。
-
shape
:为需要实例化出来的ndarray
对象的shape
; -
data
:表示需要实例化出来的ndarray
对象中元素的值。
例如:{'shape':[1, 2], 'data':[[1, 2]]}
表示ndarray
对象的形状为1
行2
列,第1
行第1
列的值为1
,第1
行第2
列的值为2
。
测试输入: {'shape':[1, 2], 'data':[[1, 2]]}
预期输出: [[1 2]]
第二关:形状操作
根据提示,在右侧编辑器Begin-End
中填充代码,根据测试用例的输入,将列表转换成ndarray
后变形成一维数组并将其打印。
- 具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!
'''
将ipnut_data转换成ndarray后将其变形成一位数组并打印
:param input_data: 测试用例,类型为list
:return: None
'''
测试输入: [[1, 2, 3], [4, 5, 6]]
预期输出: [1, 2, 3, 4, 5, 6]
第三关:基础操作
根据提示,在右侧编辑器Begin-End
处补充代码,根据测试用例的输入,打印每行的最大值的位置。
- 具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!
'''
将input_data转换成ndarray后统计每一行中最大值的位置并打印
:param input_data: 测试用例,类型为list
:return: None
'''
测试输入: [[0.2, 0.7, 0.1], [0.1, 0.3, 0.6]]
预期输出: [1 2]
第四关:随机数生成
根据提示,在右侧编辑器Begin-End
处补充代码,将测试用例输入打乱顺序并返回打乱结果。
- 具体要求请参见后续测试样例。
注意:评测程序内部已经设置好了随机种子,为了顺利评测,请使用
np.random.choice()
函数来实现打乱顺序。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!
'''
打乱input_data并返回打乱结果
:param input_data: 测试用例输入,类型为list
:return: result,类型为list
'''
测试输入: [1, 2, 3, 4, 5, 6]
预期输出: [4, 3, 5, 1, 2, 6]
第五关:索引与切片
平台会对你编写的代码进行测试。你只需按要求完成get_roi(data, x, y, w, h)
函数即可。其中:
-
data
:待提取ROI
的原始图像数据(其实就是个二维数组),类型为ndarray
; -
x
:ROI
的左上角顶点的行索引,类型为int
; -
y
:ROI
的左上角顶点的列索引,类型为int
; -
w
:ROI
的宽,类型为int
; -
h
:ROI
的高,类型为int
。
测试用例是一个字典,字典中image
部分表示原始图像的像素数据,x
部分表示ROI
的左上角顶点的行索引,y
部分表示ROI
的左上角顶点的列索引,w
部分表示ROI
的宽,h
部分表示ROI
的高。
预测输入:
{'image':[[1, 2, 255, 255, 0], [255, 255, 0, 0, 3]], 'x':0, 'y':1, 'w':2, 'h':1}
预期输出:
[[ 2 255 255] [255 0 0]]