首页 > 其他分享 >numpy、scipy、pandas、matplotlib的读书报告

numpy、scipy、pandas、matplotlib的读书报告

时间:2023-12-24 23:57:12浏览次数:36  
标签:plt matplotlib 索引 scipy 数组 np numpy axis

1、Numpy

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:

  • 一个强大的N维数组对象 ndarray。
  • 广播功能函数。
  • 整合 C/C++/Fortran 代码的工具。
  • 线性代数、傅里叶变换、随机数生成等功能。

Numpy的安装

  • 使用已有的发行版本

  • 使用 pip 安装

Numpy基本函数

.ndim :维度 
.shape :各维度的尺度 (2,5) 
.size :元素的个数 10 
.dtype :元素的类型 dtype(‘int32’) 
.itemsize :每个元素的大小,以字节为单位 ,每个元素占4个字节 
ndarray数组的创建 
np.arange(n) ; 元素从0到n-1的ndarray类型 
np.ones(shape): 生成全1 
np.zeros((shape), ddtype = np.int32) : 生成int32型的全0 
np.full(shape, val): 生成全为val 
np.eye(n) : 生成单位矩阵

np.ones_like(a) : 按数组a的形状生成全1的数组 
np.zeros_like(a): 同理 
np.full_like (a, val) : 同理

np.linspace(1,10,4): 根据起止数据等间距地生成数组 
np.linspace(1,10,4, endpoint = False):endpoint 表示10是否作为生成的元素 
np.concatenate():

numpy.empty

numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

numpy.empty(shape, dtype = float, order = 'C')
实例:
import numpy as np
x = np.empty([3,2], dtype = int)
print (x)

numpy.asarray

numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。

实例:

import numpy as np
 x =  [1,2,3]
a = np.asarray(x, dtype =  float) 
print (a)

NumPy 从数值范围创建数组

numpy.arange

numpy 包中的使用 arange 函数创建数值范围并返回 ndarray 对象,函数格式如下:

numpy.arange(start, stop, step, dtype)

NumPy 切片和索引

ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样。

ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以通过内置的 slice 函数,并设置 start, stop 及 step 参数进行,从原数组中切割出一个新数组。

NumPy 统计函数

NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下:

numpy.amin() 用于计算数组中的元素沿指定轴的最小值。

numpy.amax() 用于计算数组中的元素沿指定轴的最大值。

numpy.ptp()函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。

numpy.median() 函数用于计算数组 a 中元素的中位数(中值)

numpy.mean() 函数返回数组中元素的算术平均值。

numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。

Numpy矩阵库

import numpy as np
  
a = np.arange(12).reshape(3,4)
  
print ('原数组:')
print (a)
print ('\n')
  
print ('转置数组:')
print (a.T)

输出结果:

 

2、scipy

SciPy是一个用于数学、科学、工程领域的常见软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解,信号处理等问题,它用于有效计算Numpy矩阵,使Numpy和SciPy协同工作,高效解决问题。

SciPy常见的函数:

 实例分析:

from scipy import integrate
x2=lambda x:x**2
integrate.quad(x2,0,4)

结果:

 

3、pandas

pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。

数据对象的创建

实例分析:

import pandas as pd
import numpy as np
   
# 通过一维数组初始化Series
s = pd.Series([1, 2.0, np.nan, 'test'])
print(s)
   
# 通过二维数组初始化DataFrame
arr = np.random.randn(6, 4)
arr_df = pd.DataFrame(arr, index=np.arange(1, 7), columns=list('ABCD'))
print(arr_df)
# 通过字典dict初始化DataFrame
dic = {'A': 1.,
    'B': pd.Timestamp('20130102'),
    'C': pd.Series(1, index=list(range(4)), dtype='float32'),
    'D': np.array([3] * 4, dtype='int32'),
    'E': pd.Categorical(["test", "train", "test", "train"])
    }
dic_df = pd.DataFrame(dic)
print(dic_df)

 

- Pandas数据类型操作

重新索引 
reindex(index=None, columns=None,…)方法 可改变或重排Series和DataFrame索引 
reindex(index=None, columns=None,…) 
index, colums 新的行列自定义索引 
fill_value 在重新索引,用于填充缺失位置的值 
method 填充方法,ffill当前值向前填充, bfill向后填充 
limit 最大填充量 
copy 默认为True,生成新的对象,False时,新旧相等,但不复制

d.reindex(index = [‘d’, ‘c’, ‘b’, ‘a’ ]) 
d.reindex(colums = [‘two’, ‘one’]) 

 

newc = d.colums.insert( 4, ‘新增’) newc为一个colums

- 索引类型常用方法

.append(idx) 连接另外一个Index对象,产生新的Index对象 
.diff(idx) 计算差集,产生新的Index对象 
.intersection(idx) 计算交集,产生新对象 
.union(idx) 计算并集 
.delete(loc) 删除loc位置处的元素 
.insert(loc, e) 在loc位置增加一各元素e 

删除指定索引对象 
.drop()可删除Series或DataFrame制定的行或列

d.drop([‘c1’, ‘c2’]) # 此处生成新对象,原对象d不改变 
d.drop(‘one’,axis=1) 要删除列,需要加上axis = 1.

  • Pandas库数据类型运算

算术运算法则 
根据行列索引进行运算,补齐(NaN)后运算,运算默认产生浮点数 
二维和一维、一维和零维时,采用广播运算,即低的于高的每一维运算

算术运算方法形式的运算 
.add(d, **argws) .sub(d, **argws) .mul(d, **argws) .div(d, **argws) 
**argws为可选参数: 
fill_value,补齐时填充的值;

广播运算时,一维的列默认作用到二维的行(axis=1),要更改到列,则需要增加参数 
a.add(b, axis=0 )

比较运算 
同维度需要有相同的shape 
不同维度时,默认为在1轴运算

- 数据排序

.sort_index()方法在指定轴上根据索引进行排序,默认升序。 
.sort_index(axis=0,ascending = True) ascending是指递增排序 
.sort_values()方法在指定轴上根据数值进行排序,默认升序。 
Serier.sort_values(axis= 0, ascending=True) 
DataFrame.sort_values(by, axis = 0, ascending = True) 
by: 只对axis轴上的某个 索引 或 索引列表 进行排序 
NaN空值,保持在排序末尾

- Pandas统计分析函数

.sum() 计算数据总和,按0轴计算 
.count() 非NaN值的数量 
.mean() .median() 计算算术平均值、算术中位数 
.var() .var() 计算方差、标准差 
.min() .max 计算最小、大值

.argmin() .argmax() 计算最大、小值所在位置的索引(针对自动索引的)(适用于Series类型:) 
.idxmin() .idxmax() 计算最大、小值所在位置的索引(针对自定义索引的)(适用于Series类型:)

.describe() 针对0轴(各列)的统计汇总 

4、matplotilb库

matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。在处理数学运算、绘制图表,或者在图像上绘制点、直线和曲线时,这个库都十分实用。

plt.savefig(‘test’, dpi = 600) :将绘制的图画保存成png格式,命名为 test

plt.ylabel(‘Grade’) :  y轴的名称

plt.axis([-1, 10, 0, 6]) :  x轴起始于-1,终止于10 ,y轴起始于0,终止于6

plt.subplot(3,2,4) :  分成3行2列,共6个绘图区域,在第4个区域绘图。排序为行优先。也可 plt.subplot(324),将逗号省略。

.plot函数

plt.plot(x, y, format_string, **kwargs): x为x轴数据,可为列表或数组;y同理;format_string 为控制曲线的格式字符串, **kwargs 第二组或更多的(x, y,

format_string)

format_string: 由 颜色字符、风格字符和标记字符组成。

颜色字符:‘b’蓝色  ;‘#008000’RGB某颜色;‘0.8’灰度值字符串

风格字符:‘-’实线;‘--’破折线; ‘-.’点划线; ‘:’虚线 ; ‘’‘’无线条

标记字符:‘.’点标记  ‘o’ 实心圈 ‘v’倒三角  ‘^’上三角

pyplot文本显示函数:

plt.xlabel():对x轴增加文本标签

plt.ylabel():同理

plt.title(): 对图形整体增加文本标签

plt.text(): 在任意位置增加文本

plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)

: 在图形中增加带箭头的注解。s表示要注解的字符串是什么,xy对应箭头所在的位置,xytext对应文本所在位置,arrowprops定义显示的属性

eg:

plt.xlabel(‘横轴:时间’, fontproperties = ‘SimHei’, fontsize = 15, color = ‘green’)

plt.ylabel(‘纵轴:振幅’, fontproperties = ‘SimHei’, fontsize = 15)

plt.title(r’正弦波实例 $y=cons(2\pi x)$’ , fontproperties = ‘SimHei’, fontsize = 25)

plt.annotate (r’%mu=100$, xy = (2, 1), xytext = (3, 1.5),

arrowprops = dict(facecolor = ‘black’, shrink = 0.1, width = 2)) # width表示箭头宽度

plt.text (2, 1, r’$\mu=100$, fontsize = 15)

plt.grid(True)

 

plt. annotate(s, xy = arrow_crd, xytext = text_crd, arrowprops = dict)

 

plt子绘图区域

plt.subplot2grid(GridSpec, CurSpec, colspan=1, rowspan=1):设定网格,选中网格,确定选中行列区域数量,编号从0开始。

eg:

plt.subplot2grid((3, 3), (1, 0), colspan = 2) : (3,3)表示分为3行3列,(1,0)表示选中第1行,第0列的区域进行绘图,colspan=2表示在选中区域的延伸

 

Plot的图表函数

plt.plot(x,y , fmt)  :绘制坐标图

plt.boxplot(data, notch, position): 绘制箱形图

plt.bar(left, height, width, bottom) : 绘制条形图

plt.barh(width, bottom, left, height) : 绘制横向条形图

plt.polar(theta, r) : 绘制极坐标图

plt.pie(data, explode) : 绘制饼图

plt.scatter(x, y) :绘制散点图

plt.hist(x, bings, normed) : 绘制直方图

实例:

from PIL import Image
from pylab import *
import rof
 
im = array(Image.open('empire.jpg').convert('L'))
U,T = rof.denoise(im,im)
 
figure()
gray()
imshow(U)
axis('equal')
axis('off')
show()

 

标签:plt,matplotlib,索引,scipy,数组,np,numpy,axis
From: https://www.cnblogs.com/T1an-/p/17925103.html

相关文章

  • numpy、scipy、pandas、matplotlib的读书报告
    1、基本函数用法Numpy:基础的数学计算模块,来存储和处理大型矩阵,比Python自身的嵌套列表(nestedliststructure)结构要高效的多,本身是由C语言开发。这个是很基础的扩展,其余的扩展都是以此为基础。数据结构为ndarray,一般有三种方式来创建。numpy.array()#创建数组。numpy.ara......
  • # yyds干货盘点 # 盘点一个numpy库版本报错的问题
    大家好,我是皮皮。一、前言前几天在Python白银交流群【YVONNE......
  • ModuleNotFoundError: No module named 'numpy'解决方案
    1.使用numpy提示ModuleNotFoundError:Nomodulenamed'numpy' 2.切换到Python的安装路径下面想要安装numpy模块,报错提示“Unknownoption:ignore-installed“”Unknownorunsupportedcommand'install'” 3.看到有大佬说要切换到Scripts文件夹下面下载numpy,但是发现还......
  • 利用Python进行数据分析_Pandas_Numpy高级应用
    Numpy高级应用1.ndarray对象内部机理importpandasaspdimportnumpyasnpfrompandasimportSeries,DataFrameimportwarningswarnings.filterwarnings("ignore")略2.高级数组操作arr=np.arange(8)arrarray([0,1,2,3,4,5,6,7])arr_new=arr.reshape......
  • Numpy模块
    Numpy模块的核心就是基于数组的运算,相比于列表和其他数据结构,数组的运算效率是最高的。常用的数学函数np.pi常数pnp.e常数enp.fabs(arr)  例如:np.fabs(-3) 计算各元素的浮点型绝对值np.ceil(arr) 例如:np.ceil(3.2)对元素向上取整np.floor(arr) 类似ceil 向下取整对......
  • numpy、scipy、pandas、matplotlib的读书报告:
    Numpy:基础的数学计算模块,以矩阵为主,纯数学。SciPy:基于Numpy,提供方法(函数库)直接计算结果,封装了一些高阶抽象和物理模型。比方说做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,在Scipy里找。Pandas:提供了一套名为DataFrame的数据结构,适合统计分析中的......
  • numpy、scipy、pandas、matplotlib的读书报告:
    numpy是Python中用于进行科学计算的基础模块,提供了多维数组对象ndarray以及相关的数学运算和线性代数函数。它能够快速高效地处理大量数据,并提供了丰富的数组操作和数学函数,是进行科学计算和数据分析的重要工具。numpy的主要功能有:创建和操作多维数组,如使用np.array(),np.arange(),n......
  • Python NumPy 图像处理
    ​ 1、读取图像需要使用图像处理库来读取图像文件,如Pillow,并将其转换为NumPy数组。示例代码:PythonNumPy图像处理-CJavaPy2、保存图像使用NumPy处理后的图像可以再次转换为Pillow图像 示例代码:PythonNumPy图像处理-CJavaPy3、转换为灰度图可以通过将RGB值转换为......
  • numpy、scipy、pandas、matplotlib的读书报告
    Numpy:存储和处理大型矩阵,比Python自身的嵌套列表结构高效,由C语言开发。数据结构为ndarray,一般有三种方式来创建。Pandas:基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。最具有统......
  • matplotlib读书报告
    1.Matplotlib简介  Matplotlib是Python的一个2D图形库,能够生成各种格式的图形(诸如折线图,散点图,直方图等等),界面可交互(可以利用鼠标对生成图形进行点击操作),同时该2D图形库跨平台,即既可以在Python脚本中编码操作,也可以在JupyterNotebook中使用,以及其他平台都可以很方便的使用Ma......