第四课 python基础
python库
Numpy:为python提供快速的多维数组处理能力
Pandas:在Numpy基础上提供了更多的数据读写工具
Scipy:在Numpy上添加了众多科学计算工具包
Matplotlib:Python丰富的绘图库
导入Numpy函数库,一般都是这样的形式
# 导入Numpy函数库,一般都是这样的形式 import numpy as np import matplotlib as mpl
创建一个列表对象,通过array函数,转成数组
# 创建一个列表对象 list1 = [1,2,3,4,5] print(list1,type(list1)) # 通过array函数,转成数组 a = np.array(list1) print(a,type(a))
创建多维数组
# 创建多维数组 list2 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] a2 = np.array(list2) print("数组的形状:{0}\t数据类型:{1}".format(a2.shape,type(a2))) print(a2)
![](https://img2020.cnblogs.com/blog/2189319/202011/2189319-20201110113400393-2079619332.png)
# 创建一个多维数组,里面的3行4列中的元素都是在[0,1) d = np.random.rand(3,4) print(d.shape,type(d)) print(d)
可以强制修改shape
# 创建多维数组 list2 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] a2 = np.array(list2) print("数组的形状:{0}\t数据类型:{1}".format(a2.shape,type(a2))) print(a2) # 也可以强制修改shape a2.shape = 2,6 print("数组的形状:{0}\t数据类型:{1}".format(a2.shape,type(a2))) print(a2)
数组的转置
# 创建多维数组 list2 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] a2 = np.array(list2) print("数组的形状:{0}\t数据类型:{1}".format(a2.shape,type(a2))) print(a2) # 数组的转置transpose(注意,shape属性只是改变每个轴的大小,并不能实现数组的转置) b = a2.transpose() print("数组的形状:{0}\t数据类型:{1}".format(b.shape,type(b))) print(b)
reshape方法,可以创建改变了尺寸的新数组,原数组保持不变(注意方法里面要加括号)
# 创建多维数组 list2 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] a2 = np.array(list2) print("数组的形状:{0}\t数据类型:{1}".format(a2.shape,type(a2))) print(a2) # 使用reshape方法,可以创建改变了尺寸的新数组,原数组保持不变 c = a2.reshape((4,-1)) print("数组的形状:{0}\t数据类型:{1}".format(c.shape,type(c))) print(c) # 注意,数组c与a2共享内存,修改任意一个,将影响另外一个 a2[0][0] = 100 print("修改后的数组a2") print(a2) print("修改后的数组c") print(c)
![](https://img2020.cnblogs.com/blog/2189319/202011/2189319-20201110114857601-645603795.png)
![](https://img2020.cnblogs.com/blog/2189319/202011/2189319-20201110114906892-1013598762.png)
更改元素类型,可以使用astype安全的转换
# 创建多维数组 list2 = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] a2 = np.array(list2) print("数组的形状:{0}\t数据类型:{1}".format(a2.shape,type(a2))) print(a2) # 如果更改元素类型,可以使用astype安全的转换 s = a2.astype(np.str) print("更改元素类型为str") print(s)