第1关:ndarray对象

1
2
3
4
5
6
7
8
9
10
11
12
import numpy as np

def print_ndarray(input_data):
'''
实例化ndarray对象并打印
:param input_data: 测试用例,类型为字典类型
:return: None
'''

#********* Begin *********#
print(np.array(input_data['data']))
#********* End *********#

第2关:形状操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import numpy as np

def reshape_ndarray(input_data):
'''
将ipnut_data转换成ndarray后将其变形成一位数组并打印
:param input_data: 测试用例,类型为list
:return: None
'''

#********* Begin *********#
temp = np.array(input_data)
tat = temp.reshape((1,-1))
for i in tat:
print(i)
#********* End *********#

第3关:基础操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np

def get_answer(input_data):
'''
将input_data转换成ndarray后统计每一行中最大值的位置并打印
:param input_data: 测试用例,类型为list
:return: None
'''

#********* Begin *********#
temp = np.array(input_data)
List = []
for value in temp:
List.append(value.argmax())
print(np.array(List))
#********* End *********#

第4关:随机数生成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np

def shuffle(input_data):
'''
打乱input_data并返回打乱结果
:param input_data: 测试用例输入,类型为list
:return: result,类型为list
'''

# 保存打乱的结果
result = []
#********* Begin *********#
temp = np.random.choice(input_data,size=len(input_data),replace=False)
result = temp.tolist()
#********* End *********#
return result

第5关:索引与切片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np

def get_roi(data, x, y, w, h):
'''
提取data中左上角顶点坐标为(x, y)宽为w高为h的ROI
:param data: 二维数组,类型为ndarray
:param x: ROI左上角顶点的行索引,类型为int
:param y: ROI左上角顶点的列索引,类型为int
:param w: ROI的宽,类型为int
:param h: ROI的高,类型为int
:return: ROI,类型为ndarray
'''

#********* Begin *********#
return data[x:x+h+1,y:y+w+1]
#********* End *********#