Python学习
文章平均质量分 57
本专栏的文章为作者在学习Python时的记录。
C.L.L
这个作者很懒,什么都没留下…
展开
-
python之numpy(1 安装及基本介绍)
numpy是 Python 中的一个非常流行的库,它提供了大量的数学函数工具,特别是针对数组和矩阵的操作。numpy的全称是 Numerical Python,它极大地简化了数组和矩阵的运算,使得 Python 成为进行科学计算的一个强大工具。原创 2024-08-14 11:26:02 · 416 阅读 · 0 评论 -
python之numpy(4 选择数据及合并)
vtack表示纵向合并(vertical),hstack表示横向合并(h横拼音记忆,高手可以英语记忆horizontal)m[1][1]和m[1,1]表示同样的意思,均指第1行第一列的元素。结果同上,两种方法均可以实现合并。大家根据喜好自行选择。numpy中的选择数据和c语言数组中较为相似。合并指将两个矩阵或数组合成为一个矩阵或数组。结果为m中的所有元素,且返回为一维数组。还可以利用concatenate去合并。m[0[ 表示第0行(索引从0开始)m[1,:]和m[1]意思相同。原创 2024-08-15 00:15:00 · 403 阅读 · 0 评论 -
python之numpy (5 分割和复制)
使用split时,要指定axis参数,当axis=1时,表示横向即每一横行分割成三部分;在 Python 中,copy方法用于创建对象的副本,特别适用于那些可变对象,如列表、字典和集合等。同理,vsplit表示纵向分割成三部分(每一纵行分割成三部分),即分割结果为三行;而hsplit即横向分割成三部分(每一横行分割成三部分),即分割结果为三列。此种分割方法均为平均分割,不能不等分割,而array_split可实现不等分割。原矩阵为3×3矩阵,而要被分割为两个矩阵,只能是不等分割。原创 2024-08-15 10:56:39 · 465 阅读 · 0 评论 -
python之pandas (4 合并)
在concat函数中,第一个参数表示要合并的数据,注意要用中括号括起来;axis表示合并方向,axis=0表示纵向合并(一般都是纵向);ignore_index表示合并后的index是否重新排序,True代表重新排序;join表示合并方式,有参数outer、inner,inner表示取交集,outer表示取并集。当你不输入how参数时,默认是inner(内连接),除此之外还有left(左连接)、right(右连接)、outer(全连接)。之前提到添加数据只能添加列,如果要添加行就需要使用合并功能。原创 2024-08-17 10:08:18 · 351 阅读 · 0 评论 -
python之pandas (3 改添值)
axis表示选择行或列。其中,在第四个赋值中,等号后边是Series类型的数据,它是一个包含四个年龄的数组,而前面符合df.Age>20的数据只有一个,但是由于Series有index,所以符合条件的Age会根据i相对应的ndex去改变其值。且添加值一般都是添加一列或几列,如果想要添加几行或一行,就需要使用合并功能了。添加值和修改值在语句上没有什么太大的差异,只不过添加列值时的列标签名是DataFrame中没有的。在pandas的上一篇中,我们提到了选择值,那么修改值就是在选择值的基础上直接赋值就行了。原创 2024-08-16 16:45:25 · 253 阅读 · 0 评论 -
python之pandas (5 画图)
利用DataFrame还可以画很多图,这里不作为重点,在matplotlib库中会学到它们的具体画法。当使用DataFrame数据画图时,它有几列就会出现几个折线图,并会在适当位置标上图例。这里用到了matplotlib库,在下一篇我们会说到。原创 2024-08-17 17:05:11 · 201 阅读 · 0 评论 -
python之pandas (1 安装及基本介绍)
Pandas 是 Python 中一个非常强大的数据分析和处理库,它建立在 NumPy 之上,提供了高级的数据结构和数据分析工具。Pandas 的名字来源于“panel data”(面板数据)和“Python data analysis”的组合,但它现在已经远远超出了面板数据的范畴,广泛用于各种类型的数据处理和分析。Pandas的核心数据结构是DataFrame和SeriesDataFrameDataFrame 是 Pandas 中最常用的数据结构,它类似于 Excel 中的表格,有行和列。原创 2024-08-15 16:24:19 · 181 阅读 · 0 评论 -
python之pandas (2 创建数据及选择数据)
在该DataFrame中,index是一系列日期,利用了date_range创建了日期数组,而columns是三个属性:Name,Age和City. 在这种创建方式中data是一个矩阵,这个矩阵就是数据的核心内容(并不包括行名和列名)。另外,还可以使用df.Age>18这种形式,它其实返回的是哪些行的Age大于18(返回的是标签,所以后边是用df.loc不是df.iloc),然后外边一个df即返回了符合条件的某些行。在这种利用字典创建的方式中,键是列名,值是那一列所对应的内容。原创 2024-08-16 09:39:52 · 356 阅读 · 0 评论 -
python之numpy(3 矩阵属性及矩阵运算)
注:如果定义的数组是x=np.array([1,2,3])那么此函数失效,如果定义的是x=np.array([ [1,2,3] ])则可以转置。np.linalg.inv()是求矩阵的逆,np.linalg.det()是求矩阵的行列式,np.linalg.matrix_rank是求矩阵秩。上述代码中,x*y是对应元素之间的相乘,而矩阵之间的点乘是x.dot(y)或者是np.dot(x,y)。矩阵的运算分为矩阵元素之间的运算和矩阵之间的运算,当然两者的区别在加法、减法之间是没有区别的,在乘法之间有所区别。原创 2024-08-14 17:24:09 · 1062 阅读 · 0 评论 -
python之numpy(2 创建矩阵)
或者利用注释中的linspace函数创建也可,两者是一样的效果。dtype是设置元素的数据类型,这里设置的是int16类型。其中,创建矩阵时整个矩阵用一个中括号,每一行用一个中括号,每行之间用逗号分隔。这里arange创建了从0到11一共12个整数的一维数组,(arange(0,12)其实是左闭右开)在改成3×4的矩阵。下面我们分别创建数组和矩阵。除了使用array创建矩阵外,还有一些特殊的矩阵可以利用现有的函数创建。该矩阵中的元素为随机的,且为在0到1之间的小数。该矩阵中的元素未初始化的。原创 2024-08-14 12:56:32 · 644 阅读 · 0 评论 -
python之matplotlib (4 图例)
这种方法是在legend中设置图例,首先需要给所画的图起一个名字即l1,l2,但不要忘了后边还有一个逗号,原因是返回值有多个这里只对第一个返回值起名字。然后像上面一样在legend中设置即可。在plot中的参数label注明标注名称即可实现图例的绘制,但不要忘了plt.legend()让图例显示在图中。原创 2024-08-20 10:06:39 · 237 阅读 · 0 评论 -
python之matplotlib (7 三维图、动图)
首先定义了一个图像函数func(x,t),其次在图中画出图像初态,即t=0时的图像。这个函数要传进FuncAnimation函数参数func,参数fig表示在哪里画,frames是有多少帧图片,interval是每帧图片更新的时间间隔(毫秒),blit是每次更新是否只更新不一样的部分,这个关系到画图的快慢。绘制表面图和绘制二维图道理相似,再添加坐标轴时要加上projection='3d',表明添加的是一个三维的坐标轴。在画法上两者没有太大的区别,唯一就是改变了关键函数:plot_wireframe()原创 2024-08-21 16:15:58 · 1002 阅读 · 0 评论 -
python之matplotlib (1 介绍及基本用法)
matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。同样matplotlib的安装也和numpy和pandas一样,具体语言如下:(在电脑终端执行)原创 2024-08-18 16:50:14 · 421 阅读 · 0 评论 -
python之matplotlib (3 坐标轴设置)
在说明坐标轴设置之前,我有必要和大家说清楚图像设置的一些方法,避免陷入困扰模糊的地步。前面我们说过,画图的三种方法(python之matplotlib (1 介绍及基本用法)-CSDN博客y=x**2plt.title('图')ax=plt.gca()#没有参数plt.show()大家观察上面的一些设置方法,无非是通过两个途径:plt.***或者ax.***,而ax.***往往前面会有'set_'字样。原创 2024-08-19 16:56:25 · 1131 阅读 · 0 评论 -
python之matplotlib (6 等高线和热力图)
举个例子,一张图片实际上是有许多小的元素方块组成的,如果你想从整体上得到一个平滑不突兀的效果(即看不出来小方块的痕迹),那么一个方法就是使用更多的小方块,另一个就是利用插值让画面看起来更平滑(方块与方块的界限不明显)。colors设置的是线的颜色,linewidths设置的是线的宽度。plt.contourf是画上图中的颜色部分,8是呈现的等高线部分数,alpha是调节透明度,cmap是绘制等高线(内部)的颜色。plt.clabel是设置标注的数字,将上述的线命名为C,传入clabel中;原创 2024-08-20 16:24:29 · 199 阅读 · 0 评论 -
python之matplotlib (2 画多图)
附颜色对照:(摘自https://blog.csdn.net/Discover304/article/details/121991061)(3,3)表示总共有三行三列,0,0表示第一行第一列(从上往下行数增大,列数是从左至右,编码都是从0开始)在一个窗口中将多个图画在同一个坐标轴中,只需在一个subplots下,ax.plot()即可。clospan表示横跨几个单位,rowspan表示纵跨几个单位,默认值均为1。上边是两个窗口画的两个图。原创 2024-08-19 13:02:18 · 319 阅读 · 0 评论 -
python之matplotlib (5 散点图和柱状图)
附:colormap对照 '%.f'%y‘是标注数据的形式设置:保留两位小数,数据来源于y数组。也可以这样写:f'{y:.2f}',在它前面的参数是标注的位置。也可以是一个数组,表示每个点的颜色不同。ax.bar()中y参数是直方图的高度,其中facecolor是条形图的颜色,而edgecolor是除了条形图内的颜色。也可以是一个数组,表示每个点的大小不同。参数来指定一个colormap,用于映射颜色数组到颜色。原创 2024-08-20 13:04:52 · 533 阅读 · 0 评论 -
python之matplotlib (8 极坐标)-圆与心
这不就比-sinθ多了个1吗,那移一下坐标轴不就行了吗?哎,我还是不要和笛卡尔比肩了。本来我想给这个文章标题名为《利用极坐标化圆为心》,现在还是算了吧。哦,原来如此,数学真是太神奇了。我只能说我还是略胜笛卡尔一筹(一会你会尴尬的),哈哈!话不多说,直接改为我的头像。极坐标图像的绘制类似于三维图像的绘制,只需要将projection参数由3d改为polar即可。我仔细想了想,发现这是大惊小怪了,只不过之前从前没从这个角度想过如此。我:废话,肯定是圆啊?先问大家一个问题,ρ=-sin(θ)画出来是什么图形?原创 2024-08-21 17:07:46 · 822 阅读 · 0 评论