python数组操作

numpy 索引

会有一股神秘感。 提交于 2020-04-07 09:51:48
一、花式索引 numpy提供了比常规的python序列更多的索引工具。正如我们前面看到的,除了按整数和切片索引之外,还可以使用数组进行索引 >>> a = np.arange(12)**2 array([ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121], dtype=int32) >>> i = np.array( [ 1,1,3,8,5 ] ) #一个包含索引数据的数组 >>> a[i] array([ 1, 1, 9, 64, 25]) >>> >>> j = np.array( [ [ 3, 4], [ 9, 7 ] ] ) #一个二维索引数组 >>> a[j] # 最终结果和j的形状保持一致 array([[ 9, 16], [81, 49]]) 当被索引的数组是多维数组时,将按照它的第一轴进行索引的,比如下面的例子: >>> palette = np.array( [ [0,0,0], ... [255,0,0], ... [0,255,0], ... [0,0,255], ... [255,255,255] ] ) >>> image = np.array( [ [ 0, 1, 2, 0 ], ... [ 0, 3, 4, 0 ] ] ) >>> palette[image] array([[[ 0, 0, 0], [255,

【第三方类库】Underscore.js Version (1.2.3) 中文文档

拥有回忆 提交于 2020-04-05 23:03:48
Underscore.js Version (1.2.3) 中文文档 Underscore 一个非常实用的JavaScript库,提供许多编程功能的支持,就像你期望 Prototype.js (或者 Ruby ), 有这些功能且不扩展任何JavaScript的原生对象。 It's the tie to go along with jQuery 's tux. Underscore提供60多个方法,即有普通的功能,例如: map , select , invoke — 也有更多特殊的编程辅助方法,例如:函数绑定、javascript模板、绝对相等判断等待。 如果一些现代的浏览器提供了内置的 forEach , map , reduce , filter , every , some 和 indexOf 方法,Underscore就委托给浏览器原生的方法。 Underscore提供完整的 测试用例集 供你精读。 你也可以阅读有注释的 源代码 。 项目代码放在 GitHub 上,你可以通过 issues页 、Freenode的 #documentcloud 频道、发送tweets给 @documentcloud 三个途径报告bug以及参与特性讨论。 Underscore是 DocumentCloud 的一个开源组件。 下载 (Right-click, and use "Save As")

01.JS基本语法-数据类型和变量

老子叫甜甜 提交于 2020-04-01 04:58:59
:JavaScript代码可以直接嵌在网页的任何地方,但一般写在之间,必须要有自己的闭标签 JS的基本结构 <script type="text/javascript"> <!-- JavaScript 语句; --> </script > JS只能在客户端执行,并且不能操作服务器端 引入这个文件 ②JavaScript严格区分大小写 <html> <head> <script src="/static/js/abc.js"></script> </head> <body> ... </body> </html> 变量 变量名是大小写英文、数字、$和_的组合,且不能用数字开头。变量名也不能是JavaScript的关键字,声明变量赋值时指明数据类型: var width=5; var a; // 申明了变量a,此时a的值为undefined var $b = 1; // 申明了变量$b,同时给$b赋值,此时$b的值为1 var s_007 = '007'; // s_007是一个字符串 var Answer = true; // Answer是一个布尔值true var t = null; // t的值是null var:提前声明 可以不声明之间赋值【不推荐】 注意 : JavaScript严格区分大小写 js是一门动态语言 strict模式

ufunc函数

自闭症网瘾萝莉.ら 提交于 2020-03-25 15:27:55
  无灯可看。雨水从教正月半。探茧推盘。探得千秋字字看。   铜驼故老。说著宣和似天宝。五百年前。曾向杭州看上元。   ufunc是universal function的缩写,他是一种对数组的每个元素进行运算的函数。NumPy的内置许多函数都是用C语言实现的因此,他们的计算速度十分的快。 >>> x = np.linspace(0,2*np.pi,10) >>> x array([ 0. , 0.6981317 , 1.3962634 , 2.0943951 , 2.7925268 , 3.4906585 , 4.1887902 , 4.88692191, 5.58505361, 6.28318531]) >>> y = np.sin(x) >>> y array([ 0.00000000e+00, 6.42787610e-01, 9.84807753e-01, 8.66025404e-01, 3.42020143e-01, -3.42020143e-01, -8.66025404e-01, -9.84807753e-01, -6.42787610e-01, -2.44929360e-16])   可以查看函数的使用方法,得到使用方法。   下面我们比较一下np.sin()和math.sin()的时间复杂度。 #coding:utf-8 import math import

《python科学技算》之Numpy 广播;ufunc函数的方法

天大地大妈咪最大 提交于 2020-03-25 14:48:10
1.Numpy包中的广播部分: ufunc 函数会对两个数组的对应元素计算,要求俩数组形状相同,如果不同会进行广播处理。 广播处理即所有数组的shape向维数最多数组看齐,低维通过前面加1看齐,如一维的(5,),与二维看齐后为(1,5);只有当某个轴长度相同或为1才能计算 当输入数组的某个轴长度为1时,沿此轴运算时都用第一组的值 Numpy提供了快速生成广播运算数组的ogrid对象 x,y=np.ogrid[:5,:5] 还有一个mgrid对象与此相似,但返回的是已经广播后的数组 ogrid[]内有两种写法: 始:终:步长 or 始:终:长度j 如果已经有了两个一维数组x,y: gy,gx=np.ix_(y,x) 注意此时y是0轴,x是1轴 2.ufunc函数的方法 这些方法只对两个输入一个输出的ufunc对象有效 <op>.reduce(array,axis=0,dtype=None) reduce()方法相当于沿着axis指定的轴对数组进行操作,将<op>运算符插入到沿axis的所有元素中: np.add.reduce([1,2,3]) #6 np.add.reduce([[1,2,3],[4,5,6]]) #[5,7,9], 默认axis=0,same with np.add([1,2,3],[4,5,6]) np.add.reduce([[1,2,3],[4,5,6]]

数据分析之Numpy的基本操作

拟墨画扇 提交于 2020-03-23 01:58:17
Numpy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 1 创建 ndarray 使用np.array()创建 import numpy as np # 一维数据创建 ret = np.array([1, 2, 3]) # 二维数据创建 ret = np.array([[1, 2, 3], [4, 5, 6]]) print(ret) numpy默认ndarray的所有元素的类型是相同的 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int 使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片 import matplotlib.pylab as plt # 图片数据转化为数组 img_arr = plt.imread('./cat.jpg') # 数组转图片 img_show = plt.imshow(img_arr) # 操作该numpy数据,该操作会同步到图片中 plt.imshow(img_arr-100) 使用np的routines函数创建 np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) 等差数列

前端基础之JavaScript

断了今生、忘了曾经 提交于 2020-03-20 03:08:25
JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。 该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。 因此ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。 ECMAScript的历史 年份 名称 描述 1997 ECMAScript 1 第一个版本 1998 ECMAScript 2 版本变更 1999 ECMAScript 3 添加正则表达式 添加try/catch ECMAScript 4 没有发布 2009 ECMAScript 5 添加"strict mode"严格模式 添加JSON支持 2011 ECMAScript 5.1 版本变更 2015 ECMAScript 6

3.前端笔记之JavaScript基础

只谈情不闲聊 提交于 2020-03-19 08:12:45
作者:刘耀 部分内容参考一下链接 参考: http://www.cnblogs.com/wupeiqi/articles/5369773.html http://javascript.ruanyifeng.com/oop/basic.html http://www.cnblogs.com/gaojun/archive/2013/10/24/3386552.html 一、JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 二、组成部分 ECMAScript,描述了该语言的语法和基本对象 文档对象模型(DOM),描述处理网页内容的方法和接口。 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。 三、一些简单案例 注:显示结果请自行测试 1.简单的html输出 <script> document.write('<h1>我是你耀哥</h1>') </script> 此脚本请在开头测试,如果在尾部测试,那么会覆盖整个html页面 2.简单的点击按钮弹出提示 <!DOCTYPE html> <html> <head lang="en">

前端 -- javas-基本语法/引用等

故事扮演 提交于 2020-03-18 06:11:29
javas-基本语法/引用等 JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互。 JavaScript是浏览器解释执行的,前端脚本语言还有JScript(微软,IE独有),ActionScript( Adobe公司,需要插件)等。 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript 微软随后模仿在其IE3.0的产品中搭载了一个JavaScript的克隆版叫Jscript. 为了统一三家,ECMA(欧洲计算机制造协会)定义了ECMA-262规范.国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。EcmaScript是规范. 前端三大块 1

numpy 多维数组及数组操作

血红的双手。 提交于 2020-03-17 00:22:49
NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库! 简单理解:   2维是EXCEL表格里面的多行多列   3维是EXCEL表格里面的多行多列+下面的sheet1、2、3   4维是包括了同一个文件夹下不同名称的EXCEL表格   5维是同一分区不同文件夹下不同名称的EXCEL表格   6维是不同分区不同文件夹下不同名称的EXCEL表格 多维数组非常像列表,但通常它的元素类型是相同的,且都是数字,下面是一个简单的例子。 声明数组: import numpy as np a = np.array([1, 2, 3, 4, 5, 6]) print(f'一维数组: {a}') 结果: a = np.array([[1, 2, 3], [4, 5, 6]]) print(f'二维数组: {a}') 结果: # 使用reshape方法反向生成多维数组 三维数组 nlist_3 = np.array(range(24)).reshape((3,2,4)) print(nlist_3) 结果: #反向声明一个size为20个元素的四维数组 nlist_4 = np.array(range(20)).reshape((1,2,5