位置: IT常识 - 正文

Python数学建模三剑客之Numpy(python数学建模资料)

编辑:rootadmin

推荐整理分享Python数学建模三剑客之Numpy(python数学建模资料),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python高数建模,python数学建模资料,python高数建模,python数学建模资料,python高数建模,python高数建模,Python数学建模三剑客,python小白的数学建模课,内容如对您有帮助,希望把文章链接给更多的朋友!

三剑客之Numpy

numpy是一个开源的python科学计算库,包含了很多实用的数学函数,涵盖线性代数、傅里叶变换和随机数生成等功能。最初的numpy其实是scipy的一部分,后来才从scipy中分离出来。

numpy不是python的标准库,需要单独安装。假定你的运行环境已经安装了python包管理工具pip,numpy的安装就非常简单:

pipinstallnumpy

一、数组对象

ndarray是多维数组对象,也是numpy最核心的对象。在numpy中,数组的维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。通常,一个numpy数组的所有元素都是同一种类型的数据,而这些数据的存储和数组的形式无关。

下面的例子,创建了一个三维的数组(在导入numpy时,一般都简写成np)。

importnumpyasnpa=np.array([[1,2,3],[4,5,6],[7,8,9]])

1、数据类型

numpy支持的数据类型主要有布尔型(bool)、整型(integrate)、浮点型(float)和复数型(complex),每一种数据类型根据占用内存的字节数又分为多个不同的子类型。常见的数据类型见下表。

2、创建数组

通常,我们用np.array()创建数组。如果仅仅是创建一维数组,也可以使用np.arange()或者np.linspace()的方法。np.zeros()、np.ones()、np.eye()则可以构造特殊的数据。np.random.randint()和np.random.random()则可以构造随机数数组。

>>>np.array([[1,2,3],[4,5,6]])#默认元素类型为int32array([[1,2,3],[4,5,6]])>>>np.array([[1,2,3],[4,5,6]],dtype=np.int8)#指定元素类型为int8array([[1,2,3],[4,5,6]],dtype=int8)>>>np.arange(5)#默认元素类型为int32array([0,1,2,3,4])>>>np.arange(3,8,dtype=np.int8)#指定元素类型为int8array([3,4,5,6,7],dtype=int8)>>>np.arange(12).reshape(3,4)#改变shapearray([[0,1,2,3],[4,5,6,7],[8,9,10,11]])>>>np.linspace(1,2,5)#从1到2生成5个浮点数array([1.,1.25,1.5,1.75,2.])>>>np.zeros((2,3))#全0数组array([[0.,0.,0.],[0.,0.,0.]])>>>np.ones((2,3))#全1数组array([[1.,1.,1.],[1.,1.,1.]])>>>np.eye(3)#主对角线元素为1其他元素为0array([[1.,0.,0.],[0.,1.,0.],[0.,0.,1.]])>>>np.random.random((2,3))#生成[0,1)之间的随机浮点数array([[0.84731148,0.8222318,0.85799278],[0.59371558,0.92330741,0.04518351]])>>>np.random.randint(0,10,(3,2))#生成[0,10)之间的随机整数array([[2,4],[8,3],[8,5]])

3、构造复杂数组

很多时候,我们需要从简单的数据结构,构造出复杂的数组。例如,用一维的数据生成二维格点。

(1)重复数组:tile

>>>a=np.arange(5)>>>aarray([0,1,2,3,4])>>>np.tile(a,2)array([0,1,2,3,4,0,1,2,3,4])>>>np.tile(a,(3,2))array([[0,1,2,3,4,0,1,2,3,4],[0,1,2,3,4,0,1,2,3,4],[0,1,2,3,4,0,1,2,3,4]])

(2)重复元素:repeat

>>>a=np.arange(5)>>>aarray([0,1,2,3,4])>>>a.repeat(2)array([0,0,1,1,2,2,3,3,4,4])

(3)一维数组网格化:meshgrid

>>>a=np.arange(5)>>>b=np.arange(5,10)>>>np.meshgrid(a,b)[array([[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]]),array([[5,5,5,5,5],[6,6,6,6,6],[7,7,7,7,7],[8,8,8,8,8],[9,9,9,9,9]])]>>>

(4)指定范围和分割方式的网格化:mgrid

>>>np.mgrid[0:1:2j,1:2:3j]array([[[0.,0.,0.],[1.,1.,1.]],[[1.,1.5,2.],[1.,1.5,2.]]])>>>np.mgrid[0:1:0.3,1:2:0.4]array([[[0.,0.,0.],[0.3,0.3,0.3],[0.6,0.6,0.6],[0.9,0.9,0.9]],[[1.,1.4,1.8],[1.,1.4,1.8],[1.,1.4,1.8],[1.,1.4,1.8]]])

上面的例子中用到了虚数。构造虚数的方法如下:

>>>complex(2,5)(2+5j)

4、数组的属性

numpy的数组对象除了一些常规的属性外,也有几个类似转置、扁平迭代器等看起来更像是方法的属性。扁平迭代器也许是遍历多维数组的一个简明方法,下面的代码给出了一个例子。

>>>a=np.array([[1,2,3],[4,5,6]])>>>a.dtype#数组元素的数据类型dtype('int32')>>>a.dtype.itemsize#数组元素占据的内存字节数4>>>a.itemsize#数组元素占据的内存字节数4>>>a.shape#数组的维度(2,3)>>>a.size#数组元素个数6>>>a.T#数组行变列,类似于transpose()array([[1,4],[2,5],[3,6]])>>>a.flat#返回一个扁平迭代器,用于遍历多维数组<numpy.flatiterobjectat0x037188F0>>>>foritemina.flat:printitem

5、改变数组维度

numpy数组的存储顺序和数组的维度是不相干的,因此改变数组的维度是非常便捷的操作,除resize()外,这一类操作不会改变所操作的数组本身的存储顺序。

>>>a=np.array([[1,2,3],[4,5,6]])>>>a.shape#查看数组维度(2,3)>>>a.reshape(3,2)#返回3行2列的数组array([[1,2],[3,4],[5,6]])>>>a.ravel()#返回一维数组array([1,2,3,4,5,6])>>>a.transpose()#行变列(类似于矩阵转置)array([[1,4],[2,5],[3,6]])>>>a.resize((3,2))#类似于reshape,但会改变所操作的数组>>>aarray([[1,2],[3,4],[5,6]])

6、索引和切片

对于一维数组的索引和切片,numpy和python的list一样,甚至更灵活。

a=np.arange(9)>>>a[-1]#最后一个元素8>>>a[2:5]#返回第2到第5个元素array([2,3,4])>>>a[:7:3]#返回第0到第7个元素,步长为3array([0,3,6])>>>a[::-1]#返回逆序的数组array([8,7,6,5,4,3,2,1,0])

假设有一栋2层楼,每层楼内的房间都是3排4列,那我们可以用一个三维数组来保存每个房间的居住人数(当然,也可以是房间面积等其他数值信息)。

>>>a=np.arange(24).reshape(2,3,4)#2层3排4列>>>aarray([[[0,1,2,3],[4,5,6,7],[8,9,10,11]],[[12,13,14,15],[16,17,18,19],[20,21,22,23]]])>>>a[1][2][3]#虽然可以这样23>>>a[1,2,3]#但这才是规范的用法23>>>a[:,0,0]#所有楼层的第1排第1列array([0,12])>>>a[0,:,:]#1楼的所有房间,等价与a[0]或a[0,...]array([[0,1,2,3],[4,5,6,7],[8,9,10,11]])>>>a[:,:,1:3]#所有楼层所有排的第2到4列array([[[1,2],[5,6],[9,10]],[[13,14],[17,18],[21,22]]])>>>a[1,:,-1]#2层每一排的最后一个房间array([15,19,23])

7、数组合并

Python数学建模三剑客之Numpy(python数学建模资料)

数组合并除了下面介绍的水平合并、垂直合并、深度合并外,还有行合并、列合并,以及concatenate()等方式。假如你比我还懒,那就只了解前三种方法吧,足够用了。

>>>a=np.arange(9).reshape(3,3)>>>b=np.arange(9,18).reshape(3,3)>>>aarray([[0,1,2],[3,4,5],[6,7,8]])>>>barray([[9,10,11],[12,13,14],[15,16,17]])>>>np.hstack((a,b))#水平合并array([[0,1,2,9,10,11],[3,4,5,12,13,14],[6,7,8,15,16,17]])>>>np.vstack((a,b))#垂直合并array([[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14],[15,16,17]])>>>np.dstack((a,b))#深度合并array([[[0,9],[1,10],[2,11]],[[3,12],[4,13],[5,14]],[[6,15],[7,16],[8,17]]])

8、数组拆分

拆分是合并的逆过程,概念是一样的,但稍微有一点不同:

>>>a=np.arange(9).reshape(3,3)>>>np.hsplit(a,3)#水平拆分,返回list[array([[0],[3],[6]]),array([[1],[4],[7]]),array([[2],[5],[8]])]>>>np.vsplit(a,3)#垂直拆分,返回list[array([[0,1,2]]),array([[3,4,5]]),array([[6,7,8]])]>>>a=np.arange(27).reshape(3,3,3)>>>np.dsplit(a,3)#深度拆分,返回list[array([[[0],[3],[6]],[[9],[12],[15]],[[18],[21],[24]]]),array([[[1],[4],[7]],[[10],[13],[16]],[[19],[22],[25]]]),array([[[2],[5],[8]],[[11],[14],[17]],[[20],[23],[26]]])]

9、数组运算

数组和常数的四则运算,是数组的每一个元素分别和常数运算;数组和数组的四则运算则是两个数组对应元素的运算(两个数组有相同的shape,否则抛出异常)。

>>>a=np.arange(4,dtype=np.float32).reshape(2,2)>>>b=np.arange(4,8,dtype=np.float32).reshape(2,2)>>>a+2#数组和常数可以进行四则运算array([[2.,3.],[4.,5.]],dtype=float32)>>>a/b#数组和数组可以进行四则运算array([[0.,0.2],[0.33333334,0.42857143]],dtype=float32)>>>a==b#最神奇的是,数组可以判断对应元素是否相等array([[False,False],[False,False]],dtype=bool)>>>(a==b).all()#判断数组是否相等False

特别提示:如果想对数组内符合特定条件的元素做特殊处理,下面的代码也许有用。

>>>a=np.arange(6).reshape((2,3))>>>aarray([[0,1,2],[3,4,5]])>>>(a>2)&(a<=4)array([[False,False,False],[True,True,False]],dtype=bool)>>>a[(a>2)&(a<=4)]array([3,4])>>>a[(a>2)&((a<=4))]+=10>>>aarray([[0,1,2],[13,14,5]])

10、数组方法和常用函数

数组对象本身提供了计算算数平均值、求最小值等内置方法,numpy也提供了很多实用的函数。为了缩减篇幅,下面的代码仅以一维数组为例,展示了这些方法和函数用法。事实上,大多数情况下这些方法和函数对于多维数组同样有效,只有少数例外,比如compress函数。

>>>a=np.array([3,2,4])>>>a.sum()#所有元素的和9>>>a.prod()#所有元素的乘积24>>>a.mean()#所有元素的算数平均值3.0>>>a.max()#所有元素的值4>>>a.min()#所有元素的最小值2>>>a.clip(3,4)#小于3的元素替换为3,大于4的元素替换为4array([3,3,4])>>>a.compress(a>2)#返回大于2的元素组成的数组array([3,4])>>>a.tolist()#返回python的list[3,2,4]>>>a.var()#计算方差(元素与均值之差的平方的均值)0.66666666666666663>>>a.std()#计算标准差(方差的算术平方根)0.81649658092772603>>>a.ptp()#返回数组的值和最小值之差2>>>a.argmin()#返回最小值在扁平数组中的索引1>>>a.argmax()#返回值在扁平数组中的索引2>>>np.where(a==2)#返回所有值为2的元素的索引(array([1]),)>>>np.diff(a)#返回相邻元素的差array([-1,2])>>>np.log(a)#返回对数数组array([1.09861229,0.69314718,1.38629436])>>>np.exp(a)#返回指数数组array([20.08553692,7.3890561,54.59815003])>>>np.sqrt(a)#返回开方数组array([1.73205081,1.41421356,2.])>>>np.msort(a)#数组排序array([2,3,4])>>>a=np.array([1,4,7])>>>b=np.array([8,5,2])>>>np.maximum(a,b)#返回多个数组中对应位置元素的值数组array([8,5,7])>>>np.minimum(a,b)#返回多个数组中对应位置元素的最小值数组array([1,4,2])>>>np.true_divide(a,b)#对整数实现真正的数学除法运算array([0.125,0.8,3.5])

二、矩阵对象

matrix是矩阵对象,继承自ndarray类型,因此含有ndarray的所有数据属性和方法。不过,当你把矩阵对象当数组操作时,需要注意以下几点:

matrix对象总是二维的,即使是展平(ravel函数)操作或是成员选择,返回值也是二维的

matrix对象和ndarray对象混合的运算总是返回matrix对象

1、创建矩阵

matrix对象可以使用一个Matlab风格的字符串来创建(以空格分隔列,以分号分隔行的字符串),也可以用数组来创建。

>>>np.mat('147;258;369')matrix([[1,4,7],[2,5,8],[3,6,9]])>>>np.mat(np.arange(1,10).reshape(3,3))matrix([[1,2,3],[4,5,6],[7,8,9]])

2、矩阵的特有属性

矩阵有几个特有的属性使得计算更加容易,这些属性有:

>>>m=np.mat(np.arange(1,10).reshape(3,3))>>>mmatrix([[1,2,3],[4,5,6],[7,8,9]])>>>m.T#返回自身的转置matrix([[1,4,7],[2,5,8],[3,6,9]])>>>m.H#返回自身的共轭转置matrix([[1,4,7],[2,5,8],[3,6,9]])>>>m.I#返回自身的逆矩阵matrix([[-4.50359963e+15,9.00719925e+15,-4.50359963e+15],[9.00719925e+15,-1.80143985e+16,9.00719925e+15],[-4.50359963e+15,9.00719925e+15,-4.50359963e+15]])>>>m.A#返回自身数据的二维数组的一个视图array([[1,2,3],[4,5,6],[7,8,9]])

3、矩阵乘法

对ndarray对象而言,星号是按元素相乘,dot()函数则当作矩阵相乘。对于matrix对象来说,星号和dot()函数都是矩阵相乘。特别的,对于一维数组,dot()函数实现的是向量点乘(结果是标量),但星号实现的却不是差乘。

>>>a=np.array([1,2,3])>>>b=np.array([4,5,6])>>>a*b#一维数组,元素相乘array([4,10,18])>>>np.dot(a,b)#一维数组,元素相乘再求和32>>>a=np.array([[1,2],[3,4]])>>>b=np.array([[5,6],[7,8]])>>>a*b#多维数组,元素相乘array([[5,12],[21,32]])>>>np.dot(a,b)#多维数组,实现的是矩阵相乘array([[19,22],[43,50]])>>>m=np.mat(a)>>>n=np.mat(b)>>>np.dot(m,n)#矩阵相乘matrix([[19,22],[43,50]])>>>m*n#矩阵相乘matrix([[19,22],[43,50]])

三、线性代数模块

numpy.linalg 是numpy的线性代数模块,可以用来解决逆矩阵、特征值、线性方程组以及行列式等问题。

1、计算逆矩阵

尽管matrix对象本身有逆矩阵的属性,但用numpy.linalg模块求解矩阵的逆,也是非常简单的。

m=np.mat('012;103;4-38')mi=np.linalg.inv(m)#mi即为m的逆矩阵。何以证明?m*mi#矩阵与其逆矩阵相乘,结果为单位矩阵matrix([[1.,0.,0.],[0.,1.,0.],[0.,0.,1.]])

2、计算行列式

如何计算行列式,我早已经不记得了,但手工计算行列式的痛苦,我依然记忆犹新。现在好了,你在手机上都可以用numpy轻松搞定(前提是你的手机上安装了python + numpy)。

m=np.mat('012;103;4-38')np.linalg.det(m)#什么?这就成了?2.0

3、计算特征值和特征向量

m=np.mat('012;103;4-38')>>>np.linalg.eigvals(m)#计算特征值array([7.96850246,-0.48548592,0.51698346])>>>np.linalg.eig(m)#返回特征值及其对应特征向量的元组(array([7.96850246,-0.48548592,0.51698346]),matrix([[0.26955165,0.90772191,-0.74373492],[0.36874217,0.24316331,-0.65468206],[0.88959042,-0.34192476,0.13509171]]))

4、求解线性方程组

有线性方程组如下:

x-2y+z=02y-8z=8-4x+5y+9z=-9

求解过程如下:

>>>A=np.mat('1-21;02-8;-459')>>>b=np.array([0,8,-9])>>>np.linalg.solve(A,b)array([29.,16.,3.])#x=29,y=16,z=3

python学习网,大量的免费python视频教程,欢迎在线学习!

相关推荐:

1、Python数学建模三剑客之Matplotlib

本文链接地址:https://www.jiuchutong.com/zhishi/303266.html 转载请保留说明!

上一篇:Elementor怎样在一行内添加2个按钮(element excel)

下一篇:电脑学习网首发cdnfly-cdn系统通过改hosts破解授权方法,随时可能失效,抓紧下载-电脑学习网破解(网上学电脑的软件)

  • 苹果wapi怎么开启(苹果wapi怎么打开)

    苹果wapi怎么开启(苹果wapi怎么打开)

  • 抖音在线显示是不是准确的(抖音在线显示是褐色的怎么回事)

    抖音在线显示是不是准确的(抖音在线显示是褐色的怎么回事)

  • 耳机无法录入声音(耳机录不进去)

    耳机无法录入声音(耳机录不进去)

  • b站的贝壳是怎么来的(b站的贝壳是怎么算的)

    b站的贝壳是怎么来的(b站的贝壳是怎么算的)

  • ipad第五代是几寸(ipad第五代是几几年的)

    ipad第五代是几寸(ipad第五代是几几年的)

  • 智能信息处理是干嘛的(智能信息处理是什么课)

    智能信息处理是干嘛的(智能信息处理是什么课)

  • 华为桌面天气时间怎么调出来(华为桌面天气时间)

    华为桌面天气时间怎么调出来(华为桌面天气时间)

  • 华为p30通话声音小怎么办(华为p30通话声音突然变小了怎么解决)

    华为p30通话声音小怎么办(华为p30通话声音突然变小了怎么解决)

  • 计算机的液晶显示器使用的颜色模式是(计算机的液晶显示器的颜色模式)

    计算机的液晶显示器使用的颜色模式是(计算机的液晶显示器的颜色模式)

  • 华为9plus怎么打开热点(华为手机怎样用九键打字)

    华为9plus怎么打开热点(华为手机怎样用九键打字)

  • 与dns连接超时怎么解决(与dns连接超时怎样用IP地址访问)

    与dns连接超时怎么解决(与dns连接超时怎样用IP地址访问)

  • 苹果11appstore下载不了软件(苹果11appstore下载不了软件为什么)

    苹果11appstore下载不了软件(苹果11appstore下载不了软件为什么)

  • ipad忘记锁屏密码怎么办(ipad忘记锁屏密码10秒解决)

    ipad忘记锁屏密码怎么办(ipad忘记锁屏密码10秒解决)

  • ip协议的主要功能(ip协议的功能作用)

    ip协议的主要功能(ip协议的功能作用)

  • 京东退款红包还在吗(京东退款红包还能退回来吗)

    京东退款红包还在吗(京东退款红包还能退回来吗)

  • 微信里面群主可以删除别人发的信息吗(微信里面群主可以解散吗)

    微信里面群主可以删除别人发的信息吗(微信里面群主可以解散吗)

  • 现代计算机的主要特点(现代计算机的主要应用领域)

    现代计算机的主要特点(现代计算机的主要应用领域)

  • 快手双击上限是多少(快手双击少怎么办)

    快手双击上限是多少(快手双击少怎么办)

  • 小米6x支持多少快充(小米6x支持多少瓦)

    小米6x支持多少快充(小米6x支持多少瓦)

  • 陌陌的视频音乐怎么弄(陌陌视频怎么配音乐)

    陌陌的视频音乐怎么弄(陌陌视频怎么配音乐)

  • vivoz5x支不支持无线充电(vivoz5x支不支持5g)

    vivoz5x支不支持无线充电(vivoz5x支不支持5g)

  • 小米路由器怎么设置(小米路由器怎么重启)

    小米路由器怎么设置(小米路由器怎么重启)

  • airpods2什么时候出的(airpods2什么时候下架)

    airpods2什么时候出的(airpods2什么时候下架)

  • iphone 12.4.1更新了什么(ios12.4.1更新)

    iphone 12.4.1更新了什么(ios12.4.1更新)

  • 索尼相机型号在哪看(索尼相机型号在看)

    索尼相机型号在哪看(索尼相机型号在看)

  • 苹果6s的访问限制在哪里(苹果6s的访问限制是哪个)

    苹果6s的访问限制在哪里(苹果6s的访问限制是哪个)

  • 华为p30pro支持人脸识别吗(华为p30pro有没有智能机器人)

    华为p30pro支持人脸识别吗(华为p30pro有没有智能机器人)

  • QQ邮箱怎么看已发邮件(qq邮箱怎么看已发送的邮件)

    QQ邮箱怎么看已发邮件(qq邮箱怎么看已发送的邮件)

  • 华为p50e最新曝光详情(华为p50新款)

    华为p50e最新曝光详情(华为p50新款)

  • HTML购物车示例(勾选、删除、添加和结算功能)(购物车html模板)

    HTML购物车示例(勾选、删除、添加和结算功能)(购物车html模板)

  • telnet命令  控制远程设备(telnet 执行命令)

    telnet命令 控制远程设备(telnet 执行命令)

  • 发票勾选认证必须对应当期成本吗
  • 委托加工应税消费品收回后直接销售
  • 公司现金账户归谁管
  • 进项票可以抵扣销项票吗
  • 漏缴的印花税如何补交
  • 小规模纳税人是季报还是月报
  • 上期留抵税额会计分录
  • 申报增值税无附表怎么填写
  • 建筑行业增值税税负率计算公式
  • 购买金税盘需要带什么
  • 小规模自开专票怎么交税
  • 财产转让所得的纳税义务发生时间
  • 罚没收入属于
  • 一次性预收租金增值税
  • 营利性养老机构需要缴纳哪些税
  • 公司拍摄产品的文案
  • 没有收到发票的支出可以做成本吗
  • 个人捐款单位需要记账吗
  • 降温费和取暖费标准
  • 保险公司代收车船税完税证明在哪里打印
  • 金税盘减免政策依据
  • 土地使用权对外出租还摊销吗
  • 公司原因领不了失业保险要赔偿吗
  • w11如何激活
  • 一般纳税人不能转为小规模纳税人吗
  • w10电脑很卡
  • 人力成本费用率和人工成本利润率
  • 客运企业安全费用提取标准
  • xp系统可以安装cad吗
  • 别人从我公司走账怎么做账务处理
  • 哪些费用可以用医保
  • php 可变变量
  • 企业所得税季度预缴是什么意思
  • 阿尔比恩洞的级别
  • php操作文件的常用函数
  • 库存现金盘盈影响营业利润吗
  • IIS 7.5 asp Session超时时间设置方法
  • 发票其他服务费包括哪些
  • ai安装教程2020
  • 发票融资会计处理
  • 购进原材料款项未付应编制什么凭证
  • 基本数据结构包括哪些
  • 手工明细账簿怎么登账
  • 企业向合伙企业转让股权
  • 公司向法人借款需要多久还清
  • 公账转给员工工资情况说明怎么写
  • 发票作废是冲红吗
  • 银行存款对账方法
  • 资产负债表是面子
  • sql默认路径在哪里
  • 短期贷款利息支付
  • 出差补助是否计入工资总额
  • 增值税不用计提吗
  • 承兑汇票到期取现手续费
  • 独立核算的单位是什么意思
  • 法人购买设备投入企业
  • 出差补贴应该怎么入账
  • 增值税普通发票查询
  • 税金及附加如何记账
  • 已经支付的预付款 银行能更改为货到付款吗
  • mssql 优化
  • 错误的英文
  • win10如何添加输入法
  • window10预览在哪里找
  • 怎么找回手机删除的照片和视频
  • 计算机 win10 桌面
  • win7显示
  • xp死机不动
  • xp系统组策略怎么打开
  • win10系统右键菜单管理
  • win10不停的自动重启
  • javascriptj
  • Node.js中的什么模块是用于处理文件和目录的
  • python数据结构之数组
  • java script入门
  • androidstudio webview
  • javascript keyup
  • 江苏税务怎么登陆
  • 深圳市国税局咨询电话是多少
  • 地方税务局稽查局卢永胜
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设