python numpy库(续)及matplotlib库

numpy:一个做数值运算的库;

为什么引用numpy:
标准python中引用列表保存一组值,可当做数组使用;但由于列表的元素可是任何对象,因此列表中保存的是对象的指针(地址);对于数值运算来说,这种结构浪费内存和cpu计算;python提供了array模块,它和列表不同,能直接保存数值,但由于它不支持多维数组,也没有运算函数,所以也不适合做数值运算

numpy中定义的最重要对象时ndarray的N维数组类型,它描述了相同类型的元素集合。可以使用基于0的索引访问集合中的项目
ndarray中每个元素在内存中使用相同大小的块

数组属性:
ndim:返回int, 表示维数
shape:返回tuple, 表示数组尺寸
itemsize:返回int,表示数组每个元素的大小

np.ones_like(a) #和a的shape一样的全1数组

np.full((3,2),1) #3*2的里面值全为1的数组

查看np函数使用方法:
help(np.full)
np.info(np.full)
np.full?

np.identity(3) #单位数组

np.diag([1,2,3]) #对角数组

np.empty((4,4)) #空数组,它会占据内存空间,但是对于元素值是随机产生的

数组的运算
单个数值的numpy.sin的计算速度只有math.sin的1/3,这是因为numpy.sin为了同时支持数组和单个值的计算,其c语言内部实现要比math.sin复杂很多
矩阵操作的numpy.sin比math.sin快20倍多,这得利于numpy.sin在c语言级别的循环计算


#将计算单个值的函数转换为一个能对数组的每个元素进行计算的函数
triangle_ufunc1=np.frompyfunc(triangle_wave, 4, 1)
#frompyfunc(func,nin,nout),func是计算单个元素的函数,nin是func输入参数的个数,nout是func输出的参数个数
y2=triangle_ufunc1(x,0.6,0.4, 3) #可以说输入数组形式了
注意:def函数输入的参数都是单个单个的数值,而不能是数组,而通过frompyfunc进行转换后新生成的triangle_ufunc1就能将参数作为数组的形式输入

通用函数的广播机制:当我们用ufunc对两个数组进行计算时,ufunc会对这两个数组的对应元素进行计算,因此要求这两个数组shape相同;如果shape不同的话,会进行如下的广播处理(broadcasting)
让所有输入数组都向其中shape最长的数组看齐,shape中不足的部分通过在前面加1补齐
ex: 对于一维数组它的形式是 (3,),如果补1的话,它的shape会变为(1,3)
输出数组的shape是输入数组shape的各个轴的最大值
如果输入数组的某个轴和输出数组的对应轴的长度相同或者其长度为1时,这个数组能够用来计算,否则出错
当输入数组的某个轴的长度为1时,沿着此轴运算时都用此轴上的第一组值
在这里插入图片描述在这里插入图片描述

字典是无序的,集合也是无序的,只有列表元组和字符串是有序的

np.sum(arr): 在这里np.sum()是一个函数,是通用的,arr作为变量;另外np.sum是作为整体计算arr数组里的数
arr.sum():在这里sum方法是作为arr的属性,arr.sum优先使用;由于sum()方法是它的属性,所以在这里可以定义它是横轴求和还是纵轴求和

对于在原地修改后的变量,它的返回值是空值
而新生成的变量,返回值是修改后的数值
ex:
a.sort() #原地排序,返回值为空
a.sorted() #新生成的数据,返回值为排序后的数据

matplotlib
matplotlib是绘图库,它提供了一套和matlab类似的命令API,十分适合交互式绘图,且可以将它作为绘图控件,嵌入GUI应用程序

在这里插入图片描述
快速绘图:

  1. 创建画布和创建子图
    plt.figure:创建空白画布,可指定画布大小,像素
    figure.add_subplot:创建并选中子图,可以指定子图的行数,列数和选中图片的编号
  2. 添加画布内容
    plt.title:标题,指定标题名称,位置,颜色字体大小
    plt.xlabel:添加x轴名称,可指定位置,颜色,字体大小等参数
    plt.ylabel
    plt.xlim:指定x轴范围,只能确定一个数值区间
    plt.ylim
    plt.xticks: 指定x轴刻度的数目和取值
    plt.yticks
    plt.legend: 指定当前图形的图例,可以指定图例的大小位置标签
  3. 保存与显示图形
    plt.saveflg:保存绘制的图形
    plt.show: 显示图形

对于图例里如果是公式的话,可以加$$,表示latex公式,看起来效果更好

plt.show()是显示图片的操作,因为它显示图片还会关掉,所以如需使用plt.savefig(),它要加在savefig的后面,否则savefig保存的是一个空图片

直方图:统计报告图,形式上是一个个长条形,直方图用长条形面积表示频数,所以长条形高度表示频数/组距,宽度表示组距,其长度和宽度均有意义;当宽度相同时,一般用长条形表示频数

所有图片都是由三种颜色合成的,分别是红,绿,蓝。

plt.plot(x, y): x和y的值必须是数组而不能是字符,因为它是确定在x轴和y轴在图形中的位置

pandas

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值