第1关:数组创建

# 引入numpy库

import numpy as np

# 定义cnmda函数

def cnmda(m,n):

'''

创建numpy数组

参数:

m:第一维的长度

n: 第二维的长度

返回值:

ret: 一个numpy数组

'''

ret = 0

# 请在此添加创建多维数组的代码并赋值给ret

#********** Begin *********#

a=[b for b in range(n)]

ret=np.array([a]*m)

#********** End **********#

return ret

第2关:切片索引

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 *********#

第3关:基本运算

# 引入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

第4关:ufunc

import numpy as np

ndarray = np.ndarray

def task1(A: ndarray) -> ndarray:

'''

:param A n*m维的numpy数组

任务要求:计算矩阵A的平方根并与标量2相加;

'''

########## Begin ##########

B = np.sqrt(A) + 2

########## End ##########

return B

def task2(A: ndarray) -> ndarray:

'''

:param A n*m维的numpy数组

任务要求:将矩阵A开根号后的小数部分与原矩阵A相加;

'''

########## Begin ##########

B = A + np.modf(np.sqrt(A))[0]

########## End ##########

return B

def task3(A: ndarray) -> ndarray:

'''

:param A n*m维的numpy数组

任务要求:使用通用函数numpy.dot()计算矩阵A与矩阵A转置的矢量积;

提示:使用.T属性获得转置矩阵,例如A的转置矩阵为A.T

'''

########## Begin ##########

B = np.dot(A, A.T)

########## End ##########

return B

第5关:文件读写

import numpy as np

ndarray = np.ndarray

def task():

'''

任务要求:从指定路径的二进制文件中("step5/FileHandling/files/A.npy")读取NumPy矢量数组A,从从指定路径的txt文件中读取矢量数组B("step5/FileHandling/files/B.txt"),然后使用通用函数numpy.add()对数组A和B进行求和,将结果保存到指定的二进制文件中("step5/FileHandling/files/out.npy")

提示1:使用np.load('path')加载二进制文件'step5/FileHandling/files/A.npy'

提示2:使用np.loadtxt('path', delimiter=',')加载文本文件'step5/FileHandling/files/B.txt'

提示3:使用使用np.save('path', C)将结果储存到二进制文件'step5/FileHandling/files/out.npy'中

提示3:A.npy和B.txt中矩阵维度一致

'''

########## Begin ##########

A = np.load('step5/FileHandling/files/A.npy')

B = np.loadtxt('step5/FileHandling/files/B.txt', delimiter=',')

C = A + B

np.save("step5/FileHandling/files/out.npy", C)

########## End ##########

第6关:数组切片与索引

# 引入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

第7关:数组堆叠

# 引入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

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: