Numpy 是 Python 语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy 内部解除了 Python 的 PIL (全局解释器锁),运算效率极好,是大量机器学习框架的基础库! 本实训需要学员掌握 Python 的基本知识,了解 Numpy 的数据类型以及数组数组属性。

第1关:Numpy广播

本关任务: 给定两个不同形状的数组,求出他们的和。 编程要求: 首先用arange()生成一个数组,然后用reshape()方法,将数组切换成4x3的形状,最后再与basearray相加,输出它们的和。 请按照编程要求,补全右侧编辑器Begin-End区间的代码。

import numpy as np

basearray = eval(input())

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

arr = np.arange(12).reshape((4, 3))

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

print("{} + \n{}".format(arr,basearray))

print("结果为:\n{}".format(basearray+arr))

第2关:Numpy高级索引

本关任务: 给定一个二维数组,请以整数数组索引、布尔索引、花式索引三种方式,来获取我们需要的数组元素。 编程要求: 首先,利用花式索引获取arr数组第line行(至少两行)的数组a;然后,利用整数数组索引获取数组四个角(按行优先的顺序获取)的元素得到数组b;最后,再利用布尔索引获取大于10的元素得到数组c,并输出c。 请按照编程要求,补全右侧编辑器Begin-End 区间的代码。

import numpy as np

'''

arr为一个ndarray类型的数组,line为花式索引的索引数组

'''

def advanced_index(arr,line):

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

a = arr[line]

b = a[[0, 0, (len(line)-1),(len(line)-1)],[0, 3, 0, 3]]

c = b[b > 10]

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

return c

def main():

line = list(map(lambda x:int(x),input().split(",")))

arr = np.arange(24).reshape(6, 4)

print(advanced_index(arr,line))

if __name__ == '__main__':

main()

精彩内容

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