当前位置:   article > 正文

NumPy基础及取值操作_第1关:ndarray对象

第1关:ndarray对象

头歌实践作业【NumPy基础及取值操作】

第1关:ndarray对象

根据测试用例的输入,实例化出对应的ndarray对象并打印。
测试输入:
{‘shape’:[1, 2], ‘data’:[[1, 2]]}
预期输出:
[[1 2]]

import numpy as np

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

    #********* Begin *********#
    print(np.array(input_data['data']))
    #********* End *********#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

第2关:形状操作

根据测试用例的输入,将列表转换成ndarray后变形成一维数组并将其打印。
测试输入:
[[1, 2, 3], [4, 5, 6]]
预期输出:
[1, 2, 3, 4, 5, 6]

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 *********#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

第3关:基础操作

根据测试用例的输入,打印每行的最大值的位置。
测试输入:
[[0.2, 0.7, 0.1], [0.1, 0.3, 0.6]]
预期输出:
[1 2]

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 *********#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

第4关:随机数生成

将测试用例输入打乱顺序并返回打乱结果。
注意:请使用np.random.choice()函数来实现打乱顺序。
测试输入:
[1, 2, 3, 4, 5, 6]
预期输出:
[4, 3, 5, 1, 2, 6]

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

第5关:索引与切片

根据提示,在右侧编辑器Begin-End处补充代码,根据测试用例的输入将ROI的提取并返回(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]]

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 *********#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

如果你遇见此问题,希望可以帮到你!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/142594
推荐阅读
相关标签
  

闽ICP备14008679号