项目 | NumPy数值计算基础 |
博客名称 | 2003031118-李伟-Python数据分析第三周作业-第一次作业 |
课程班级博客链接 | https://edu.cnblogs.com/campus/pexy/20sj |
这个作业要求链接 | https://edu.cnblogs.com/campus/pexy/20sj/homework/12540 |
要求 | 每道题都要有题目,代码(使用插入代码),截图 |
扩展阅读的心得:
1.Python3及pip、numpy、Matplotlib等模块的安装
对于安装Python3,由于之前有安装的经验,所以安装没有什么问题。 而这次安装,我下载了PyCharm2021.3.2版本。
对于模块的安装,之前在CSDN上有所学习https://blog.csdn.net/W_REP/article/details/117134384?utm_source=app&app_version=5.2.1&code=app_1562916241&uLinkId=usr1mkqgl919blen
阅读之后,对于NumPy的使用有了基本的了解。
可以用NumPy创建数组、查看数组的属性(元素的个数、形状、维度、元素类型);NumPy中有可以快速创建N维数组的api函数
从现有的数据创建数组
- array(深拷贝)
- asarray(浅拷贝)
NumPy数组也可以创建随机数组,包括均匀分布和正态分布;同时,还学习到NumPy的计算(条件运算、统计运算、数组与数的运算、矩阵运算)
实训1 创建数组并进行运算1.训练要点
(1)掌握NumPy的数组创建及随机数生成。
(2)掌握NumPy中用于统计分析的基本运算函数。
2.需求说明
NumPy数组在数值运算方面的效率优于Python提供的list,所以灵活掌握NumPy中数组的创建以及基础的运算是有必要的。
3.实验思路及步骤
(1)创建一个数组范围为0—1,间隔为0.01的数组。
(2)创建100个服从正态分布的随机数。
(3)对创建的两个数进行四则运算。
(4)对创建的随机数组进行简单的统计分析。
4.运行代码及截图
1 import numpy as np 2 #1、创建一个数值范围为0~1,间隔为0.01的数组 3 arr1=np.arange(0,1,0.01) 4 print("arange函数创建的数值范围为0~1间隔为0.01的数组arr1为:\n",arr1) 5 #2、创建由100个服从正态分布的随机数构成的数组 6 arr2=np.random.randn(100) 7 print('生成的随机数组arr2为:\n',arr2) 8 9 #3、对创建的两个数组进行四则运算 10 print('arr1 + arr2:\n',arr1+arr2) 11 print('arrl-arr2:\n',arr1-arr2) 12 print('arrl*arr2:\n',arr1*arr2) 13 print('arrl/arr2:\n',arr1/arr2) 14 #print('arrl**arr2:\n',arr1**arr2) 15 16 #4、对创建的数组进行简单的统计分析 17 print('正态分布数数组的累计和为:\n',np.cumsum(arr2))#计算所有元素的累计和 18 print('正态分布数去重后的值组为:\n',np.unique(arr2))#去除重复值 19 print('正态分布数组的均值为:',np.mean(arr2))#计算数组均值 20 print('正态分布数组的标准差为:',np.std(arr2))#计算数组标准差 21 print('正态分布数组的方差为:',np.var(arr2))#计算数组方差 22 print('正态分布数组的最小值为:',np.min(arr2))#计算最小值 23 print('正态分布数组的最大值为:',np.max(arr2))#计算最大值 24 print('正态分布数组的总和为:',np.sum(arr2))#计算数组总和
实训2 创建一个国际象棋的棋盘
1,训练要点
(1)掌握矩阵创建方法。
(2)掌握数组索引的方法。
2.需求说明
创建国际象棋棋盘,填充8*8矩阵。国际象棋棋盘是个正方形,由横纵向各8格、颜色一深一浅交错排列的64个小方格组成,深色格为黑格,浅色格为白格,棋子就在这些格子中移动,如图所示。
3.实验思路及步骤
(1)创建一个8*8矩阵。
(2)把1、3、5、7行和2、4、6列的元素设置为1。
4.运行代码及截图
1 import numpy as np 2 matr1=np.ones((8,8)) 3 for i in range(8): 4 for j in range(8): 5 if(i+j)%2==0: 6 matr1[i,j]=0 7 print('国际棋盘对应的矩阵为:\n',matr1) 8 9 for i in range(0,8): 10 for j in range(0,8): 11 if matr1[i,j]==0: 12 print("□",end=' ') 13 else: 14 print("■", end=' ') 15 print('\n')