array

numpy 数组集合运算及下标操作

我的梦境 提交于 2019-12-06 12:37:17
1. 数组的集合运算 1.1. 并集 np.union1d(a,b)计算数组的并集: In [1]: import numpy as np In [2]: a = np.array([1,2,3]) In [3]: b = np.array([3,4,5]) In [4]: np.union1d(a,b) Out[4]: array([1, 2, 3, 4, 5]) 1.2. 交集 np.intersect1d(a,b)计算数组的交集: In [10]: import numpy as np In [11]: a = np.array([2,3,4,5]) In [12]: b = np.array([3,5,6]) In [13]: np.intersect1d(a,b) Out[13]: array([3, 5]) 1.3. 差集 np.setdiff1d(a,b)计算结果为a集合减去b集合,也就是剩下没有在b中出现的元素: In [15]: import numpy as np In [16]: a = [1,1,2,2,3,4,5] In [17]: b = [2,5] In [18]: np.setdiff1d(a,b) Out[18]: array([1, 3, 4]) 1.4. 异或 np.setxor1d(a,b)计算a、b集合的异或结果。 In [15]:

调整数组顺序使奇数位于偶数前面(python)

浪尽此生 提交于 2019-12-06 11:41:44
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 方法1:冒泡 O(N^2) 1 # -*- coding:utf-8 -*- 2 class Solution: 3 def reOrderArray(self, array): 4 def help(): 5 for i in range(len(array)): 6 if array[i]%2==1: 7 continue 8 j = i 9 while j < len(array)-1: 10 if array[j]%2 == 0 and array[j+1]%2!=0: 11 array[j],array[j+1]=array[j+1],array[j] 12 j+=1 13 help() 14 help() 15 return array 方法2:双端队列O(N) 1 # -*- coding:utf-8 -*- 2 from collections import deque 3 class Solution: 4 def reOrderArray(self, array): 5 d = deque() 6 for i in range(len(array)): 7 if array[i]%2=

JavaScript数组方法

本小妞迷上赌 提交于 2019-12-06 06:58:38
前言 从事前端到现在也有快两年了,平时也会收集整理一些笔记放在印象笔记,不过收集过之后就在没有看过,经大佬指点,真正掌握一个知识点,最好的方式就是用自己的话把内容讲明白,就开始将以前零散的东西整合一下,和各位道友一起提高。 操作数组 印象中数组有很多方法,系统的整理一下 Array.map() 此方法是将数组中的每个元素调用一个提供的函数,结果作为一个新的数组返回,并没有改变原来的数组 let arr = [1, 2, 3, 4, 5] let newArr = arr.map(x => x*2) //arr= [1, 2, 3, 4, 5] 原数组保持不变 //newArr = [2, 4, 6, 8, 10] 返回新数组 Array.forEach() 此方法是将数组中的每个元素执行传进提供的函数,没有返回值,直接改变原数组,注意和map方法区分 let arr = [1, 2, 3, 4, 5] num.forEach(x => x*2) // arr = [2, 4, 6, 8, 10] 数组改变,注意和map区分 Array.filter() 此方法是将所有元素进行判断,将满足条件的元素作为一个新的数组返回 let arr = [1, 2, 3, 4, 5] const isBigEnough => value => value >= 3 let newArr = arr

23.Java基础_ArrayList类

隐身守侯 提交于 2019-12-06 06:44:07
ArrayList类的构造和使用方法 1 import java.util.ArrayList; 2 public class test { 3 public static void main(String[] args) { 4 ArrayList<String> array=new ArrayList<>(); 5 System.out.println(array); //[] 6 //add 加到末尾 7 array.add("hello"); 8 array.add("world"); 9 array.add("java"); 10 System.out.println(array); //[hello, world, java] 11 //add 插入 12 array.add(0,"javase"); 13 System.out.println(array); //[javase, hello, world, java] 14 } 15 } ArrayList类常用方法: 来源: https://www.cnblogs.com/NiBosS/p/11966272.html

矩阵结合律的证明-2019.11.29

半世苍凉 提交于 2019-12-06 02:57:57
学习日志—矩阵 矩阵的乘法 证明矩阵乘法的结合律,即证A(BC)=(AB)C 先令出三个矩阵 A_{m n}; B_{n p}; C_(p*q) 先看等式右边(AB)C 新矩阵第i行第j列的元素就是AB相乘后的第i行与C的第j列各元素相乘的和 A的第i行乘以B的第1列如下: \begin{equation} \left[ \begin{array}{cccc} a_{i1} & a_{i2} & … & a_{in} \end{array} \right ] \left[ \begin{array}{c} b_{11}\ b_{12}\ ... \ b_{1n} \end{array} \right ] \end{equation} 所以AB的第i行的n个元素就是A的第i行乘上B的每一列。(AB)C的第(i,j)个元素计算如下: \begin{equation} (AB)C_{(i,j)} = (\sum_{r=1}^n a_{ir}b_{r1}, \sum_{r=1}^n a_{ir}b_{r2}, …, \sum_{r=1}^n a_{ir}b_{rp}) \left( \begin{array}{c} c_{1j}\ c_{2j}\ …\ c_{rj} \end{array} \right) \ =c_{1j}(\sum_{r=1}^n a_{ij}b_{ij})+ c_

剑指Offer-28.数组中出现次数超过一半的数字(C++/Java)

半腔热情 提交于 2019-12-06 02:47:00
题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 分析: 可以先假设数组中有超过数组长度一半的元素,找到这个元素,然后再验证。 对数组进行排序,如果有一个数字出现的次数超过数组长度的一半,那么这个元素一定是数组长度/2索引位置的那个元素,再遍历数组,统计出现的次数是否大于一半即可。 还可以利用投票法,当下一个元素与上一个元素相同时,计数+1,不同时计数-1,计数为0时重新记录数字,如果存在超过一半的元素,那么就一定是最后所记录的元素,同样的遍历数组验证一下就可以了。 程序: C++ class Solution { public: int MoreThanHalfNum_Solution(vector<int> numbers) { int count = 0; int res = 0; for(int num:numbers){ if(count == 0) res = num; if(num == res) count++; else count--; } count = 0; for(int num:numbers){ if(num == res) count++; } return count >

LeetCode_443. String Compression

半腔热情 提交于 2019-12-06 02:23:33
443. String Compression Easy Given an array of characters, compress it in-place . The length after compression must always be smaller than or equal to the original array. Every element of the array should be a character (not int) of length 1. After you are done modifying the input array in-place , return the new length of the array. Follow up: Could you solve it using only O(1) extra space? Example 1: Input: ["a","a","b","b","c","c","c"] Output: Return 6, and the first 6 characters of the input array should be: ["a","2","b","2","c","3"] Explanation: "aa" is replaced by "a2". "bb" is replaced

js 判断是不是空、值是否存在

删除回忆录丶 提交于 2019-12-06 00:22:33
判断数组是否存在某个值: Array.indexOf(val) > -1 //存在 (缺陷:一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1,表达起来不够直观。二是,它内部使用严格相等运算符(===)进行判断,这会导致对NaN的误判。) Array.includes(val) 判断对象是否存在某个字段: obj["key"] != undefined//(缺陷: 如果这个key定义了,并且就是很2的赋值为undefined) !("key" in obj) obj.hasOwnProperty("key") typeof item.editFlag === "undefined" 判断是否为空 JavaScript本身没有判断一个变量是不是空值的函数,因为变量有可能是string,object,number,boolean等类型,类型不同,判断方法也不同。所以在文章中写了一个函数,用以判断JS变量是否空值,如果是undefined, null, '', NaN,false,0,[],{} ,空白字符串,都返回true,否则返回false function isEmpty(v) { switch (typeof v) { case 'undefined': return true; case 'string': if (v.replace(/(^[

Python与数据分析1

人盡茶涼 提交于 2019-12-05 23:28:58
1. numpy.mgrid 解析: >>> np.mgrid[0:5, 0:4] array([[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]], [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]]]) 2. np.meshgrid >>> nx, ny = (3, 2) >>> x = np.linspace(0, 1, nx) >>> y = np.linspace(0, 1, ny) >>> xv, yv = meshgrid(x, y) >>> xv array([[ 0. , 0.5, 1. ], [ 0. , 0.5, 1. ]]) >>> yv array([[ 0., 0., 0.], [ 1., 1., 1.]]) >>> xv, yv = meshgrid(x, y, sparse=True) # make sparse output arrays >>> xv array([[ 0. , 0.5, 1. ]]) >>> yv array([[ 0.], [ 1.]]) 3. Python中的下划线 (1)单下划线结尾_:只是为了避免与Python关键字的命名冲突。 (2)

python数据分析之numpy

冷暖自知 提交于 2019-12-05 23:27:47
源代码 1 # -*- coding: utf-8 -*- 2 """ 3 Spyder Editor 4 5 This is a temporary script file. 6 """ 7 8 import numpy as np 9 a = np.array([1, 2, 3]) 10 b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) 11 b[1,1]=10 12 print(a.shape)#3 13 print(b.shape)#(3,3) 14 print(a.dtype)#int32 15 16 import numpy as np 17 persontype = np.dtype({ 18 'names':['name', 'age', 'chinese', 'math', 'english'], 19 'formats':['S32','i', 'i', 'i', 'f']}) 20 peoples = np.array([("lisi",32,75,100, 90),("wangW",24,85,96,88.5), 21 ("ZhaoYun",28,85,92,96.5),("HuangZhong",29,65,85,100)], 22 dtype=persontype) 23 ages = peoples[:][