头歌python Numpy初体验
第1关:Numpy创建数组
任务描述
本关的小目标是,使用 Numpy 创建一个多维数组。编程要求
本关的任务是,补全右侧编辑器中 Begin-End 区间的代码,以实现创建一个m*n的多维数组的功能。具体要求如下:函数接受两个参数,然后创建与之对应的的多维数组;
本关的测试样例参见下文。
# 引入numpy库
import numpy as np
# 定义cnmda函数
def cnmda(m,n):
'''
创建numpy数组
参数:
m:第一维的长度
n: 第二维的长度
返回值:
ret: 一个numpy数组
'''
ret = 0
# 请在此添加创建多维数组的代码并赋值给ret
#********** Begin *********#
ret = [n for n in range(n)]
ret = np.array([ret]*m)
#********** End **********#
return ret
第2关:Numpy数组的基本运算
任务描述
本关的小目标是,学会Numpy二维数组的一些基本操作。编程要求
本关的任务是,补全右侧编辑器中 Begin-End 区间的代码,以实现向量与标量相加和相乘的的功能。具体要求如下:函数接受三个参数,然后进行向量与标量之间的运算;
本关的测试样例参见下文;
本关设计的代码文件cal.py的代码框架如下:
# 引入numpy库 import numpy as np # 定义opeadd函数 def opeadd(m,b,n): '''实现加法 参数: m:是一个数组 b:是一个列表 n:是列表中的索引 你需要做的是 m+b[n] 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加 创建多维数组 的代码 并赋值给ret #********** Begin *********# #********** End **********# return ret # 定义opemul函数 def opemul(m,b,n): '''实现乘法 参数: m:是一个数组 b:是一个列表 n:是列表中的索引 你需要做的是 m+b[n] 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加 创建多维数组 的代码 并赋值给ret #********** Begin *********# #********** End **********# return ret
# 引入numpy库
import numpy as np
# 定义opeadd函数
def opeadd(m,b,n):
'''
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m+b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
#********** Begin *********#
y = np.array(b[n])
ret = np.add(m,y)
#********** End **********#
return ret
# 定义opemul函数
def opemul(m,b,n):
'''
参数:
m:是一个数组
b:是一个列表
n:是列表中的索引
你需要做的是 m*b[n]
返回值:
ret: 一个numpy数组
'''
ret = 0
#********** Begin *********#
y = np.array(b[n])
ret = np.multiply(m,y)
#********** End **********#
return ret
第3关:Numpy数组的切片与索引
任务描述
本关的小目标是,从数组中选择指定的元素。编程要求
本关的任务是,右侧编辑器中 Begin-End 区间的代码,以实现Numpy数组的索引功能的功能。具体要求如下:函数接受两个参数,然后返回切片找出的指定元素;
本关的测试样例参见下文;
本关设计的代码文件ce.py的代码框架如下:# 引入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 *********# #********** End **********# return ret
# 引入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数组的形状。编程要求
本关的任务是,补全右侧编辑器中Begin-End区间的代码,分别实现Numpy数组的垂直叠加、水平叠加、深度叠加。具体要求如下:函数接受两个参数,然后将两个参数进行叠加;
本关的测试样例参见下文;
本关设计的代码文件manipulation.py的代码框架如下:# 引入numpy库 import numpy as np # 定义varray函数 def varray(m,n): ''' 参数: m:是第一个数组 n:是第二个数组 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加代码实现数组的垂直叠加 并赋值给ret #********** Begin *********# #********** End **********# return ret # 定义darray函数 def darray(m,n): ''' 参数: m:是第一个数组 n:是第二个数组 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加代码实现数组的深度叠加并赋值给ret #********** Begin *********# #********** End **********# return ret # 定义harray函数 def harray(m,n): ''' 参数: m:是第一个数组 n:是第二个数组 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加代码实现数组的水平叠加并赋值给ret #********** Begin *********# #********** End **********# return ret
# 引入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数组进行拆分。编程要求
本关的任务是,补全右侧编辑器中Begin-End区间的代码,分别实现Numpy数组的纵向拆分、横向拆分、深度拆分。具体要求如下:函数接受一个参数,然后将数组进行拆分;
本关的测试样例参见下文;
本关设计的代码文件splitarray.py的代码框架如下:# 引入numpy库 import numpy as np # 定义varray函数 def vsarray(m,n): ''' 参数: m:是第一个数组 n:是需要拆分到的维度 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加代码实现数组的纵向拆分并赋值给ret #********** Begin *********# #********** End **********# return ret # 定义hsarray函数 def hsarray(m,n): ''' 参数: m:是第一个数组 n:是需要拆分到的维度 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加代码实现数组的水平拆分并赋值给ret #********** Begin *********# #********** End **********# return ret # 定义dsarray函数 def dsarray(m,n): ''' 参数: m:是第一个数组 n:是需要拆分到的维度 返回值: ret: 一个numpy数组 ''' ret = 0 # 请在此添加代码实现数组的深度拆分并赋值给ret #********** Begin *********# #********** End **********# return ret
# 引入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
更多推荐
所有评论(0)