Numpy数值计算Numpy初体验在线闯关_头歌实践教学平台

Numpy数值计算初体验

  • [第1关 Numpy创建数组](#第1关 Numpy创建数组)
  • [第2关 Numpy数组的基本运算](#第2关 Numpy数组的基本运算)
  • [第3关 Numpy数组的切片与索引](#第3关 Numpy数组的切片与索引)
  • [第4关 Numpy数组的堆叠](#第4关 Numpy数组的堆叠)
  • [第5关 Numpy的拆分](#第5关 Numpy的拆分)

第1关 Numpy创建数组

任务描述

本关的小目标是,使用 Numpy 创建一个多维数组。

测试说明

本关的测试过程如下:

平台运行step1/cnmdatest.py文件,并以标准输入方式提供测试输入;

cnmdatest.py文件调用cnmda中的cnmda方法,平台获取cnmdatest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

以下是平台对step1/cnmdatest.py的测试样例:

测试输入: 5 8

预期输出: (5,8)

测试输入: 4 9

预期输出: (4,9)

开始你的任务吧,祝你成功!

python 复制代码
# 引入numpy库
import numpy as np
# 定义cnmda函数
def cnmda(m,n):
    '''
    创建numpy数组
    参数:
		m:第一维的长度
        n: 第二维的长度
    返回值:
        ret: 一个numpy数组
    '''
    ret=0
    # 请在此添加创建多维数组的代码并赋值给ret
    #********** Begin *********#
    x=np.arange(n)
    ret=np.array([x]*m)
    #********** End **********#
    return ret

第2关 Numpy数组的基本运算

任务描述

本关的小目标是,学会Numpy二维数组的一些基本操作。

测试说明

本关的测试过程如下:

平台运行step5/caltest.py文件,并以标准输入方式提供测试输入;

caltest.py文件调用cal中的方法,平台获取caltest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

以下是平台对step5/caltest.py的测试样例:

a= np.array([[1,2,3],[4,5,6]])

b = [1,2,3]

测试输入: add

预期输出:

\[2 3 4

5 6 7\]

测试输入:mul

预期输出:

\[ 2 4 6

8 10 12\]

开始你的任务吧,祝你成功!

python 复制代码
# 引入numpy库
import numpy as np
# 定义opeadd函数
def opeadd(m,b,n):
    '''
    参数:
    m:是一个数组
    b:是一个列表
    n:是列表中的索引
    你需要做的是 m+b[n]
    返回值:
    ret: 一个numpy数组
    '''    
    ret = 0

    #********** Begin *********#
    ret=m+b[n]
      #********** End **********#

    return ret
# 定义opemul函数
def opemul(m,b,n):
    '''
    参数:
    m:是一个数组
    b:是一个列表
    n:是列表中的索引
    你需要做的是 m*b[n]
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0

    #********** Begin *********#
    ret=m*b[n]
    #********** End **********#
    return ret

第3关 Numpy数组的切片与索引

任务描述

本关的小目标是,从数组中选择指定的元素。

测试说明

本关的测试过程如下:

平台运行step2/cetest.py文件,并以标准输入方式提供测试输入;

cetest.py文件调用ce中的ce方法,平台获取cetest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

预处理的数组

\[1,2,3,4,5\],\[7,8,9,10,11\],\[12,13,14,15\]

以下是平台对step2/cetest.py的测试样例:

测试输入:

1

3

预期输出:

7,8,9

测试输入:

2

2

预期输出:

12,13

开始你的任务吧,祝你成功!

python 复制代码
# 引入numpy库
import numpy as np
# 定义cnmda函数
def ce(a,m,n):
    '''
    参数:
    a:是一个Numpy数组
    m:是第m维数组的索引
    n:第m维数组的前n个元素的索引
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0
    # 请在此添加切片的代码,实现找出多维数组a中第m个数组的前n个元素 并赋值给ret
    #********** Begin *********#
    ret=a[m,:n]
    #********** End **********#
    return ret

第4关 Numpy数组的堆叠

任务描述

本关的目标是,改变Numpy数组的形状。

测试说明

本关的测试过程如下:

平台运行step3/manipulationtest.py文件,并以标准输入方式提供测试输入;

manipulationtest.py文件调用manipulation中的三个方法,平台获取manipulationtest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

预处理数组:

a = np.array([[1,2,3],[4,5,6]])

b = np.array([[3,4,5],[7,8,9]])

以下是平台对step3/manipulationtest.py的测试样例:

测试输入: v

预期输出:

\[1 2 3

4 5 6

3 4 5

7 8 9\]

测试输入: d

预期输出:

\[\[1 3

2 4

3 5\]

\[4 7

5 8

6 9\]\]

开始你的任务吧,祝你成功!

python 复制代码
# 引入numpy库
import numpy as np
# 定义varray函数
def  varray(m,n):
    '''
    参数:
    m:是第一个数组
    n:是第二个数组
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0
    # 请在此添加代码实现数组的垂直叠加并赋值给ret
    #********** Begin *********#
    ret=np.vstack((m,n))
    #********** End **********#
    return ret
# 定义darray函数
def  darray(m,n):
    '''
    参数:
    m:是第一个数组
    n:是第二个数组
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0
    # 请在此添加代码实现数组的深度叠加并赋值给ret
    #********** Begin *********#
    ret=np.dstack((m,n))
    #********** End **********#
    return ret
 # 定义harray函数
def  harray(m,n):
    '''
    参数:
    m:是第一个数组
    n:是第二个数组
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0
    # 请在此添加代码实现数组的水平叠加并赋值给ret
    #********** Begin *********#
    ret=np.hstack((m,n))
    #********** End **********#
    return ret

第5关 Numpy的拆分

任务描述

本关的目标是,对Numpy数组进行拆分。

本关的测试过程如下:

平台运行step5/splitarraytest.py文件,并以标准输入方式提供测试输入;

splitarraytest.py文件调用splitarray中的三个方法方法,平台获取splitarraytest.py的输出,然后将其与预期输出作对比,如果一致,则测试通过;否则测试失败。

预处理数组:

a= np.arange(9).reshape(3,3)

c = np.arange(27).reshape(3,3,3)

以下是平台对step4/splitarraytest.py的测试样例:

测试输入: v

预期输出: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

测试输入: h

预期输出: [array([[0],[3],[6]]), array([[1],[4],[7]]), array([[2],[5],[8]])]

开始你的任务吧,祝你成功!

python 复制代码
# 引入numpy库
import numpy as np
# 定义varray函数
def  vsarray(m,n):
    '''
    参数:
    m:是第一个数组
    n:是需要拆分到的维度
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0
    # 请在此添加代码实现数组的纵向拆分并赋值给ret
    #********** Begin *********#
    ret=np.vsplit(m,n)
    #********** End **********#
    return ret
# 定义darray函数
def  dsarray(m,n):
    '''
    参数:
    m:是第一个数组
    n:是需要拆分到的维度
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0
    # 请在此添加代码实现数组的深度拆分并赋值给ret
    #********** Begin *********#
    ret=np.dsplit(m,n)
    #********** End **********#
    return ret
 # 定义harray函数
def  hsarray(m,n):
    '''
    参数:
    m:是第一个数组
    n:是需要拆分到的维度
    返回值:
    ret: 一个numpy数组
    '''
    ret = 0
    # 请在此添加代码实现数组的水平拆分并赋值给ret
    #********** Begin *********#
    ret=np.hsplit(m,n)
    #********** End **********#
    return ret

感谢您的关注!

相关推荐
m0_7485548134 分钟前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
数模竞赛Paid answer34 分钟前
2024年亚太杯APMCM数学建模大赛A题复杂场景下水下图像增强研究解题全过程文档及程序
数学建模·数据分析·亚太杯
smj2302_796826521 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
阿正呀2 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
2501_901200532 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
_.Switch2 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
Mr_sst2 小时前
Claude Code 部署与使用保姆级教程(2026 最新)
python·ai
瞎某某Blinder2 小时前
DFT学习记录[6]基于 HES06的能带计算+有效质量计算
python·学习·程序人生·数据挖掘·云计算·学习方法
m0_495496413 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
数智化精益手记局3 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程