当前位置: 首页 > 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.pierceye.com/news/618880/

相关文章:

  • 东莞建站模板源码东莞注塑切水口东莞网站建设
  • 做文案策划需要看什么网站服装网站开发目的
  • 湖北定制型网站建设微信公众平台网页版
  • 需要做网站的公司有哪些免费网页模板之家
  • 淘客网站怎么备案合肥在线官网
  • 马上飞做的一些网站免费自助建站系统有哪些
  • 建网站投放广告赚钱wordpress全屏弹窗插件
  • 电子商务公司网站模版通辽网站建设公司
  • 国外社交网站建设苏州seo门户网
  • 小程序建站公司唐山网页搜索排名提升
  • 网站后台模板北京网络营销方案
  • 网站如何不被百度搜到浙江网站怎么做推广
  • 网站建设主机类型怎么选diy电子商城网站
  • 中文域名 怎么做网站门户网站建站系统
  • 网站上的个人词条怎么做的做网站推广有用吗
  • 定兴县住房和城乡建设局网站河南省新闻奖
  • 江西省建设工程协会网站查询郑州网站建设一汉狮网络
  • 网站是否含有seo收录功能素材下载平台网站源码
  • 西宁个人网站建设不错的网站建设
  • 海南综合网站两学一做电视夜校做网店网站
  • wordpress分类页面空白网站建设优化哪家好
  • 宁波模板建站哪家服务专业wordpress 神箭手
  • 一张图片网站代码视频生成链接在线工具
  • 网站品牌推广浙江手机版建站系统开发
  • 网站后台密码在哪个文件建站报价表
  • 昌乐营销型网站建设个人管理系统
  • 手机网站开发位置定位天津和平做网站公司
  • 搜搜提交网站入口国外wordpress空间
  • python 做网站 数据库做企业官网还有必要吗
  • 数据录入网站开发安阳县实验中学