NumPy基础及取值操作

文章目录


第1关:ndarray对象

编程要求

根据提示,在右侧编辑器Begin-End中填充代码,根据测试用例的输入,实例化出对应的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\]

示例代码如下:

python 复制代码
import numpy as np


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

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

第2关:形状操作

编程要求

根据提示,在右侧编辑器Begin-End中填充代码,根据测试用例的输入,将列表转换成ndarray后变形成一维数组并将其打印。

具体要求请参见后续测试样例。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明

平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:

\[1, 2, 3\], \[4, 5, 6\]

预期输出:

1, 2, 3, 4, 5, 6

python 复制代码
```python
import numpy as np
a = np.zeros((3, 4))
``````python
import numpy as np
a = np.zeros((3, 4))
``````python
import numpy as np
a = np.zeros((3, 4))

示例代码如下:

python 复制代码
import numpy as np


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

    #********* Begin *********#
    print(np.array(input_data).reshape(-1))
    #********* End *********#

第3关:基础操作

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,根据测试用例的输入,打印每行的最大值的位置。

具体要求请参见后续测试样例。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明

平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:

\[0.2, 0.7, 0.1\], \[0.1, 0.3, 0.6\]

预期输出:

1 2

示例代码如下:

python 复制代码
import numpy as np


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

    #********* Begin *********#
    print(np.array(input_data).argmax(axis=1))
    #********* End *********#

第4关:随机数生成

编程要求

根据提示,在右侧编辑器Begin-End处补充代码,将测试用例输入打乱顺序并返回打乱结果。

具体要求请参见后续测试样例。

注意:评测程序内部已经设置好了随机种子,为了顺利评测,请使用np.random.choice()函数来实现打乱顺序。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明

平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:

1, 2, 3, 4, 5, 6

预期输出:

4, 3, 5, 1, 2, 6

示例代码如下:

python 复制代码
import numpy as np


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

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

第5关:索引与切片

编程要求

在图像处理中,我们通常会将我们感兴趣的区域提取出来再进行处理,而这个感兴趣区域成为ROI(Region Of Interest)。本关的任务是根据提示,在右侧编辑器Begin-End处补充代码,根据测试用例的输入将ROI的提取并返回(ROI是一个矩阵)。

具体要求请参见后续测试样例。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明

平台会对你编写的代码进行测试。你只需按要求完成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\]

示例代码如下:

python 复制代码
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 *********#
    b = data[x:x+h+1,y:y+w+1]
    return b
    #********* End *********#

相关推荐
郝学胜-神的一滴17 小时前
AI 编程智能体 27:吃透MCP通信机制
人工智能·python·langchain·wpf·numpy·scikit-learn
aifannihao2 天前
AI 学习第 5 课:手推逻辑回归与交叉熵,L2 把可分数据的权重按住
人工智能·机器学习·逻辑回归·numpy·学习路线
2601_967987373 天前
图灵星环:Python NumPy数组的维度压缩squeeze删除单维度
机器学习·numpy·数据预处理·数组处理·维度压缩
ljt272496066110 天前
Python笔记(十一)--Numpy(一)
笔记·python·numpy
小里lilili11 天前
金融数据分析技术栈拆解:从NumPy到机器学习,金融数学背景该如何补齐代码短板
金融·数据分析·numpy
gCode Teacher 格码致知12 天前
Pandas教学25:NumPy 的实战价值集中的四件事
numpy·pandas
gCode Teacher 格码致知12 天前
Pandas教学24:NumPy、Pandas、Matplotlib三者之间的关系
numpy·pandas·matplotlib
BK贝壳14 天前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
Patrick在香港14 天前
一个加 1 的动作,把最大值变成了最小值
python·numpy·数据类型·整数溢出·数据精度
万粉变现经纪人15 天前
如何解决 pip install 安装报错 检测到 yanked 版本需更换可用版本 问题
人工智能·python·scrapy·numpy·pandas·pyqt·pip