arr

第十章、numpy模块

☆樱花仙子☆ 提交于 2019-11-28 01:25:57
目录 第十章、numpy模块 一、导入方式 二、作用 三、通过函数创建numpy数组 四、 numpy数组运算 五、重点 第十章、numpy模块 一、导入方式 import numpy as np#约定俗成 二、作用 数组或矩阵的运算 numpy数组 arr1 = np.array([1,2,3]) #创建一维数组对象 arr1 arr2 = np.array([[1,2,3],[4,5,6]]) arr2 #二维数组 三维数组不用numpy模块,用 TensorFlow、pytorch模块 属性 属性 解释 T 数组的转置(也就是行和列互换) dtype 数组元素的数据类型 size 数组元素的个数(比如2行3列为6) ndim 数组的维数 shape 数组的维度大小(以元组形式)(比如2行3列为(2,3)) astype 类型转换 arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr.T) # 行与列互换 arr1.transpose()也是转置 ------------------------------------------------------- [[1 4] [2 5] [3 6]] ``` 切片 arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr[:]) #取出数组所有元素

poj1741(入门点分治)

十年热恋 提交于 2019-11-28 00:09:32
题目链接:https://vjudge.net/problem/POJ-1741 题意:给出一棵树,求出树上距离不超过k的点对数量。 思路:点分治经典题。先找重心作为树根,然后求出子树中所有点到重心的距离dis[i],那么所有组合为dis[i]+dis[j]<=k,其中不合法组合为在重心的同一个子树内的情况,所以要减去在重心的子树中仍满足dis[i]+dis[j]<=k的情况。 AC代码: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int inf=0x3f3f3f3f; const int maxn=10005; struct node1{ int v,w,nex; }edge[maxn<<1]; struct node2{ int x,y; }arr[maxn]; int n,k,cnt,ans,head[maxn],sz[maxn],mson[maxn],Min,root,size; int vis[maxn],t,tt,dis[maxn],pre[maxn]; void adde(int u,int v,int w){ edge[++cnt].v=v; edge[cnt].w=w; edge[cnt].nex=head[u]; head[u]=cnt; }

JavaScript之对象Array

被刻印的时光 ゝ 提交于 2019-11-27 21:37:54
JavaScript之对象Array   数组Array是JavaScript中最常用的类型之一,同一数组中可以保存任意类型的数据,并且它的长度是动态的,会随着数组中数据的加减自动变化。每个数组都有一个表示其长度(数组元素的个数)的length属性。并且数组元素的索引(下标)是从0开始的,所以数组最后一个元素的索引永远等于length – 1; 一 创建数组 1,使用new关键字创建 1 var arr = new Array(); 可以向Array构造函数传递参数以实现创建包含特定数据的数组,多个参数使用逗号隔开。    需要注意的是:当参数只有一个数字时,构造函数创建的不是包含该数字的字符串,而是一个长度为该数字的空数组,即arr.length = 数字。 2,使用字面量形式创建 1 var arr = [1,2,3]; 数组元素被包含在一对“[]”中括号内,数组的每个元素之间用逗号隔开,最后一个元素后面不需要逗号。   另外,上面已经讲过,数组的长度是动态的,它体现在可以手动的修改其length的值,以达到删除或增加数组长度的目的。 1 var arr = [1,2,3]; 2 console.log(arr.length);//3 3 arr.length = 2; 4 console.log(arr.length);//2 5 console.log(arr);//[1

小程序图片转base64

回眸只為那壹抹淺笑 提交于 2019-11-27 21:12:28
1:动态tabBar,item项,相册或者手机拍照 clickPhoto() { var that = this; wx.showActionSheet({ itemList: ['从相册中选择', '拍照'], itemColor: "#2874dc", success: function (res) { if (!res.cancel) { if (res.tapIndex == 0) { that.chooseWxImageShop('album'); // 从相册中选择 } else if (res.tapIndex == 1) { that.chooseWxImageShop('camera'); // 手机拍照 } } } }) }, 2:用户选择图片 chooseWxImageShop: function (type) { var that = this; wx.chooseImage({ count: 4, // 允许用户选择几张图片 sizeType: ['original', 'compressed'], sourceType: [type], success: function (res) { var arr = that.data.photoArr.concat(res.tempFilePaths); that.setData({ photoArr: arr

JS中 reduce() 的用法

我的梦境 提交于 2019-11-27 21:11:58
过去有很长一段时间,我一直很难理解 reduce() 这个方法的具体用法,平时也很少用到它。事实上,如果你能真正了解它的话,其实在很多地方我们都可以用得上,那么今天我们就来简单聊聊JS中 reduce() 的用法。 一、语法 arr.reduce(function(prev,cur,index,arr){ ... }, init); 其中, arr 表示原数组; prev 表示上一次调用回调时的返回值,或者初始值 init; cur 表示当前正在处理的数组元素; index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1; init 表示初始值。 看上去是不是感觉很复杂?没关系,只是看起来而已,其实常用的参数只有两个: prev 和 cur 。接下来我们跟着实例来看看具体用法吧~ 二、实例 先提供一个原始数组: var arr = [3,9,4,3,6,0,9]; 实现以下需求的方式有很多,其中就包含使用reduce()的求解方式,也算是实现起来比较简洁的一种吧。 1. 求数组项之和 var sum = arr.reduce(function (prev, cur) { return prev + cur; },0); 由于传入了初始值0,所以开始时prev的值为0,cur的值为数组第一项3,相加之后返回值为3作为下一轮回调的prev值

python学习笔记—— 函数

▼魔方 西西 提交于 2019-11-27 20:02:04
〈p>读取远程页面 from urllib import urlretrieve def printFile(url): f = open(url) for line in f: if line.strip(): print line f.close() def loadFile(url=r'http://www.idkin.com/contact.html', process=printFile): try: fileName = urlretrieve(url,'tmp.html')[0] print(fileName) except BaseException, e: print(str(e)) if fileName: process(fileName) if __name__ == "__main__": loadFile() #urlretrieve的返回值是一个tuple, 第一个元素就是目标文件名 #如果urlretrieve仅获取一个参数,返回值的第一个元素就是产生的临时文件名 filter函数,类似javascript1.7的Array#filter。filter函数的功能相当于过滤器。调用一个布尔函数fn来迭代遍历每个seq中的元素;返回一个使fn返回值为true的元素的序列。 from random import randint def filter(fn

几种常用的排序算法

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-27 19:50:25
什么是算法 我想很多程序员恐怕误解了「算法」的意义,一想到算法就是动态规划,机器学习之类的高大名词。算法其实就是数学中的「解题过程」,解题过程要求精确,考虑各种情况,需要人看得懂。算法不需要你在键盘上选择什么编程语言实现,只需要在本子上详细的写出每一个步骤就可以了。 算法真的很重要吗? 我经常在社区里看到有人说初级开发不需要懂算法,这是非常真切的,很多的业务构建都是很常规的套路,查个数据库返回,没有太多复杂的计算,哪需要什么解题过程。 但是我想遇到稍微复杂一点的业务,或者想要系统运行得更流畅、更有性能的时候,我们就会构思采取什么样的方法能让系统跑得更快、更稳定,于是有了「分布式算法」等架构方面的算法。有时候我们发现某个响应很慢,可能就是某个算法的执行效率过慢,只是我们不知道这也能称为算法?最常见的恐怕是多层遍历,很容易导致效率很低的问题。所以在编程的时候要养成思考算法复杂度的习惯。 算法对于提高代码的执行效率,对问题的抽象有非常大的帮助。算法学好了,在遇到同一类问题的时候再也不用挤破脑袋来想了,能够更加容易的联想到相关的算法解决问题。程序员要想编程更容易,不怕各种场景没遇到过,学好算法是很有必要的。 排序算法的运用非常广泛。各种语言都有自己内置的排序函数,在面试过程中也经常会有排序算法的考题。总结几种排序算法的实现。 这个问题的显示表示是

go 学习笔记之数组还是切片都没什么不一样

泄露秘密 提交于 2019-11-27 19:39:07
上篇文章中详细介绍了 Go 的基础语言,指出了 Go 和其他主流的编程语言的差异性,比较侧重于语法细节,相信只要稍加记忆就能轻松从已有的编程语言切换到 Go 语言的编程习惯中,尽管这种切换可能并不是特别顺畅,但多加练习尤其是多多试错,总是可以慢慢感受 Go 语言之美! 在学习 Go 的内建容器前,同样的,我们先简单回顾一下 Go 的基本语言,温度而知新可以为师矣! 上节知识回顾 如需了解详情,请于微信公众号[雪之梦技术驿站]内查看 go 学习笔记之值得特别关注的基础语法有哪些 文章,觉得有用的话,顺手转发一下呗! 内建类型种类 bool 布尔类型,可选 true|false ,默认初始化零值 false . (u)int , (u)int8 , (u)int16 , (u)int32 , (u)int64 , uintptr 2^0=1 , 2^1=2 , 2^2=4 个 字节 长度的整型,包括有符号整型和无符号整型以及 uintptr 类型的指针类型,默认初始化零值 0 . byte(uint8) , rune(int32) , string byte 是最基础 字节 类型,是 uint8 类型的 别名 ,而 rune 是 Go 中的 字符 类型,是 int32 的别名.最常用的字符串类型 string 应该不用介绍了吧? float32 , float64 ,

ES6—— iterator和for-of循环

帅比萌擦擦* 提交于 2019-11-27 19:32:47
Iterator 遍历器的作用: 为各种数据结构,提供一个同意的,简便的访问接口。 是的数据结构的成员能够按某种次序排列。 ES6 新增了遍历命令 for...of 循环,Iterator接口主要供 for...of 消费。 1、手写Iterator接口。   const arr=[ 1,2,3 ];   function iterator(arr){     let index=0;     return {       return index<arr.length?{value:arr[index++],done:false}:{value:undefined,done:true}     }   }   const it=iterator(arr);   console.log(it.next());   console.log(it.next());   console.log(it.next());   console.log(it.next()); ///第四条 输出 undefined 2、凡是具有 Symbol.iterator 属性的数据结构都具有 Iterator 接口。   const arr=[1,2,3];   const set=new Set(["a","b","c"]);   const map = new Map([["a":1]]);  

Java初学心得(二)

主宰稳场 提交于 2019-11-27 19:06:11
数组概述 一,数组基本操作 ①一维数组的创建: 数组元素类型[] 数组名字=new 数组类型[数组元素个数]   例:int []arr=new int[5];数组长度为5 ②初始化一维数组:第一种:int []arr=new int[]{1,2,3,5,25}  第二种:int []arr={34,2,1,3}; ③二维数组的创建: 数组元素类型 [][]数组名字=new 数组元素类型[第一维长度][第二维长度] ④二维数组初始化:类型 arr[][]={v1,v2,v3....};创建成功后每个元素初值为0 ⑤填充替换数组: fill(int []a,int value) ,将value的值赋值给数组每个元素; fill(int []a,int begin,int end,int v) 区段赋值,从begin到end赋值给v ⑥数组排序: Arrays.sort(数组名称) ⑦复制数组: copyOf(数组名,int 长度) 返回新数组,复制指定区间数组: copyOfRange(数组名,begin,end) 从begin下标开始到end-1下标复制到新数组,返回新数组。 ⑧数组查询:在查询之前需对 数组进行sort排序 ,之后用 Arrays.binarySearch(数组名,搜索值) 返回数组下标,在指定范围内搜索: Arrays.binarySearch(数组名