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

网站建设及维护服务器成都快型网络公司排名

网站建设及维护服务器,成都快型网络公司排名,做网站的费用计入销售费用吗,seo和sem的联系四阶#xff1a;机器学习 - 深度学习 第一章 numpy 一、numpy 概述 Numerical Python#xff0c;数值的 Python#xff0c;补充了 Python 语言所欠缺的数值计算能力。 Numpy 是其它数据分析及机器学习库的底层库。 Numpy 完全标准 C 语言实现#xff0c;运行效率充分优…四阶机器学习 - 深度学习 第一章 numpy 一、numpy 概述 Numerical Python数值的 Python补充了 Python 语言所欠缺的数值计算能力。 Numpy 是其它数据分析及机器学习库的底层库。 Numpy 完全标准 C 语言实现运行效率充分优化。 Numpy 开源免费。 1. numpy 历史 1995 年NumericPython 语言数值计算扩充。 2001 年Scipy-Numarray多维数组运算。 2005 年NumericNumarray-Numpy。 2006 年Numpy 脱离 Scipy 成为独立的项目。 2. numpy 的核心多维数组 数值计算 代码简洁减少 Python 代码中的循环。 底层实现厚内核(C)薄接口(Python)保证性能。 二、numpy 基础 ndarray 数组 1. 内存中的 ndarray 对象 元数据metadata 存储对目标数组的描述信息如ndim、dimensions、dtype、data 等。 实际数据 完整的数组数据 将实际数据与元数据分开存放一方面提高了内存空间的使用效率另一方面减少对实际数据的访问频率提高性能。 2. ndarray 数组对象的特点 Numpy 数组是同质数组即所有元素的数据类型必须相同 Numpy 数组的下标从 0 开始最后一个元素的下标为数组长度减 1 3. ndarray 数组对象的创建 np.array(任何可被解释为 Numpy 数组的逻辑结构) import numpy as np a np.array([1, 2, 3, 4, 5, 6]) print(a) # [1 2 3 4 5 6]np.arange(起始值(0),终止值,步长(1)) import numpy as np a np.arange(0, 5, 1) print(a) # [0 1 2 3 4] b np.arange(0, 10, 2) print(b) # [0 2 4 6 8]np.zeros(数组元素个数, dtype‘类型’) import numpy as np a np.zeros(10) print(a) # [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]np.ones(数组元素个数, dtype‘类型’) import numpy as np a np.ones(10) print(a) # [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]4. ndarray 对象属性的基本操作 数组的维度 np.ndarray.shape import numpy as np ary np.array([1, 2, 3, 4, 5, 6]) print(type(ary), ary, ary.shape) # class numpy.ndarray [1 2 3 4 5 6] (6,) #二维数组 ary np.array([[1,2,3,4],[5,6,7,8] ]) print(type(ary), ary, ary.shape)class numpy.ndarray [[1 2 3 4][5 6 7 8]] (2, 4)元素的类型 np.ndarray.dtype import numpy as np ary np.array([1, 2, 3, 4, 5, 6]) print(type(ary), ary, ary.dtype) # class numpy.ndarray [1 2 3 4 5 6] int64 #转换ary元素的类型 b ary.astype(float) print(type(b), b, b.dtype) # class numpy.ndarray [1. 2. 3. 4. 5. 6.] float64 #转换ary元素的类型 c ary.astype(str) print(type(c), c, c.dtype) # class numpy.ndarray [1 2 3 4 5 6] U21数组元素的个数 np.ndarray.size import numpy as np ary np.array([[1,2,3,4],[5,6,7,8] ]) #观察维度sizelen的区别 print(ary.shape, ary.size, len(ary)) # (2, 4) 8 2数组元素索引(下标) 数组对象[…, 页号, 行号, 列号] 下标从 0 开始到数组 len-1 结束。 import numpy as np a np.array([[[1, 2],[3, 4]],[[5, 6],[7, 8]]]) print(a, a.shape) print(a[0]) print(a[0][0]) print(a[0][0][0]) print(a[0, 0, 0]) for i in range(a.shape[0]):for j in range(a.shape[1]):for k in range(a.shape[2]):print(a[i, j, k]) [[[1 2][3 4]][[5 6][7 8]]] (2, 2, 2) [[1 2][3 4]] [1 2] 1 1 1 2 3 4 5 6 7 85. ndarray 对象属性操作详解 Numpy 的内部基本数据类型 类型名类型表示符布尔型bool_有符号整数型int8(-128~127) / int16 / int32 / int64无符号整数型uint8(0~255) / uint16 / uint32 / uint64浮点型float16 / float32 / float64复数型complex64 / complex128字串型str_每个字符用 32 位 Unicode 编码表示日期类型datetime64 自定义复合类型 列与列之间可以是不同的类型但是在同一列内类型必须 # 自定义复合类型 import numpy as npdata[(zs, [90, 80, 85], 15),(ls, [92, 81, 83], 16),(ww, [95, 85, 95], 15) ] #第一种设置dtype的方式 a np.array(data, dtypeU3, 3int32, int32) print(a) print(a[0][f0], :, a[1][f1]) print()#第二种设置dtype的方式 c np.array(data, dtype{names: [name, scores, ages],formats: [U3, 3int32, int32]}) print(c[0][name], :, c[0][scores], :, c.itemsize) print()#测试日期类型数组 f np.array([2011, 2012-01-01, 2013-01-01 01:01:01,2011-02-01]) f f.astype(M8[D]) f f.astype(i4) print(f[3]-f[0])f.astype(bool) [(zs, [90, 80, 85], 15) (ls, [92, 81, 83], 16)(ww, [95, 85, 95], 15)] zs : [92 81 83]zs : [90 80 85] : 2831类型字符码 类型字符码np.bool_?np.int8/16/32/64i1 / i2 / i4 / i8np.uint8/16/32/64u1 / u2 / u4 / u8np.float/16/32/64f2 / f4 / f8np.complex64/128c8 / c16np.str_Unp.datetime64M8[Y] M8[M] M8[D] M8[h] M8[m] M8[s] 不会修改原始数据的维度 视图变维 数据共享 复制变维 数据独立 直接修改原始数据的维度 就地变维 5.1 ndarray 数组维度操作 视图变维数据共享 reshape() 与 ravel() import numpy as np a np.arange(1, 9) print(a) # [1 2 3 4 5 6 7 8] b a.reshape(2, 4) #视图变维 : 变为2行4列的二维数组 print(b) c b.reshape(2, 2, 2) #视图变维 变为2页2行2列的三维数组 print(c) d c.ravel() #视图变维 变为1维数组 print(d)[1 2 3 4 5 6 7 8] [[1 2 3 4][5 6 7 8]] [[[1 2][3 4]][[5 6][7 8]]] [1 2 3 4 5 6 7 8]复制变维数据独立 flatten() e c.flatten() print(e) a 10 print(a, e, sep\n)[1 2 3 4 5 6 7 8] [11 12 13 14 15 16 17 18] [1 2 3 4 5 6 7 8]就地变维直接改变原数组对象的维度不返回新数组 a.shape (2, 4) print(a) a.resize(2, 2, 2) print(a)[[11 12 13 14][15 16 17 18]] [[[11 12][13 14]][[15 16][17 18]]]5.2 ndarray 数组索引操作切片 数组对象切片的参数设置与列表切面参数类似 步长默认切从首到尾步长-默认切从尾到首 数组对象[起始位置:终止位置:步长, …] 默认位置步长1 三维数组[页的索引行的索引列的索引] 三维数组[页的切片行的切片列的切片] import numpy as np a np.arange(1, 10) print(a) # 1 2 3 4 5 6 7 8 9 print(a[:3]) # 1 2 3 print(a[3:6]) # 4 5 6 print(a[6:]) # 7 8 9 print(a[::-1]) # 9 8 7 6 5 4 3 2 1 print(a[:-4:-1]) # 9 8 7 print(a[-4:-7:-1]) # 6 5 4 print(a[-7::-1]) # 3 2 1 print(a[::]) # 1 2 3 4 5 6 7 8 9 print(a[:]) # 1 2 3 4 5 6 7 8 9 print(a[::3]) # 1 4 7 print(a[1::3]) # 2 5 8 print(a[2::3]) # 3 6 9多维数组的切片操作 import numpy as np a np.arange(1, 28) a.resize(3,3,3) print(a) #切出1页 print(a[1, :, :]) #切出所有页的1行 print(a[:, 1, :]) #切出0页的1行1列 print(a[0, :, 1]) [[[ 1 2 3][ 4 5 6][ 7 8 9]][[10 11 12][13 14 15][16 17 18]][[19 20 21][22 23 24][25 26 27]]] [[10 11 12][13 14 15][16 17 18]] [[ 4 5 6][13 14 15][22 23 24]] [2 5 8]ndarray 数组的掩码操作 import numpy as np a np.arange(1, 10) mask [True, False,True, False,True, False,True, False,True] print(a[mask]) # [1 3 5 7 9]6. 多维数组的组合与拆分 垂直方向操作 import numpy as np a np.arange(1, 7).reshape(2, 3) b np.arange(7, 13).reshape(2, 3) # 垂直方向完成组合操作生成新数组 c np.vstack((a, b)) # 垂直方向完成拆分操作生成两个数组 d, e np.vsplit(c, 2) print(a) print(b) print(c) print(d) print(e)[[1 2 3][4 5 6]] [[ 7 8 9][10 11 12]] [[ 1 2 3][ 4 5 6][ 7 8 9][10 11 12]] [[1 2 3][4 5 6]] [[ 7 8 9][10 11 12]]水平方向操作 import numpy as np a np.arange(1, 7).reshape(2, 3) b np.arange(7, 13).reshape(2, 3) # 水平方向完成组合操作生成新数组 c np.hstack((a, b)) # 水平方向完成拆分操作生成两个数组 d, e np.hsplit(c, 2) print(a) print(b) print(c) print(d)[[1 2 3][4 5 6]] [[ 7 8 9][10 11 12]] [[ 1 2 3 7 8 9][ 4 5 6 10 11 12]] [[1 2 3][4 5 6]] [[ 7 8 9][10 11 12]]深度方向操作3 维 import numpy as np a np.arange(1, 7).reshape(2, 3) b np.arange(7, 13).reshape(2, 3) # 深度方向3维完成组合操作生成新数组 i np.dstack((a, b)) # 深度方向3维完成拆分操作生成两个数组 k, l np.dsplit(i, 2)[[1 2 3][4 5 6]] [[ 7 8 9][10 11 12]] [[[ 1 7][ 2 8][ 3 9]][[ 4 10][ 5 11][ 6 12]]] [[[1][2][3]][[4][5][6]]] [[[ 7][ 8][ 9]][[10][11][12]]]多维数组组合与拆分的相关函数 # 通过axis作为关键字参数指定组合的方向取值如下 # 若待组合的数组都是二维数组 # 0: 垂直方向组合 # 1: 水平方向组合 # 若待组合的数组都是三维数组 # 0: 垂直方向组合 # 1: 水平方向组合 # 2: 深度方向组合 res np.concatenate((a, b), axis0) print(res) # 通过给出的数组与要拆分的份数按照某个方向进行拆分axis的取值同上 result np.split(c, 2, axis0) print(result)[[ 1 2 3][ 4 5 6][ 7 8 9][10 11 12]] [array([[1, 2, 3],[4, 5, 6]]), array([[ 7, 8, 9],[10, 11, 12]])]7. ndarray 类的其他属性 shape - 维度 dtype - 元素类型 size - 元素数量 ndim - 维数 itemsize - 元素字节数 nbytes - 总字节数 size x itemsize real - 复数数组的实部数组 imag - 复数数组的虚部数组 T - 数组对象的转置视图 flat - 扁平迭代器 import numpy as np a np.array([[1 1j, 2 4j, 3 7j],[4 2j, 5 5j, 6 8j],[7 3j, 8 6j, 9 9j]]) print(a.shape) print(a.dtype) print(a.ndim) print(a.size) print(a.itemsize) print(a.nbytes) print(a.real, a.imag, sep\n) print(a.T) print([elem for elem in a.flat]) b a.tolist() print(b) (3, 3) complex128 2 9 16 144 [[1. 2. 3.][4. 5. 6.][7. 8. 9.]] [[1. 4. 7.][2. 5. 8.][3. 6. 9.]] [[1.1.j 4.2.j 7.3.j][2.4.j 5.5.j 8.6.j][3.7.j 6.8.j 9.9.j]] [(11j), (24j), (37j), (42j), (55j), (68j), (73j), (86j), (99j)] [[(11j), (24j), (37j)], [(42j), (55j), (68j)], [(73j), (86j), (99j)]]
http://www.zqtcl.cn/news/618880/

相关文章:

  • 南京网站搜索排名免费企业网站空间
  • 手机要访问国外网站如何做附近学电脑在哪里报名
  • 免费建网站哪个网好中国建设银行信用卡黑名单网站
  • 网页设计好看的网站中小型网站建设 教案
  • 优秀网站设计案例行业内做网站的公司排名
  • 个人备案网站能做商城吗长沙app制作公司哪家好
  • 成都网站建设方案优化旺道seo怎么优化网站
  • 九江县建设规划局网站wordpress多个博客
  • 绵阳住房和城乡建设局网站做服装外贸的网站
  • 福建省华荣建设集团有限公司网站建设网站西安
  • 做视频网站程序多少钱网站内链有什么用
  • 建设企业网站模板联享品牌网站建设
  • 网站建设耂首先金手指提升网站访问速度
  • 为什么备案关闭网站网站seo推广招聘
  • 建设企业网站的重要性城乡建设厅官方网站
  • 网上有做口译的网站么怎样手机做网站教程
  • 孵化器网站平台建设网站一直建设中
  • 企业网站建设的方案书网站镜像 cdn
  • 淘宝做网站的都是模板泉州模板建站公司
  • 清理网站数据库网站服务器租一个月
  • wordpress免费简约主题搜索引擎优化的英文
  • 瑞安门户网站建设怎么建设自己网站首页
  • 网站建设岗位周计划thinkphp微网站开发
  • 如何修改asp网站栏目帝国cms网站搬家教程
  • 网站建设与网页制作小团队兼职做网站
  • 嘉兴做网站的公司网红营销价值
  • scala做网站广州化妆品网站制作
  • 网站建设小组五类成员在线购物网站功能模块
  • 网站建设开发详细步骤流程图网站建设与管理实训报告总结
  • 网站设计的素材旅游网站建设标书