
- 定 义
- 同类数据元素的集合
- 分 类
- 一维、二维(矩阵)、三维数组
- 中文名
- 数组
- 外文名
- Array
-
Array
2018-01-25 07:50:52var arr = new Array() arr[0] = "Saab" arr[1] = "Volvo" arr[2] = "BMW" 循环 for (x in arr) { console.log(arr[x]) } concat合并数组 var arr2=arr arr.concat(arr2) join把数组变成字符串 arr....创建数组
var arr = new Array() arr[0] = "Saab" arr[1] = "Volvo" arr[2] = "BMW"
循环
for (x in arr) { console.log(arr[x]) }
concat合并数组
var arr2=arr arr.concat(arr2)
join把数组变成字符串
arr.join() #Saab,Volvo,BMW arr.join('.') #Saab.Volvo.BMW
sort对数组排序,以字符串方式
var arr=new Array(1,5,10) arr.sort() #[1, 10, 5]
sort对数组排序,以数字方式
arr.sort(sortNumber) #[1, 5, 10] function sortNumber(a, b) { return a - b }
addQuote对数组添加单引号
arrayAddQuote(new Array(1,2,4,5)) #["'1'", "'2'", "'4'", "'5'"] function addQuote(orig){ if(orig){ var desc=new Array(); for(var i=0;i<orig.length;i ){ desc.push("'" orig[i] "'"); } return desc; } return orig; }
pop,删除并返回数组的最后一个元素
arr.pop()
push,向末尾添加一个或多个元素
arr.push("James")
reverse,颠倒排序
arr.reverse()
shift,删除并返回第一个元素
arr.shift()
slice,返回一个新数组
arr.slice(1,3)
splice,删除并添加新元素
arr.splice(2,1,'a')
toString,把数组转成字符串
arr.toString()
unshift,向数组开头添加元素
arr.unshift("William")
-
python中找出numpy array数组的最值及其索引
2018-02-13 16:24:40python中找出numpy array数组的最值及其索引 在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引 但在numpy中的array没有index方法,取而代之的是where,其又是list...在list列表中,max(list)可以得到list的最大值,list.index(max(list))可以得到最大值对应的索引
但在numpy中的array没有index方法,取而代之的是where,其又是list没有的
numpy中还有argmax/argmin方法来获取最值对应的索引,但是它返回顺序查找(行优先)下的索引,也就是没有分别的行和列,而且有相同最值情况下,它只返回第一个最值的索引。
下面分别介绍一下:
首先我们可以得到array在全局和每行每列的最大值(最小值同理)
>>> a = np.arange(9).reshape((3,3)) >>> a array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>> print(np.max(a)) #全局最大 8 >>> print(np.max(a,axis=0)) #每列最大 [6 7 8] >>> print(np.max(a,axis=1)) #每行最大 [2 5 8]
然后用where得到最大值的索引,返回值中,前面的array对应行数,后者对应列数
>>> print(np.where(a==np.max(a))) (array([2], dtype=int64), array([2], dtype=int64)) >>> print(np.where(a==np.max(a,axis=0))) (array([2, 2, 2], dtype=int64), array([0, 1, 2], dtype=int64))
如果array中有相同的最大值,where会将其位置全部给出
>>> a[1,0]=8 >>> a array([[0, 1, 2], [8, 4, 5], [6, 7, 8]]) >>> print(np.where(a==np.max(a))) (array([1, 2], dtype=int64), array([0, 2], dtype=int64))
>>> a = np.arange(9).reshape((3,3)) >>> a array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>> np.argmax(a) 8 >>> a[1,0]=8 >>> a array([[0, 1, 2], [8, 4, 5], [6, 7, 8]]) >>> np.argmax(a) 3 >>> np.argmax(a, axis=0) array([1, 2, 2], dtype=int64)
所以看情况选择 ~
-
PHP 中array_map,array_walk,array_filter的区别
2019-04-22 18:49:02array_map语法格式: array_map(function($v){ //TODO }, $array); array_walk语法格式 array_walk($array, function($v, $k){ //TODO }); array_filter语法格式 array_filter($array, function($v)...array_map语法格式:
array_map(function($v){ //TODO }, $array);
array_walk语法格式
array_walk($array, function($v, $k){ //TODO });
array_filter语法格式
array_filter($array, function($v){ //TODO });
相同点:都是利用回调函数对数组中每个元素进行操作。
不同点:
- 返回值
- 回调函数的参数
- 是否改变数组的值
array_map 返回的是新数组,原数组不变(新数组和原数组的数组长度应该一样)。
array_walk 返回的布尔值,如果要改变数组元素的值,回调函数第一个参数必须是引用,如 array_walk($array, function(&$v, $k){}); , arrary_walk 的回调函数还能够接收数组的key。
array_filter 返回的是新数组,原数组不变。它的作用是过滤数组中的元素。回调函数返回真,元素才能保存到新数组中,即(新数组和原数组的数组长度可能不一样)
-
[558]python3之数组(array)
2019-03-13 18:41:22当我们需要1000万个浮点数的时候,数组(array)的效率要比列表(list)要高得多,因为数组在背后存的并不是float对象,而是数字的机器翻译,也就是字节表述。这一点和c语言中的数组一样。 再比如说,如果需要频繁对...当我们需要1000万个浮点数的时候,数组(array)的效率要比列表(list)要高得多,因为数组在背后存的并不是float对象,而是数字的机器翻译,也就是字节表述。这一点和c语言中的数组一样。
再比如说,如果需要频繁对序列做先出先进的操作,collection.deque(双端队列)的速度应该会更快。
- 1.数组
如果我们需要一个只包含数字的列表,那么array.array比list更高效。数组支持所有跟可变序列有关的操作,包括.pop,.insert和.extend。
另外,数组还提供从文件读取和存入文件的更快的方法,如.frombytes和.tofile。
Python数组跟C语言数组一样精简。创建数组需要一个类型码,这个类型码用来表示在底层的C语言应该存放怎样的数据类型。比如b类型码代表的是有符号的字符(signedchar),array(‘b’)创建出的数组就只能存放一个字节大小的整数,范围从-128到127,这样在序列很大的时候,我们能节省很多空间。
一. array 模块就是数组,可以存放放一组相同类型的数字.
Type code C Type Python Type Minimum size in bytes Notes ‘b’ signed char int 1 ‘B’ unsigned char int 1 ‘u’ Py_UNICODE Unicode character 2 (1) ‘h’ signed short int 2 ‘H’ unsigned short int 2 ‘i’ signed int int 2 ‘I’ unsigned int int 2 ‘l’ signed long int 4 ‘L’ unsigned long int 4 ‘q’ signed long long int 8 (2) ‘Q’ unsigned long long int 8 (2) ‘f’ float float 4 ‘d’ double float 8 二. array 提供的方法如下
append() -- append a new item to the end of the array buffer_info() -- return information giving the current memory info byteswap() -- byteswap all the items of the array count() -- return number of occurrences of an object extend() -- extend array by appending multiple elements from an iterable fromfile() -- read items from a file object fromlist() -- append items from the list frombytes() -- append items from the string index() -- return index of first occurrence of an object insert() -- insert a new item into the array at a provided position pop() -- remove and return item (default last) remove() -- remove first occurrence of an object reverse() -- reverse the order of the items in the array tofile() -- write all items to a file object tolist() -- return the array converted to an ordinary list tobytes() -- return the array converted to a string
如何构造一个array 对象
from array import array import random # 构造方法如下 # array.array(typecode[, initializer]) # 构造一个空的int类型数组 arr = array('i') arr = array('i', [0, 1, 2, 3, 4, 6, 7, 8, 9, 100]) array('f',[ random.randrange(-10,10) for _ in range(10)]) Out[28]: array('f', [4.0, 6.0, -9.0, 7.0, -2.0, -7.0, -7.0, -5.0, -9.0, -10.0])
- 常用方法介绍
array.typecode
用于创建数组的类型代码字符。上面的初始化数组的类型arr2 = array('d',[2.3453,4.567]) arr2.typecode 'd'
array.itemsize
内部表示中一个数组项的字节长度。array.typecodes
包含所有可用类型代码的字符串。import array array.typecodes 'bBuhHiIlLqQfd'
array.index(x) # 方法返回x 在数组中第一次出现的下标, 下标从零开始,如果没有找到该元素会报异常. ValueError: array.index(x): x not in list array.buffer_info() Return a tuple (address, length) giving the current memory address ------------------------------------------------------------------------- # remove(element) element 是要删除的元素, 该方法会删除第一次出现的元素, 如果有多次出现, 不会删除,如果希望删除所有的在array 中的元素,需要删除多次. # 如果删除 的元素的不在 array 中, 则会抛异常 ValueError: array.remove(x): x not in list arr.remove(0) arr array('i', [1, 2, 3, 4, 6, 7, 8, 9, 100, 111, 222, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) arr array('i', [2, 3, 4, 6, 7, 8, 9, 100, 111, 222, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 3, 4]) arr.remove(1) Traceback (most recent call last): File "<input>", line 1, in <module> ValueError: array.remove(x): x not in list 删除array 所有的 1 from array import array def delete_array_element(): arr = array('i', [1, 2, 1, 4, 1, 11, 1, 2, 1, 2, 0, 1, 2, 1, 4]) while 1: try: arr.remove(1) except ValueError: print('delete finished.') break print(arr) if __name__ == '__main__': delete_array_element() ------------------------------------------------------------------------- # count(x) Return the number of occurrences of x in the array. # 返回 x 在数组中出现的次数,没有该元素则返回0 arr = array('i', [1, 2, 45, 1, 1, 1, 0, 12, 1, 4]) arr.count(1) 5 arr.count(2) 1 arr.count(100) 0 ------------------------------------------------------------------------- # pop 删除元素,默认删除下标-1 的元素, 也可以指定 删除的位置 # pop(i) 指定 i 的位置 arr array('i', [3, 4, 6, 7, 8, 9, 100, 111, 222, 0, 2, 3, 4, 5, 6, 7, 8, 9]) arr.pop() 9 arr.pop() 8 arr array('i', [3, 4, 6, 7, 8, 9, 100, 111, 222, 0, 2, 3, 4, 5, 6, 7]) arr array('i', [3, 4, 6, 7, 8, 9, 100, 111, 222, 0, 2, 3, 4, 5, 6, 7]) # 删除第一个元素,并且返回该元素 arr.pop(0) 3 arr array('i', [4, 6, 7, 8, 9, 100, 111, 222, 0, 2, 3, 4, 5, 6, 7]) #删除第3个元素 , 7 arr.pop(2) 7 arr array('i', [4, 6, 8, 9, 100, 111, 222, 0, 2, 3, 4, 5, 6, 7]) ------------------------------------------------------------------------- ## insert (i,v) i 是小标, v 带插入的元素 arr = array('i', [1, 2, 1, 4, 1, 11, 1, 2, 1, 2, 0]) arr array('i', [1, 2, 1, 4, 1, 11, 1, 2, 1, 2, 0]) arr.insert(0,100) arr array('i', [100, 1, 2, 1, 4, 1, 11, 1, 2, 1, 2, 0]) arr.insert(2,200) arr array('i', [100, 1, 200, 2, 1, 4, 1, 11, 1, 2, 1, 2, 0]) ------------------------------------------------------------------------- ## append(v) # append 默认从末尾追加元素, 在数组尾部添加元素 arr =array('f',range(4)) arr array('f', [0.0, 1.0, 2.0, 3.0]) arr.append(66.66) arr.append(66.67) arr.append(66.68) arr array('f', [0.0, 1.0, 2.0, 3.0, 66.66000366210938, 66.66999816894531, 66.68000030517578]) ------------------------------------------------------------------------- # extend, 通过一个可迭代对象添加元素 arr = array('i',range(4)) arr.extend(range(10)) arr array('i', [0, 1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) ------------------------------------------------------------------------- ##fromlist 从一个列表中添加元素 l1 = list(range(5,10)) arr = array('i',range(4)) arr array('i', [0, 1, 2, 3]) l1 [5, 6, 7, 8, 9] arr.fromlist(l1) arr array('i', [0, 1, 2, 3, 5, 6, 7, 8, 9]) ------------------------------------------------------------------------- ## reverse 倒序一下,反转一下 arr array('i', [0, 1, 2, 3, 5, 6, 7, 8, 9]) arr.reverse() arr array('i', [9, 8, 7, 6, 5, 3, 2, 1, 0]) ------------------------------------------------------------------------- ## tolist 会根据array 的元素 返回一个list arr = array('i', [1, 2, 3, 4, 1, 11, 1, 22, 1, 2, 0, 1, 2, 1, 4]) arr.tolist() [1, 2, 3, 4, 1, 11, 1, 22, 1, 2, 0, 1, 2, 1, 4] ------------------------------------------------------------------------- # array.frombytes(s) # 可以通过bytes 还原 array 对象 # array.tobytes() # 可以把array 转成 bytes 的表示 def test_frombytes_tobytes(): arr = array('i', [1, 2, 11, 1, 220, 12, 1, 4]) arr_bytes = arr.tobytes() print(arr_bytes) arr2 = array('i') arr2.frombytes(arr_bytes) print(arr2) # 结果如下 Connected to pydev debugger (build 173.4127.16) b'\x01\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\xdc\x00\x00\x00\x0c\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00' array('i', [1, 2, 11, 1, 220, 12, 1, 4]) ------------------------------------------------------------------------- # fromfile, tofile 这两个方法 array.fromfile(f, n) # n 这个参数就是要读f读取多少个元素, 如果n> file中的个数 会报异常. EOFError: read() didn't return enough bytes array.tofile(f) Write all items (as machine values) to the file object f. # 这个方法就是把array 对象写到文件中. # 简单的一个例子 from array import array if __name__ == '__main__': arr = array('i', [1, 2, 11, 1, 220, 12, 1, 4]) # 注意这里要二进制方式打开wb with open('arr.bin', 'wb') as f: arr.tofile(f) arr3 = array('i') print(arr3) # 注意这里要二进制方式打开 with open('arr.bin', 'rb') as f: arr3.fromfile(f, 8) print(arr3) # result : Connected to pydev debugger (build 173.4127.16) array('i') array('i', [1, 2, 11, 1, 220, 12, 1, 4]) -------------------------------------------------------------------------
array创建的数组不适用于数字操作(比如矩阵和矢量运算)。另外+=和*=运算符可以用于array的添加。
从python3.4开始,数组(array)类型不再支持诸如list.sort()这种就地排序方法。要给数组排序的话,得用sorted函数新建一个数组:
>>> import array >>> a = array.array(a.typecode, sorted(a))
array 与内置list 有什么区别?
array 可以紧凑地表示一个基本值的数组:字符,整数,浮点数。数组是序列类型,表现得非常像列表,除了存储在它们中的对象的类型是受约束的。
1.首先array 是数组, 数组是只能够保存一种类型的数, 初始化的时候就决定了可以保存什么样的数. 而list 里面 几乎可以放任何对象,已经类型,无论是数字,还是字典,还是对象,还是列表,都可以同时放到一个列表里面.
2.array 和list 提供的方法很多是相似的, 比如 append, insert ,pop extend, index,等等
参考:https://www.cnblogs.com/haoqirui/p/9977031.html
https://blog.csdn.net/u010339879/article/details/81588215 -
JavaScript进阶(十)Array 数组详解
2016-05-01 09:50:58JS array 数组详解数组的声明方法arrayObj = new Array();//创建一个数组。 var arr1 = new Array(); arrayObj = new Array([size])//创建一个数组并指定长度,注意不是上限,是长度。 var a = new Array(5); ... -
成功解决ValueError: Expected 2D array, got 1D array instead: Reshape your data either using array....
2019-02-25 09:25:07成功解决ValueError: Expected 2D array, got 1D array instead: Reshape your data either using array.reshap 目录 解决问题 解决思路 解决方法 解决问题 ValueError: Expected 2D array, got 1D ... -
PostgreSql 聚合函数string_agg与array_agg
2017-12-26 15:23:11string_agg,array_agg 这两个函数的功能大同小异,只不过合并数据的类型不同。 https://www.postgresql.org/docs/9.6/static/functions-aggregate.htmlarray_agg(expression) 把表达式变成一个数组 一般配合 array... -
Numpy.array()详解 、np.array与np.asarray辨析、 np.array和np.ndarry的区别
2019-04-06 15:25:45记录一下numpy.array()的详细用法,以及与np.asarray()和np.ndarray()的区别。 目录 1. Numpy.array()详解 1.1 函数形式 1.2 参数详解 1.3 具体用法 2.Asarray和Array辨析 2.1 object对象是普通迭代序列时 ... -
成功解决ValueError: Expected 2D array, got 1D array instead
2019-01-25 19:58:33成功解决ValueError: Expected 2D array, got 1D array instead 目录 解决问题 解决思路 解决方法 解决问题 ValueError: Expected 2D array, got 1D array instead ... -
Scala之Array的方法
2018-08-05 11:06:14Scala:Array(集合、序列) Scala开篇(目录) 数组是一种可变的、可索引的数据集合。在Scala中用Array[T]的形式来表示Java中的数组形式 T[]。 val numbers = Array(1, 2, 3, 4) //声明一个数组对象 val first =... -
Tcl数组命令之array
2019-05-12 23:39:21array -
String 转Array ,Array转String
2019-07-13 20:32:22String s; char [] arr = s.toCharArray();//将String 转array String.valueOf(arr);//将array转String: https://www.runoob.com/java/number-valueof.html -
numpy中array和asarray的区别
2017-02-22 14:45:06array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。 举例说明: import numpy as np #example 1: data1=[[1,1,1],... -
PHP中array_merge函数与array+array的区别
2019-02-13 19:56:05当下标为数值时,array_merge()不会覆盖掉原来的值,但array+array合并数组则会把最先出现的值作为最终结果返回,而把后面的数组拥有相同键名的那些值“抛弃”掉(不是覆盖) 存在的坑:(我们一般的需求是合并... -
Image.fromarray的用法(实现array到image的转换)
2020-01-07 14:45:55一、Image.fromarray的作用:实现array到image的转换 二、PIL中的Image和numpy中的数组array相互转换: 1. PIL image转换成array 2. array转换成image 一、Image.fromarray的作用: 简而言之,就是实现array... -
array+array与array_merge()的区别
2018-05-07 17:12:53array+array与array_merge()的区别 1,情景描述:数组运算中我们常常用到联合运算(+)和array_merge()函数,这两种方法都可以实现把2个数组合并为一个数组,但是两者也是有区别的如果使用不当就会导致bug的出现,... -
Java Array、List、Set互相转化
2017-12-16 15:23:51Java ArrayListSet互相转化 ArrayListSet互转实例 1 ArrayList互转 2 ListSet互转 3 ArraySet互转 ArraysasList 和 CollectiontoArray... Array、List、Set互转实例1.1 Array、List互转 Array转ListString[] s = new St -
Numpy array数据的增、删、改、查
2018-03-20 15:42:58准备工作: 增、删、改、查的方法有很多很多种,这里只展示出常用的几种。... a = np.array([[1,2],[3,4],[5,6]])#创建3行2列二维数组。 >>> a array([[1, 2], [3, 4], [5, 6]]) >>&... -
array_filter、array_walk、array_map的区别
2017-03-07 13:06:35平时经常遇到这三个函数,每次遇到就查资料,用的时候又忘记了,...array array_filter ( array $input [, callback $callback ] )、array array_map ( callback $callback , array $arr1 [, array $... ] )bool array -
Numpy:array、asarray、asanyarray
2018-05-08 10:43:54array和asarray的区别 看asarray的定义: def asarray(a, dtype=None, order=None): return array(a, dtype, copy=False, order=order) 和array相似, 除了默认设置copy=False. 而array默认设置copy=True ... -
【in_array和array_search】PHP中的in_array和array_search【原创】
2017-07-14 21:51:39PHP的in_array和array_search的对比 -
ValueError: Expected 2D array, got 1D array instead
2019-06-14 11:02:35ValueError: Expected 2D array, got 1D array instead: array=[...]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it cont... -
array_map与array_walk的用法与区别详解
2018-11-05 15:44:19一、背景 &...网上百度一下array_map,然后发现了array_walk。这两个函数在某些情境下有异曲同工之妙,然后区别还是很大的。 二、关于array_map 1、文档 &nbsp;&nbsp;& -
Pycharm中,解决 RuntimeError: implement_array_function method already has a docstring
2019-05-27 21:18:39Pycharm中,解决 RuntimeError: implement_array_function method already has a docstring. numpy,pandas,matplotlib版本不兼容。 -
Pandas中把dataframe和np.array的相互转换
2018-04-13 22:35:32网上找了半天 不是dataframe转化成array的就是array转化dataframe,所以这里给汇总一下,相互转换的python代如下:dataframe转化成arraydf=df.valuesarray转化成dataframeimport pandas as pd df = pd.DataFrame(df... -
np.array
2018-05-04 15:23:011.np.array构造函数用法:np.array([1,2,3,4,5]) 1.1 numpy array 和 python list 有什么区别?标准Python的列表(list)中,元素本质是对象。如:L = [1, 2, 3],需要3个指针和三个整数对象,对于数值运算比较浪费... -
array.array 和 list 效率对比
2019-01-21 16:58:28代码如下: ...from array import array from random import random,seed seed(100) """ def clock(label, cmd): res = timeit.repeat(cmd, setup=SETUP, number=10, repeat=3) print... -
php中array_push()和array_pop()及array_shift() 函数用法
2019-05-24 11:58:14array_push函数是向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。array_pop() 函数删除数组中的最后一个元素。array_shift() 函数删除数组中第 一个元素,并返回被删除元素的值。本篇... -
numpy的asarray和array的区别
2017-11-23 10:26:27相同:array和asarray都可以将数组转化为ndarray对象区别:当参数为一般数组时,两个函数结果相同;当参数本身就是ndarray类型时,array会新建一个ndarray对象,作为参数的副本,但是asarray不会新建,而是与参数...
-
【Flask】(二)路由
-
LeetCode刷题进阶之平衡括号字符串的最少插入次数(1541)
-
考研复试准备-c语言-数据结构-栈-链式栈(不带头结点)-结构体/初始化/判空/入栈/出栈
-
伙计:Lad是最好的Node.js框架。 由Express TC和Koa前团队成员制作-源码
-
沐风老师Scratch3.0快速入门视频教程
-
Identity_Address_DB :(中国)1. MySQL身份证区域数据库(包含已合并的区县,详见自述文件)2. PHP验证身份证号是否正确3.从身份证号中获取性别生日年龄出生地等信息4 。路过留个star-源码
-
基于J2EE技术的高速公路物流管理系统
-
转行做IT-第7章 数组
-
postgresql
-
Mybatis超容易理解!!
-
canvas 不规则水波纹动画-simplex-noise
-
中介者模式Mediator(c++设计模式)
-
vue-router
-
零基础学习微信小程序(三)
-
QQ移动端联系人模块思维导图
-
微信支付V3版微信小程序支付PYTHON版
-
day0127-1-缓冲流
-
基于Django的电子商务网站设计---第四章 模型和数据库
-
postgresql
-
react-force-graph:2D,3D,VR和AR力向图的React组件-源码