主要内容 #
- 综合实战:数据可视化,了解NumPy和Matplotlib的数据分析基础包,掌握数据可视化的基本编写
1.关于NumPy #
numpy是Python中科学计算的基础包。它是一个python库,提供多维数组对象,更加方便我们对多维矩阵的处理
numpy与python中多维数据列表(参考第50课)有相似之处,但处理多维数组时更加方便快捷
numpy包含了math包和random包(参考77-80课)对于数据处理的功能,且更加强大
在cmd窗口或者pycharm中的Terminal终端输入:pip install numpy命令安装numpy包
#两种方法构建二维列表,创建3*3的矩阵
a=[[0,0,0] for i in range(3)]#语法糖创建3*3的零矩阵
b=[[0]*3]*3#使用'*'快速复制列表元素创建3*3的零矩阵
a[0][1]=1#修改第一行第二列为1
b[0][1]=1#修改第一行第二列为1
print(a)
print(b)
以上示例输出的结果表明,b列表中每个列表之间都是浅copy的关系。因此改变其中一个列表,相当于其他两个列表也做了相同的操作,这不符合我们创建二维矩阵的目的。使用numpy可以解决这种问题,而且numpy本身也有更加简便的方法,注意以下示例两种不同的索引方式。
#两种方法使用numpy创建3*3的矩阵
import numpy as np#导入numpy包
a=[[0]*3]*3
a=np.array(a)#使用二维列表创建矩阵
b=np.zeros((3,3))#使用zeros方法创建矩阵
a[0,1]=1#索引方式也可与二维列表形同如下
b[0][1]=1#兼容python二维列表的索引方式
print(a)
print(b)
2.NumPY的使用 #
以下示例通过使用numpy创建一个n*n的方阵,并打印出每个位置对应的数字,比如第二行第一列对应位置数字为21,关于NumPY的使用更多方法参考
NumPy使用手册
import numpy as np#导入numpy包
try:
n=int(input('方阵大小:'))
except:
print('请输入整数!!!')
a=np.zeros((n,n))#初始化矩阵
for i in range(n):
for j in range(n):
a[i,j]=10*(i+1)+j+1#想一想为什么?
print(a)#打印矩阵
习题 #
- 参照本节课第二小节示例,请使用二维列表实现相同的功能,并谈一谈多维列表和numpy矩阵的不同之处
- 结合NumPy使用手册(点击查询),尽可能多的找一找NumPy使用的例子
OJ训练题 #
1、彩票 – ★
2、山洞寻宝 – ★
3、分蛋糕 – ★
4、窗外的树 – ★★
5、银行排除 – ★★★