arr

NumPy 学习笔记(一)

微笑、不失礼 提交于 2019-11-29 14:46:15
NumPy:   1、NumPy 是一个功能强大的第三方库(需要自己安装),主要用于对多维数组执行计算;     它提供了大量的库函数和操作,可以帮助程序员更轻松地进行数值计算   2、可以和另外两个第三方库 SciPy 和 Matplotlib 一起使用从而在一定程度上替换对 Matlab 的使用   3、主要应用:     ①数学运算:NumPy 对于执行各种数学运算非常有用,如数值积分、微分、内插、外推以及矩阵的内积、外积、特征向量等。     ②图像处理和计算机图形学:计算机中的图像表示为多维数字数组。NumPy 成为同样情况下最自然的选择。      实际上,NumPy 提供了一些优秀的库函数来快速处理图像。例如,镜像图像、按特定角度旋转图像等     ③ 机器学习模型:在编写机器学习算法时,需要对矩阵进行各种数值计算。例如矩阵乘法、换位、加法等 NumPy 数组:   1、NumPy 提供最重要的数据结构是一个称为 ndarray 的 N 维数组类型。 它描述 相同类型 的元素集合, NumPy 数组是通常的 Python 数组的扩展     ndarray 配备了大量的函数和运算符,可以帮助我们快速编写各种类型计算的高性能代码 , 每个元素在内存中使用 相同大小 的块   2、NumPy 数组的创建方法:     ①从其他 python 数据类型(如:列表、元组等

在php中操作mysql数据库

两盒软妹~` 提交于 2019-11-29 14:03:49
在前后端的交互中,我们可能会用到用php来操作mysql数据库,以下整理了其步骤。 首先我们得有一个自己的数据库,在这里我的数据库名称为mystu。 1、 想建立php文件和数据库的连接,首先我们要在php文件中登录数据库,通过 mysqli() 的方法,代码如下: $link = @new mysqli("localhost:3306","root","root","mystu"); mysqli() 方法接收四个参数,第一个是地址,第二个人和第三个分别为用户名和密码,第四个是要操作的数据库的名称。 2、 向mysql数据库发送命令  $q = "SELECT * FROM mystu"; $res = $link->query($q); 这里定义一个变量用来存放你所需要对数据库执行的命令,再通过 $link->query($q) 发送给数据库。 3、 解析返回的数据 while($arr = $res->fetch_assoc()){ print_r($arr); // echo json_encode($arr); echo $arr["sex"]; echo "<br>"; } 解析返回的数据,通过 fetch_assoc() 方法,可以将返回的数据解为出关联数组,每次只会解析出一个数组,可以通过循环将数据库中的数据都遍历出来。 来源: https://www

php数组打乱顺序

流过昼夜 提交于 2019-11-29 13:59:55
shuffle() PHP shuffle() 函数随机排列数组单元的顺序(将数组打乱)。本函数为数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。 语法: bool shuffle ( array &array ) 例子1: <?php $arr = range(1,8); print_r($arr); echo '<br />'; shuffle($arr); print_r($arr); ?>    输出: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 ) Array ( [0] => 6 [1] => 1 [2] => 3 [3] => 2 [4] => 5 [5] => 7 [6] => 8 [7] => 4 )   需要说明的是,每次刷新页面,shuffle($arr) 后的 print_r($arr) 结果都是不一样的。而自 PHP 4.2.0 起,也不再需要用 srand() 等函数给随机数发生器播种而由系统自动完成。 例子2:使用关联数组 <?php $arr = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5); shuffle($arr); print_r($arr); ?>    输出:  

动态规划

橙三吉。 提交于 2019-11-29 13:33:39
题目:求解一个数组中不相邻元素的最大和 分析:首先从最后一个元素开始分析,如果选最后一个元素的话,就不能选倒数第二个元素,这时要考虑OPT(n)=max(OPT(n-2)+arr[n], OPT(n-1)),这个就是递归的公式,然后设计递归出口,当n=1时 上面的式子不成立,OPT(1)=max(arr[0],arr[1]),当n=2时,OPT[2] = max(arr[0],arr[1]) 递归代码 arr = [1,2,4,1,7,8,3] def rec_opt(arr,i): if i==0: return arr[0] elif i==1: return max(arr[0],arr[1]) else: A = rec_opt(arr,i-2)+arr[i] B = rec_opt(arr,i-1) return max(A,B) res = rec_opt(arr,6) print(res) 动态规划解法 设计一个数组,从头到尾计算OPT,并保存在数组内 import numpy as np def dp_opt(arr): opt = np.zeros(len(arr)) opt[0] = arr[0] opt[1] = max(arr[0],arr[1]) for i in range(2,len(arr)): A = opt[i-2]+arr[i] B = opt

图的入门(一)

前提是你 提交于 2019-11-29 13:12:34
图的表示方法: 邻接表,邻接矩阵 类型:有向图,无向图 节点信息:入度,出度,节点值,连接的节点,连接的边 package day7; import java.util.ArrayList; public class Node { public int value; public int in; public int out; public ArrayList<Node> next; //这里是list public ArrayList<Edge> edge; public Node(int value) { this.value = value; this.in = 0; this.out = 0; this.next = new ArrayList<>(); this.edge = new ArrayList<>(); } } View Code 边信息:边权重,from的节点,to的节点 package day7; public class Edge { public int value; public Node from; public Node to; public Edge(int value,Node from ,Node to) { this.value = value; this.from = from; this.to = to; } } View Code 图

丑数

不羁的心 提交于 2019-11-29 12:33:12
把只包含因子 2、3 和 5 的数称作丑数。例如 6、8 都是丑数,但 14 不是,因为它包含因子 7。习惯上我们把 1 当做是第一个丑数。求按从小到大的顺序的第 N 个丑数。 思路: 链接: https://www.nowcoder.com/questionTerminal/6aa9e04fc3794f68acf8778237ba065b?f=discussion 来源:牛客网 通俗易懂的解释: 首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个丑数乘以2或者乘以3或者乘以5得到,那么我们从1开始乘以2,3,5,就得到2,3,5三个丑数,在从这三个丑数出发乘以2,3,5就得到4,6,10,6,9,15,10,15,25九个丑数,我们发现这种方法会得到重复的丑数,而且我们题目要求第N个丑数,这样的方法得到的丑数也是无序的。那么我们可以维护三个队列: (1)丑数数组: 1 乘以2的队列:2 乘以3的队列:3 乘以5的队列:5 选择三个队列头最小的数2加入丑数数组,同时将该最小的数乘以 2,3,5 放入三个队列; (2)丑数数组:1,2 乘以2的队列:4 乘以3的队列:3,6 乘以5的队列:5,10 选择三个队列头最小的数3加入丑数数组,同时将该最小的数乘以 2,3,5 放入三个队列; (3

python-数据分析模块numpy-pandas

爱⌒轻易说出口 提交于 2019-11-29 11:47:38
目录 numpy 模块 创建矩阵方法: 获取矩阵的行列数 切割矩阵 矩阵元素替换 矩阵的合并 通过函数创建矩阵 矩阵的运算 pandas模块 series (一维列表) DataFrame DataFrame属性 DataFrame取值 读取CSV文件 处理丢失数据 numpy 模块 numpy属于第三方库,需要下载安装。 numpy库有两个作用: 区别于list列表,提供了数组操作、数组运算、以及统计分布和简单的数学模型; 计算速度快 创建矩阵方法: import numpy as np #np是约定俗称将numpy简写 np.array() # 创建矩阵 一维矩阵 一维矩阵就相当于列表 arr =np.array([1,2,3]) print(arr) [1 2 3] 二维矩阵 arr = np.array([[1,2,3],[1,2,3]]) print(arr) [[1 2 3] [1 2 3]] 三维矩阵 arr = np.array([[[1,2,3],[1,2,3]],[[1,2,3],[1,2,3]]]) print(arr) [[[1 2 3] [1 2 3]] [[1 2 3] [1 2 3]]] 获取矩阵的行列数 arr = np.array([[12,23,4],[12,3,4]]) print(arr) [[12 23 4] [12 3 4]] print

URL Rewrite of a subdirectory to a different domain using IIS

喜欢而已 提交于 2019-11-29 11:41:56
GOAL #1: www.web1.com/web2 needs to point to www.web2.com GOAL #2: Users must always see www.web1.com/web2 and the paths & queries in web2 For example: www.web1.com/web2/login OR www.web1.com/web2/?query=string www.web1.com is on IIS6 (using ISAPI Rewrite) www.web2.com is on IIS8 (using URL Rewrite & ARR) Can someone guide me on how I should go about this? ======================= On web1, I used the following: RewriteCond %{HTTP_HOST} ^www.web1.com$ RewriteRule ^/web2/?$ www.web2.com [NC,P,R=301,L] On web2, I setup an ARR server farm and have created an inbound rule. However, when I pull www

纯JS实现在一个字符串b中查找另一个字符串a出现的所有位置,并且不使用字符串的方法(递归)

谁说我不能喝 提交于 2019-11-29 10:33:40
问题:判断字符串A在中所有出现字符串B中(长度大于1)的索引。不得使用字符串方法indexof,substring等    有小伙伴在面试遇到了这个问题,乍一看如果使用使用字符串方法indexof,substring,很简单容易实现,但如果不使用这些方法,怎么样才能实现这个需求呢     // 思路: 如果不能使用字符串的相应方法,我们可以把字符串转换成数组,使用递归函数不断去比对相应的数组索引,然后把满足条件的索引打印出来,其实很多现在前后端交互处理数据的方法,用的都是递归偏多,千万别小瞧递归! 话不多说,我们先上解决问题的方法: <script> // 其实很多现在前后端交互处理数据的方法,用的都是递归变多,千万别小瞧递归 // 思路: 不能使用字符串的相应方法,我们可以把字符串转换成数组,首先使用递归不断去比对相应的数组索引 // 随机的字符 var str1 = 'adfacddtgjacbasaclsaacdctacw'; // 条件筛选的字符 var str2 = 'basaclsa'; // 把相应的字符串转换为数组 var arr1 = str1.split(''); var arr2 = str2.split(''); function test (arr) { // 写一个for循环,先把需要筛选的数组arr2第一个索引拿来比对 for(var i = 0; i

web前端知识体系之基础知识 -JavaScript旋转数组最小的数字

旧时模样 提交于 2019-11-29 10:28:24
1. 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为 1。 2. 解题思路 最简单的肯定是从头到尾遍历,复杂度是 O(N) 。 这种方法没有利用“旋转数组”的特性 。 借助二分查找的思想,时间复杂度可以降低到 O(log(N)) 。 可以通过以下方法确定最小值元素的位置,然后移动指针,缩小范围: 中间指针对应的元素 ≥ 左侧元素, 那么中间元素位于原递增数组中, 最小值在右侧 中间指针对应的元素 ≤ 右侧元素, 那么中间元素位于被移动的递增数组中,最小值在左侧 特殊情况,如果三者相等,那么无法判断最小值元素的位置,就退化为普通遍历即可。 3. 代码 先上一段二分查找和实现思路: /** * 二分查找 * @param {Array} arr * @param {*} elem */ function binarySearch(arr, elem) { let left = 0, right = arr.length - 1, mid = -1; while (left <= right) { // 注意是≤:考虑只剩1个元素的情况 mid = Math.floor((left + right) / 2); if