array

python中numpy和pandas介绍

六眼飞鱼酱① 提交于 2020-02-29 13:43:34
numpy和pandas是python中用于处理数据的两个库。 numpy介绍: numpy用于处理array,且array中数据类型必须一致。下面以代码备注的方式介绍。 #START import numpy as np v=np.array([1,2,3,4,5,6,7,8]) //array中以list的方式展现 m=np.array([[1,2,3,4,5,6,7,8], [8,7,6,5,4,3,2,1]]) h=np.array([[1,2,3,4,5,6,7,8], [8,7,6,5,4,3,2,1], [9,8,7,6,5,4,3,2]],dtype=float) //指定list中数据类型为float print(v.type) //查看array类型 print(v.shape) //查看array模型 #print(np.shape(v)) print(v.size) #print(np.size(v)) print(v.dtype) #END #START import numpy as np ##如下是一个三行四列的array #[1,2,3,4] #[2,3,4,5] #[3,4,5,6] #shape(3,4) a=np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6]]) b=a[0:2,1:3] //array切分操作

剑指offer:030 连续子数组的最大和 附:java实现

爱⌒轻易说出口 提交于 2020-02-29 10:01:25
题目描述 连续子数组的最大和 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1) 思路: 我们可以遍历数组: 要考虑三种情况: 1.全是负数 则 直接比较 谁大 2.全是正数 则 累加 3.有正有负 则从第一个不是负数开始累加,期间保存最大值。如果累加出现了负数 则重新开始从下一个正数重新开始累加 java实现 public class Solution { public int FindGreatestSumOfSubArray(int[] array) { if (array.length==0 || array==null) { return 0; } int curSum=0; int greatestSum=0x80000000; //32位最小值 避免全是-1的情况 for (int i = 0; i < array.length; i++) { if (curSum<=0) { /

吴恩达机器学习代码及相关知识点总结--ex3(1.神经网络)

﹥>﹥吖頭↗ 提交于 2020-02-28 21:07:18
python矩阵乘积运算(multiply/maumul/*/@)解析 1.加载数据 def load_data ( path , transpose = True ) : data = sio . loadmat ( path ) y = data . get ( "y" ) #before reshape:(5000, 1) y = y . reshape ( y . shape [ 0 ] ) X = data . get ( "X" ) #(5000,400),(400,) if transpose : #向量化,让每列为一个样本变为每行是一个样本? X = np . array ( [ im . reshape ( ( 20 , 20 ) ) . T for im in X ] ) X = np . array ( [ im . reshape ( 400 ) for im in X ] ) #将样本展开为原来的(400,) return X , y X , y = load_data ( 'code/ex3-neural network/ex3data1.mat' ) print ( X . shape ) print ( y . shape ) (5000, 400) (5000,) 2.画图 def plot_an_image ( image ) : fig ,

剑指offer:028 数组中出现次数超过一半的数字 附:java实现

偶尔善良 提交于 2020-02-28 14:35:18
题目描述 数组中出现次数超过一半的数字 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路: java实现: import java.util.HashMap; public class Solution { public int MoreThanHalfNum_Solution(int [] array) { HashMap<Integer,Integer> hashmap=new HashMap<>(); for(int i=0;i<array.length;i++){ Integer tmp=hashmap.get(array[i]); if(tmp==null){ hashmap.put(array[i], 1); tmp=1; }else{ hashmap.put(array[i], tmp+1); //累计 } if(tmp+1>array.length/2) return array[i]; //超出一半 返回 } return 0; } } 来源: CSDN 作者: 墨予 链接: https://blog.csdn.net/qq_42139889/article/details/104550340

Scala学习-集合相关操作

若如初见. 提交于 2020-02-27 23:11:21
接下来记录下scala中集合相关的知识,scala中集合分为可变集合和不可变集合,有Array、List、Set、Map和Tuple。 不可变 可变 数组Array Array ArrayBuffer 列表List List ListBuffer 散列Set immutable.Set mutable.Set 映射Map immutable.Map mutable.Map 元祖 Tuple 为了理解的方便,使用交互式方式REPL来完成。 数组 (1)定义一个定长数组。 scala> val a1=Array(4,1,2,5) a1: Array[Int] = Array(4, 1, 2, 5) scala> val a2=new Array[Int](4) a2: Array[Int] = Array(0, 0, 0, 0) (2)定义一个变长数组。 scala> val a3=scala.collection.mutable.ArrayBuffer(1,2,3,4) a3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3, 4) //1 添加一个元素 scala> a3+=5 res1: a3.type = ArrayBuffer(1, 2, 3, 4, 5) //2 添加一个元素 scala> a3

面试题04:二维数组中的查找

☆樱花仙子☆ 提交于 2020-02-27 23:00:12
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路 通过每一行从左到右都是递增的,每一列从上到下也是递增的,可以去通过比较数字大小,来删除某一列或者某一个行。 将二维数组想象成矩阵。从数组的右上角数字 m 开始。 如果 m == target,那么说明数组中含有该整数,直接返回 true。 如果不相等,那么继续比较。 如果 m > target 成立,那么根据题意,m 所在那一列的所有数字都是比 target 大的,那么可以去除该列,然后继续取右上角的数字为 m。 如果 m < target 成立,那么根据题意,m 所在哪一行的所有数字都是比 target 小的,那么可以去除该行,然后继续取右上角的数字为 m。 去反复判断,直至所有的数字都不等于 target,那么返回 false。 代码 public class Solution { public boolean Find(int target, int [][] array) { if (array == null || array.length <= 0 || array[0].length <= 0) { return false; } // 获取行数 int

最长递增子序列

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-27 13:00:30
问题描述: 求数组中最长递增子序列 例如: 1,-1,2,-3,4,-5,6,-7 最长递增子序列为:1,2,4,6 问题解决: 对于这类最优化问题,可以考虑使用动态规划,需要查看问题是否满足动态规划的最优化原理和无后效性。显然最长递增子序列中的部分子序列也是最长递增子序列,满足最优化原理 无后效性,对于最长递增子序列中的元素,其前面的元素,不会影响到其后的元素,满足无后效性,因此可以使用动态规划。 方法一: 将数组从小到大排序,设为arrayB,求解原数组arrayA的最长递增子序列的问题转换为求解arrayA与arrayB的 最长公共子序列 ,复杂度O(nlogn+n^2)=O(n^2) 方法二: 设数组array[]中前i个元素的最长递增子序列长度为LIS[i],那么 LIS[i+1]=max{1,LIS[k]+1},for any k<=i & array[i+1]>array[k] 方法三: 方法二考察第i+1个元素时没有考虑前i个元素的分布,现在考虑前i个元素的分布。假设LIS[i]表示数组array[]中前i个元素最长递增子序列长度,MaxV[j],表示长度为j的所有递增子序列中最大值的最小值,那么: 对前i个元素的任何一个递增子序列,如果这个子序列的最大元素比array[i+1]小,则将array[i+1]添加到该子序列中,构成一个新的递增子序列。 具体实现: /*

Second-Order Cone Programming(SOCP) 二阶锥规划

不问归期 提交于 2020-02-27 10:48:59
个人博客 Glooow ,欢迎各位老师来踩踩 文章目录 1. 二阶锥 1.1 二阶锥定义 1.2 二阶锥约束 2. 优化问题建模 3. 类似问题转化 3.1 二次规划 3.2 随机线性规划 4. 问题求解 1. 二阶锥 1.1 二阶锥定义 在此之前,先给出 二阶锥 的定义。 在 k k k 维空间中二阶锥 (Second-order cone) 的定义为 C k = { [ u t ] ∣ u ∈ R k − 1 , t ∈ R , ∥ u ∥ ≤ t } \mathcal{C}_{k}=\left\{\left[\begin{array}{l} {u} \\ {t} \end{array}\right] | u \in \mathbb{R}^{k-1}, t \in \mathbb{R},\|u\| \leq t\right\} C k ​ = { [ u t ​ ] ∣ u ∈ R k − 1 , t ∈ R , ∥ u ∥ ≤ t } 其也被称为 quadratic,ice-cream,Lorentz cone。 1.2 二阶锥约束 在此基础上, 二阶锥约束 即为 ∥ A x + b ∥ ≤ c T x + d ⟺ [ A c T ] x + [ b d ] ∈ C k \|A x+b\| \leq c^{T} x+d \Longleftrightarrow\left[

LeetCode:15. 3Sum 三数之和(C语言)

一个人想着一个人 提交于 2020-02-27 00:47:34
题目描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/3sum 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 解答: /** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *returnColumnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free(). */ # define LEN 0xffff int comp ( const void * a , const void * b ) { return * ( int * ) a - * (

BNDS_CS_alevel

对着背影说爱祢 提交于 2020-02-26 23:17:50
array=input() def strToList(array): array = array.split(',') for i in range(len(array)): array[i] = float(array[i]) return array def average(array): avg = 0 n = len(array) for i in range(n): avg += array[i] avg/= n return (avg) array = strToList(array) print(average(array)) 来源: CSDN 作者: JEDICORY 链接: https://blog.csdn.net/weixin_46204363/article/details/104524430