当前位置: 首页 > news >正文

云霄网站建设专做影视评论的网站

云霄网站建设,专做影视评论的网站,门户网站开发流程视频,中国最新军事新闻直播文章目录一、NumPy 简介1. 为什么要使用 NumPy2. NumPy 数据类型3. NumPy 数组属性4. NumPy 的 ndarray 对象二、numpy.array() 创建数组1. 基础理论2. 基础操作演示3. numpy.array() 参数详解三、numpy.arange() 生成区间数组四、numpy.linspace() 创建等差数列五、numpy.logs… 文章目录一、NumPy 简介1. 为什么要使用 NumPy2. NumPy 数据类型3. NumPy 数组属性4. NumPy 的 ndarray 对象二、numpy.array() 创建数组1. 基础理论2. 基础操作演示3. numpy.array() 参数详解三、numpy.arange() 生成区间数组四、numpy.linspace() 创建等差数列五、numpy.logspace() 创建等比数列六、numpy.zeros() 创建全零数列七、np.ones() 创建一数列一、NumPy 简介 NumPyNumerical Python是 Python 的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵比 Python 自身的嵌套列表nested list structure结构要高效的多该结构也可以用来表示矩阵matrix支持大量的维度数组与矩阵运算此外也针对数组运算提供大量的数学函数库。使用 NumPy 可以方便的使用数据、矩阵进行计算包含线性代数、傅里叶变化、随机数生成等大量函数。 1. 为什么要使用 NumPy Numpy 是 Python 各种数据科学类库的基础库比如ScipyScikit-Learn、TensorFlow、pandas等。对于同样的数值计算任务使用 NumPy 比直接使用 Python 代码实现有如下优点:1 代码更简洁NumPy 直接以数组、矩阵为粒度计算并且支撑大量的数学函数而 python 需要用 for 循环从底层实现2 性能更高效NumPy 的数组存储效率和输入输出计算性能比 Python 使用 List 或者嵌套 List 好很多。这里有两点需要注意需要注意是其一Numpy 的数据存储和 Python 原生的 List 是不一样的。其二NumPy 的大部分代码都是 C 语言实现的这是 Numpy 比纯 Python 代码高效的原因。 2. NumPy 数据类型 NumPy 支持的数据类型比 Python 内置的类型要多很多基本上可以和 C 语言的数据类型对应上其中部分类型对应为 Python 内置的类型。下表列举了常用 NumPy 基本类型: 名称描述bool_布尔型数据类型True 或者 Falseint_默认的整数类型类似于 C 语言中的 longint32 或 int64intc与 C 的 int 类型一样一般是 int32 或 int 64intp用于索引的整数类型类似于 C 的 ssize_t一般情况下仍然是 int32 或 int64int8字节-128 to 127int16整数-32768 to 32767int32整数-2147483648 to 2147483647int64整数-9223372036854775808 to 9223372036854775807uint8无符号整数0 to 255uint16无符号整数0 to 65535uint32无符号整数0 to 4294967295uint64无符号整数0 to 18446744073709551615float_float64 类型的简写float16半精度浮点数包括1 个符号位5 个指数位10 个尾数位float32单精度浮点数包括1 个符号位8 个指数位23 个尾数位float64双精度浮点数包括1 个符号位11 个指数位52 个尾数位complex_complex128 类型的简写即 128 位复数complex64复数表示双 32 位浮点数实数部分和虚数部分complex128复数表示双 64 位浮点数实数部分和虚数部分 NumPy 的数值类型实际上是 dtype 对象的实例并对应唯一的字符包括 np.bool_np.int32np.float32等等。 3. NumPy 数组属性 NumPy 数组的维数称为秩rank秩就是轴的数量即数组的维度一维数组的秩为 1二维数组的秩为 2以此类推。在 NumPy 中每一个线性的数组称为是一个轴axis也就是维度dimensions。比如说二维数组相当于是两个一维数组其中第一个一维数组中每个元素又是一个一维数组。所以一维数组就是 NumPy 中的轴axis第一个轴相当于是底层数组第二个轴是底层数组里的数组。而轴的数量——秩就是数组的维数。很多时候可以声明 axis。axis0表示沿着第 0 轴进行操作即对每一列进行操作axis1表示沿着第1轴进行操作即对每一行进行操作。NumPy 的数组中比较重要 ndarray 对象属性有 属性说明ndarray.ndim秩即轴的数量或维度的数量ndarray.shape数组的维度对于矩阵n 行 m 列ndarray.size数组元素的总个数相当于 .shape 中 n*m 的值ndarray.dtypendarray 对象的元素类型ndarray.itemsizendarray 对象中每个元素的大小以字节为单位ndarray.flagsndarray 对象的内存信息ndarray.realndarray 元素的实部ndarray.imagndarray 元素的虚部ndarray.data包含实际数组元素的缓冲区由于一般通过数组的索引获取元素所以通常不需要使用这个属性。 4. NumPy 的 ndarray 对象 NumPy 定义了一个 n 维数组对象简称 ndarray 对象它是一个一系列相同类型元素组成的数组集合。数组中的每个元素都占有大小相同的内存块。ndarray 对象采用了数组的索引机制将数组中的每个元素映射到内存块上并且按照一定的布局对内存块进行排列行或列。 二、numpy.array() 创建数组 1. 基础理论 基本的 ndarray 是使用 NumPy 中的数组函数创建的如下所示 numpy.array 它从任何暴露数组接口的对象或从返回数组的任何方法创建一个 ndarray。 numpy.array(object, dtype None, copy True, order None, subok False, ndmin 0)上面的构造器接受以下参数 序号参数描述1object表示一个数组序列。2dtype可选参数通过它可以更改数组的数据类型。3copy可选参数当数据源是ndarray时表示数组能否被复制默认是 True。4order可选参数以哪种内存布局创建数组有 3 个可选值分别是 C行序列、F列序列、A默认。5subok可选参数类型为bool值默认 False。为 True使用object的内部数据类型False使用object数组的数据类型。6ndmin可选参数用于指定数组的维度。 2. 基础操作演示 在代码编写之前我们需要线引入 NumPy。 # 注意默认都会给numpy包设置别名为np import numpy as npNumPy 引入完成后实现 array 创建数组。在 array() 函数当中括号内可以是列表、元组、数组、迭代对象,生成器等。其中列表和元组的整体相同但是列表属于可变序列它的元素可以随时修改或删除元组是不可变序列其中元素不可修改只能整体替换。1 列表 np.array([1,2,3,4,5]) #array([1, 2, 3, 4, 5])2 元组 np.array((1,2,3,4,5)) #array([1, 2, 3, 4, 5])3 数组 a np.array([1,2,3,4,5]) #创建一个数组 np.array(a) #array([1, 2, 3, 4, 5])4 迭代对象 np.array(range(10)) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])5 生成器 np.array([i**2 for i in range(10)])​ #array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81])当数组内的元素数据类型不相同时那么数组内哪种数据类型存储的结果最大就按哪种数据类型进行存储。如下例子在数组当中包含整型浮点型和字符串其中字符串的数据类型存储结果最大因此数组内的所有元素均按字符串进行存储。 np.array([1,1.5,3,4.5,5]) #array([1, 1.5, 3, 4.5, 5], dtypeU32)1 整型 ar1 np.array(range(10)) # 整型 ar1 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])2 浮点型浮点型的数据存储大于整型的数据存储因此全部转换为浮点型 ar2 np.array([1,2,3.14,4,5]) ar2 #array([1. , 2. , 3.14, 4. , 5. ])3 二维数组嵌套序列列表元组均可 ar3 np.array([[1,2,3],(a,b,c)]) ar3 #array([[1, 2, 3], # [a, b, c]], dtypeU11)4 当二维数组嵌套序列数量不一致 ar4 np.array([[1,2,3],(a,b,c,d)]) ar4 #array([list([1, 2, 3]), (a, b, c, d)], dtypeobject)上述例子的秩是 1可以通过 ar4.ndim 进行查看。 3. numpy.array() 参数详解 1 设置 dtype 参数默认自动识别。 a np.array([1,2,3,4,5]) print(a) # 设置数组元素类型 has_dtype_a np.array([1,2,3,4,5],dtypefloat) has_dtype_a #[1 2 3 4 5] #array([1., 2., 3., 4., 5.])如果将浮点型的数据设置为整形那么数组内元素会自动舍弃尾数转换为整型数据具体输出如下所示。 np.array([1.1,2.5,3.8,4,5],dtypeint) ​#array([1, 2, 3, 4, 5])2 设置 copy 参数,默认为 True。我们设置 a 数组然后通过 a 数组复制得出 b 数组此时a 数组和 b 数组的地址不相同创建了新的对象。那么对 a 数组和 b 数组的任意修改都不会影响另一个数组的元素。 a np.array([1,2,3,4,5]) b np.array(a) print(a:, id(a), b:, id(b)) print(以上看出a和b的内存地址) b[0] 10 print(a) #a: 2066732212352 b: 2066732213152 #以上看出a和b的内存地址 #[1 2 3 4 5]当我们修改 b 数组的元素时a 数组不会发生变化。 b[0] 10 print(a:, a, b:, b) #a: [1 2 3 4 5] b: [10 2 3 4 5]当设置 copy 参数为 Fasle 时不会创建副本两个变量会指向相同的内容地址没有创建新的对象。此时由于 a 数组和 b 数组指向的是相同的内存地址因此当修改 b 数组的元素时a 数组对应的元素会发生变化。 a np.array([1,2,3,4,5]) b np.array(a, copyFalse) print(a:, id(a), b:, id(b)) print(以上看出a和b的内存地址) b[0] 10 print(a:,a, b:,b) #a: 2066732267520 b: 2066732267520 #以上看出a和b的内存地址 #a: [10 2 3 4 5] b: [10 2 3 4 5]3 ndmin 用于指定数组的维度。将一维数组转换为二维数组。 a np.array([1,2,3]) print(a)​ a np.array([1,2,3], ndmin2) a​ #[1 2 3] #array([[1, 2, 3]])4 subok 参数类型为 bool 值默认 False。为 True 时使用 object 的内部数据类型False使用 object 数组的数据类型。首先创建一个 a 矩阵然后输出 a 矩阵的数据类型便于后面的比较。其次通过 a 矩阵生成 at 和 af 两个数组at 数组的 subok 参数设置为 Trueat 数组的 subok 参数不设置即默认为 False。最后输出 at 数组和 af 数组的数据类型用于比较观察。 a np.mat([1,2,3,4]) print(type(a)) ​at np.array(a,subokTrue) af np.array(a) print(at,subok为True:,type(at)) print(af,subok为False:,type(af)) print(id(at),id(a))​ #class numpy.matrix #at,subok为True: class numpy.matrix #af,subok为False: class numpy.ndarray #2066738151720 2066738151608书写代码时需要注意的内容先定义一个 a 数组。 a np.array([2,4,3,1])在定义 b 数组时如果想复制 a 数组有如下几种方案1 使用 np.array()。2 使用数组的 copy() 方法。 b np.array(a) print(b np.array(a),id(b),id(a)) ​c a.copy() print(c a.copy(),id(c),id(a)) #b np.array(a) 2066731363744 2066731901216 #c a.copy() 2066732267520 2066731901216注意不能直接使用 号复制直接使用 号会使 2 个变量指向相同的内存地址。 三、numpy.arange() 生成区间数组 根据 start 与 stop 指定的范围以及 step 设定的步长生成一个 ndarray。 numpy.arange(start, stop, step, dtype)其参数含义如下 序号参数描述说明1start起始值默认为 02stop终止值不包含3step步长默认为 14dtype返回 ndarray 的数据类型如果没有提供则会使用输入数据的类型。 如果只有一个参数那么起始值就是 0终止值就是那个参数步长就是 1。如果有两个参数那么第一个参数就是起始值第二个参数就是终止值。 np.arange(10) #array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])可以使用浮点型数值。 np.arange(3.1) #array([0., 1., 2., 3.])返回浮点型的也可以指定类型。 x np.arange(5, dtype float) x #array([0., 1., 2., 3., 4.])设置了起始值、终止值及步长1 起始值是 10终止值是 20步长是 2。 np.arange(10,20,2) ​#array([10, 12, 14, 16, 18])1 起始值是 0终止值是 20步长是 3。 ar2 np.arange(0,20,3) print(ar2) ar3 np.arange(20,step3) #指定传参 ar3 ​#[ 0 3 6 9 12 15 18] #array([ 0, 3, 6, 9, 12, 15, 18])如果数组太大而无法打印NumPy 会自动跳过数组的中心部分并只打印边角。 np.arange(10000) #array([ 0, 1, 2, ..., 9997, 9998, 9999])四、numpy.linspace() 创建等差数列 返回在间隔 [开始停止] 上计算的 num 个均匀间隔的样本。数组是一个等差数列构成。 np.linspace(start, stop, num50, endpointTrue, retstepFalse, dtypeNone)其参数含义如下 序号参数描述说明1start必填项序列的起始值2stop必填项序列的终止值如果 endpoint 为 True该值包含于数列中3num要生成的等步长的样本数量默认为504endpoint该值为 True 时数列中包含 stop 值反之不包含默认是 True。5retstep如果为 True 时生成的数组中会显示间距反之不显示。6dtypendarray 的数据类型 以下例子用到三个参数设置起始点为 1 终止点为 10数列个数为 10。 a np.linspace(1,10,10) a #array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])如果我们将 endpoint 设置为 False就不会包含 10此时默认步长是 50。 a np.linspace(1,10,endpointFalse) a #array([1. , 1.18, 1.36, 1.54, 1.72, 1.9 , 2.08, 2.26, 2.44, 2.62, 2.8 , # 2.98, 3.16, 3.34, 3.52, 3.7 , 3.88, 4.06, 4.24, 4.42, 4.6 , 4.78, # 4.96, 5.14, 5.32, 5.5 , 5.68, 5.86, 6.04, 6.22, 6.4 , 6.58, 6.76, # 6.94, 7.12, 7.3 , 7.48, 7.66, 7.84, 8.02, 8.2 , 8.38, 8.56, 8.74, # 8.92, 9.1 , 9.28, 9.46, 9.64, 9.82])以下实例用到三个参数设置起始位置为 2.0终点为 3.0数列个数为 5。 ar1 np.linspace(2.0, 3.0, num5) ar1 #array([2. , 2.25, 2.5 , 2.75, 3. ])将参数 endpoint 设置为 False 时不包含终止值 ar1 np.linspace(2.0, 3.0, num5, endpointFalse) ar1 #array([2. , 2.2, 2.4, 2.6, 2.8])设置 retstep 显示计算后的步长。 ar1 np.linspace(2.0,3.0,num5, retstepTrue) print(ar1) type(ar1) #(array([2. , 2.25, 2.5 , 2.75, 3. ]), 0.25) #tuple将 endpoint 设置为 False不包含终止值再设置 retstep 显示计算后的步长。 ar1 np.linspace(2.0,3.0,num5,endpointFalse,retstepTrue) ar1 #(array([2. , 2.2, 2.4, 2.6, 2.8]), 0.2)等差数列在线性回归经常作为样本集例如生成 x_data值为 [0, 100] 之间 500 个等差数列数据集合作为样本特征根据目标线性方程 y3×x2y3×x2y3×x2生成相应的标签集合 y_data。 x_data np.linspace(0,100,500) x_data五、numpy.logspace() 创建等比数列 返回在间隔 [开始停止] 上计算的 num 个均匀间隔的样本。数组是一个等比数列构成。 np.logspace(start, stop, num50, endpointTrue, base10.0, dtypeNone)其参数含义如下 序号参数描述说明1start必填项序列的起始值2stop必填项序列的终止值如果endpoint为true该值包含于数列中3num要生成的等步长的样本数量默认为504endpoint该值为 true 时数列中包含stop值反之不包含默认是True。5base对数 log 的底数6dtypendarray 的数据类型 a np.logspace(0,9,10,base2) a #array([ 1., 2., 4., 8., 16., 32., 64., 128., 256., 512.])上述代码可以理解为 202^{0}20 到 292^{9}29。np.logspace(A,B,C,baseD) 中的参数分别是如下含义A生成数组的起始值为 D 的 A 次方。B生成数组的结束值为 D 的 B 次方。C总共生成 C 个数。D指数型数组的底数为 D当省略 baseD 时默认底数为 10。我们先使用前 3 个参数将 [1,5] 均匀分成 3 个数得到 {1,3,5}然后利用第 4 个参数 base2默认是 10使用指数函数可以得到最终输出结果 {212^{1}21232^{3}23252^{5}25}。 np.logspace(1,5,3,base2) #array([ 2., 8., 32.])取得 1 到 2 之间 10 个常用对数。 np.logspace(1.0,2.0,num10) #array([ 10. , 12.91549665, 16.68100537, 21.5443469 , # 27.82559402, 35.93813664, 46.41588834, 59.94842503, # 77.42636827, 100. ])上述实际上是 10110^{1}101 到 10210^{2}102。 六、numpy.zeros() 创建全零数列 创建指定大小的数组数组元素以 0 来填充。 numpy.zeros(shape, dtype float, order C)其参数含义如下 序号参数描述说明1shape数组形状2dtype数据类型可选 默认的数据类型是浮点数。 np.zeros(5) #array([0., 0., 0., 0., 0.])将数据类型设置为整型。 np.zeros((5,), dtype int) array([0, 0, 0, 0, 0])生成一个 2 行 2 列的全 0 数组。 np.zeros((2,2)) #array([[0., 0.], # [0., 0.]])使用 zeros_like 可以返回具有与给定数组相同的形状和类型的零数组。 ar1 np.array([[1,2,3],[4,5,6]]) np.zeros_like(ar1) #array([[0, 0, 0], # [0, 0, 0]])七、np.ones() 创建一数列 生成元素全部是 1 的数列。 ar5 np.ones(9) ar6 np.ones((2,3,4)) ar7 np.ones_like(ar3) print(ar5:,ar5) print(ar6:,ar6) print(ar7:,ar7) #ar5: [1. 1. 1. 1. 1. 1. 1. 1. 1.] #ar6: [[[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]] # # [[1. 1. 1. 1.] # [1. 1. 1. 1.] # [1. 1. 1. 1.]]] #ar7: [1 1 1 1 1 1 1]​
http://www.dnsts.com.cn/news/84140.html

相关文章:

  • 厦门同安网站建设网站推广去哪家比较好
  • 免费制作个人网站app网店代运营公司哪家强
  • 网站建设需要c语言吗中国机械加工网18易8下4拉hu
  • 传奇怎么建设自己的网站移动网站建设制作
  • 网站插件代码怎么用wordpress采集器
  • 安亭网站建设淄博品先网络科技有限公司
  • 青海高端网站建设中铁快运关于网站建设
  • 怎么弄个人网站大型网站建设哪里济南兴田德润实惠吗
  • 网站建设 需要ae吗游戏平台网站开发
  • 化妆品网站开发流程和进度安排门户网站特点
  • 如今做知乎类网站怎么样营销技巧第二季
  • 建设银行网站的机构深圳创建公司要多少钱
  • 加强残联网站建设开一家软件开发公司需要什么
  • 客户案例 网站设计企业建设网站的需求分析
  • 阿里巴巴国际站下载电脑版英文seo网站建设
  • 黄石城乡建设网站可以做cps合作的棋牌网站6
  • 机票网站开发知乎艺术家个人网站设计
  • 做360手机网站优化快免费咨询服务合同模板
  • 织梦做的的网站首页显示空白w网站链接如何做脚注
  • 上海金山网站建设创网中国的网站
  • 任丘市网站建设价格推广软件赚钱违法吗
  • 做地方门户网站怎样四川住房和城乡建设厅官网安全员
  • html5 jsp做网站可以么郑州网站制作生产厂商定制
  • 做国外商品的网站重庆建设官网
  • 海南网站制做的公司中国建设银行河北省门户网站
  • 马云做中国最大的网站中国网页设计师联盟
  • 保山公司做网站昆山网站制作 微博
  • 网站屏蔽搜索引擎网站销售需要注册公司吗
  • 做的好看的外国网站erp是什么意思
  • wordpress建的网站打开太慢网页版梦幻西游红色伙伴搭配