arr

JS数组总结

匿名 (未验证) 提交于 2019-12-02 22:56:40
我们在数据处理的时候经常会用到数组,下面是我对数组的一些总结。 什么是数组:储存多个数据,并提供操作数据的API的对象 数组根据下标可以分为索引数组和关联数组。 索引数组 索引数组 :下标都是数字的数组 如何创建索引数组 : var arr = ["吴白彬","23"]; 如何访问 :arr[0]; 关联数组 关联数组 :下标都是自定义名称的数组 关联数组可以让每个元素都有专门的名称,更便于维护和快速查找 如何创建关联数组 : 2、向数组中添加新的元素,使用自定义的下标名称: arr["name"] = "吴白彬"; arr["age"] = 23; 如何访问 :和索引数组中的元素,变量的用法一样(.length:失效,永远为0) 索引数组和关联数组的优缺点 : 索引数组:只能靠遍历查找,受元素个数和元素储存位置的影响极大,但创建简单 关联数组:查找极快,因为是通过下标定位元素位置,查找速度与元素的个数及元素的储存位置无关,但创建麻烦 数组API 什么是API:就是别人写好的程序,我们直接拿过来用 将数组转字符串: 1、String(arr); 将arr中每个元素都转为字符串,默认用逗号连接。(拍照) 什么时候用String():查看数组的中间修改状态,判断是否发生了变化 2、arr.join("自定义连接符"); 将arr中每个元素都转为字符串,可自定义连接符。 什么时候用arr

python编程精要(3)---numpy中的transpose

匿名 (未验证) 提交于 2019-12-02 22:54:36
numpy中最难理解的就是轴的transpose(转置)了,下面用实例说明它是如何进行转置的。 传给transpose的参数是以轴编号组成的元组,返回的结果是源数据是视图,而不是拷贝,即对transpose的修改都会反应到原始数据上。 另外注意下,因为上一节刚讲了引用和拷贝,而且也说了“python中的赋值操作一般都是储存对象的引用,而不是这些对象的拷贝 ”,但是numpy本来就是被设计用来处理大数据的,为了提升效率,所以numpy中的大部分都是对原始视图的操作。 arr = np.arange( 16 ).reshape(( 2 , 2 , 4 )) #2,2,4分别对应0,1,2轴 print( "arr:" ) print(arr.shape) print(arr) out arr: ( 2 , 2 , 4 ) [[[ 0 1 2 3 ] [ 4 5 6 7 ]] [[ 8 9 10 11 ] [ 12 13 14 15 ]]] arr2 = arr.transpose(( 1 , 0 , 2 )) #这里就是对应的轴编号。 print( "1和0轴转换后:" ) print(arr2) out 1 和 0 轴转换后: [[[ 0 1 2 3 ] [ 8 9 10 11 ]] [[ 4 5 6 7 ] [ 12 13 14 15 ]]] 这里貌似看不出来它是怎么转的

萌猿纵横字谜引擎实现过程

独自空忆成欢 提交于 2019-12-02 22:54:10
1.全部 txt 文件的方法。这个方法没有参数,返回一个全局变量 ranks ( int 型),记录读到的 txt 文件数,作为关卡总数,并把读到的 ranks 个 txt 文件中的数据放到两个字典中,字典“ arrstorage ”的 key 为关卡序数,值为一个字符串数组,字符串数组代表了一个关卡需要的矩阵(稍后首先,进入游戏之后,我们在 app.js 中写了一个从服务器指定地址获取一个文件夹中的解释这个矩阵的作用);字典“ tipsstorage ”中 key 与字典“ arrstorage ”的 key 保持一致,值为一个字符串。并把这两个字典置于缓存池中。 txt 文件格式如下图: 0000000000000 0000200003000 0001abstract0 0000r0000d000 0000r0000d000 0000a0000r000 0000y0000e000 000000000s000 000000000s000 0000000000000 0000000000000 0000000000000 0000000000000 1 把 ... 抽象出来;提出;抽出 v 2 数组;一系列 n 3 编址;寻址 v 两个字典内容示例如下: Arrstorage = {1 : [ ‘0000000000000’, ‘0000200003000’,

Python堆排序

匿名 (未验证) 提交于 2019-12-02 22:51:30
def adjust_deap(arr, p, b): while True: if 2 * p + 1 > b - 1: break elif 2 * p + 2 < b and arr[2 * p + 2] > arr[2 * p + 1] and arr[2 * p + 2] > arr[p]: arr[p], arr[2 * p + 2] = arr[2 * p + 2], arr[p] p = 2 * p + 2 elif arr[2 * p + 1] > arr[p]: arr[p], arr[2 * p + 1] = arr[2 * p + 1], arr[p] p = 2 * p + 1 else: break return arr def create_heap(arr): m = len(arr) / 2 - 1 while m > -1: arr = adjust_deap(arr, m, len(arr)) m -= 1 return arr def heap_sort(arr): m = len(arr) - 1 while m: arr[0], arr[m] = arr[m], arr[0] arr = adjust_deap(arr, 0, m) m -= 1 return arr a = [4, 2, 4, 7, 5, 3, 6, 8, 9, 35,

python+VBA实现照片转Excel

匿名 (未验证) 提交于 2019-12-02 22:51:30
原视频链接: https://www.bilibili.com/video/av55033139 感谢up主: 幽蓝伊梦 本人Excel不是很了解,照着up视频瞄着写竟然还错了,弄了好半天才成功。一定记得 python代码,照片转RGB数值存储 from PIL import Image # 打开图片 imload = Image.open(r'C:\Users\Faye\Desktop\1.jpg') # 转换为RGB im = imload.convert('RGB') w,h = im.size # 追加写方式写文件 demo = open('rgb.txt','a') # 一行一行输出 for y in range(h): for x in range(w): # 获取对应想书店的rgb值 rgb = im.getpixel((x,y)) rgb = str(rgb) # 把rgb值写入文件 demo.write(rgb[1:-1]+'\t') demo.write('\n') demo.close() 把rgb.txt文件拖到Excel打开 fff.png Excel操作 全选区域 aaa.png 让行高和列宽都相等,设置宏 a.png 代码在这 Dim r As Range, arr For Each r In Range("A:xxx") arr = Split(r,

学习python的第二十二天(numpy模块(对矩阵的处理,ndarray对象)

匿名 (未验证) 提交于 2019-12-02 22:51:30
import numpy as np 约定俗称要把他变成np https://docs.scipy.org/doc/numpy/reference/?v=20190307135750 1.np.array import numpy as np #创建一维的ndarray对象 arr = np.array([1, 2, 3]) print(arr) #[1 2 3] #创建二维的ndarray对象 arr = np.array([[1, 2, 3], [4,5,6]]) print(arr) ''' [[1 2 3] [4 5 6]] ''' #创建三维的ndarray对象 arr = np.array([[[1, 2, 3],[3,2,1]], [[4,5,6],[6,5,4]]]) print(arr) ''' [[[1 2 3] [3 2 1]] [[4 5 6] [6 5 4]]] ''' #我们可以这样理解.其实内这个可以相当于几何里面的,点,线,面,里面各个元素相当一个点,一个列表里面有几个元素相当于线也就是一维,然后列表里面套列表相当于线,以此类推 import numpy as np arr = np.array([[1, 2, 3], [4,5,6]]) print(arr.shape) #(2, 3) # (矩阵的行数,矩阵的列数) import numpy as

c++中vector容器详解

馋奶兔 提交于 2019-12-02 22:47:44
vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全部元素移到这个数组。就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,vector并不会每次都重新分配大小。vector分配空间策略:vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。但是无论如何,重新分配都应该是对数增长的间隔大小,以至于在末尾插入一个元素的时候是在常数时间的复杂度完成的。因此,vector占用了更多的存储空间,为了获得管理存储空间的能力,并且以一种有效的方式动态增长。与其它动态序列容器相比(deques, lists and forward_lists), vector在访问元素的时候更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。比起lists和forward_lists统一的迭代器和引用更好。 1.vector声明及初始化

简单去重比较

血红的双手。 提交于 2019-12-02 22:27:21
准备测试代码: const arr1 = Array.from (new Array (100000), (item, index) => { return index; }); const arr2 = Array.from (new Array (50000), (item, index) => { return index * 2; }); console.log ('开始测试'); const start = new Date().getTime(); distinct(arr1, arr2); // 去重方法 const end = new Date ().getTime (); console.log ('测试结束'); console.log ('测试时间' + (end - start) / 1000 + 's'); 一:filter + indexOf function distinct(arr1, arr2) { console.log('filter + indexOf'); const arr = [...arr1, ...arr2]; return arr.filter((item, index) => { return arr.indexOf(item) === index; }); } 效果:时间11s 二:双重循环,删除(splice)重复项

NumPy 学习笔记(四)

匿名 (未验证) 提交于 2019-12-02 22:11:45
NumPy 算术函数:    1、 numpy.reciprocal(arr) 返回参数逐个元素的 倒数   2、 numpy.power(one, two) 幂 ,即 one^two   3、 numpy.mod(x1, x2) 计算输入数组中相应元素的 余数 ,函数 numpy.remainder(x1, x2) 也产生相同的结果 import numpy as np arr = np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]) print("reciprocal arr: ", np.reciprocal(arr)) print("power by 2: ", np.power(arr, 2)) print("mod by arr.T: ", np.mod(arr, arr.T)) print("remainder by arr.T: ", np.remainder(arr, arr.T)) NumPy 统计函数:   1、 numpy. amax (a, axis=None, out=None, keepdims=<no value>, initial=<no value>) max (a, axis=None, out=None, keepdims=<no value>, initial=<no value>)

jQuery 事件函数传参异常identifier starts immediately after numeric literal

匿名 (未验证) 提交于 2019-12-02 21:53:52
问题情境:   var arr=[aabbcc,112233];   var html = "";   for(var i =0;i<arr.length;i++){     html += '<li id="'+arr[i]+'" onclick="select('+arr[i]+')">helloworld</li>'   }   $("ul").append(html);   function select(id){     var identifier = "#" + id;      $(identifier).html(); //抛异常的位置    } 分析:   jQuery的ID选择器要用的是字符串,当传给ID选择器的是数字时会抛异常。将参赛改为字符串即可。 更正:   循环体中的onclick="select('+arr[i]+')"改为onclick="select(\''+arr[i]+'\')"。\是转义符,用单引号将参数包裹起来。 文章来源: jQuery 事件函数传参异常identifier starts immediately after numeric literal