记录一下python的数据结构 - array
来源:互联网 发布:保险网络大学认证教育 编辑:程序博客网 时间:2024/06/07 06:13
记录一下python的数据结构 - array
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。此外Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray(下文统一称之为数组)是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。所以使用前,需要`import numpy as np`\>>> a = np.array([1,2,3,4])\>>> b = np.array([[1,2,3][4,5,6]])\#上面例子中的参数序列的元素都是整数,因此所创建的数组的元素类型也是整数,并且是32bit的长整型。\#可以通过dtype参数在创建时指定元素类型:\>>> np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]], dtype=np.float) = array([[ 1., 2., 3., 4.], [ 4., 5., 6., 7.], [ 7., 8., 9., 10.]])\>>> np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]], dtype=np.complex) = array([[ 1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j], [ 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j], [ 7.+0.j, 8.+0.j, 9.+0.j, 10.+0.j]])\>>> a.shape= (4,) \>>> b.shape= (2,3)\>>> b.shape = 3,2 # 对b进行调整\>>> b= ([[1,2][3,4][5,6]])\>>> b.shape = 2,-1\>>> b= ([[1,2,3][4,5,6]])\>>> d = a.reshape((2,2)) #创建1个改变了尺寸的新数组,且a和d共享内存,改变其中一个元素,会同时修改另一个 \>>> a = np.arange(10) \>>> a = [0,1..,8,9] \>>> np.arange(0,1,0.1) #arange函数类似于range函数,通过指定开始值、终值和步长来创建一维数组,当然也是不包括终值的= array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])\>>> np.arange(0, 60, 10).reshape(-1, 1) + np.arange(0, 6)= array([[ 0, 1, 2, 3, 4, 5], [10, 11, 12, 13, 14, 15], [20, 21, 22, 23, 24, 25], [30, 31, 32, 33, 34, 35], [40, 41, 42, 43, 44, 45], [50, 51, 52, 53, 54, 55]])\>>> a[5] #用整数做下标\>>> a[3:5] #用范围做下标获取数组切片,包括a[3]但不包括a[5]= array([3,4])\>>> a[:5]array([0,1,2,3,4])\>>> a[:-1] #用法同list\>>> a[2:4] = 100,101 # 索引修改值\>>> a[1:-1:2] #第三个参数表示步长= array([1, 3, 5, 7])\>>> a[::-1] #数组头尾颠倒,省略范围的开始和结束= array([9, 8, 7, 6, 5, 4, 3, 2, 1, 0])\>>> a[5:1:-2] #步长为负,则起始点要大于结束点= array([5, 3])\>>> b = a[3:7] #通过索引产生的新数组b,和a共享数据空间
本篇博客主要参考自
《用python做科学计算》
《Python自学笔记之基础内容回顾》
《Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结 》
《 Python list 操作》
《列表(list), 元祖(tuple), 字典(dict), 字符串(string), 集合(set) 的基本方法 》
《python 2.7教程 - 廖雪峰》
0 0
- 记录一下python的数据结构 - array
- 记录一下python的数据结构
- 记录一下python的数据结构 - list
- 记录一下python的数据结构 - tuple
- 记录一下python的数据结构 - dict
- 记录一下python的数据结构 - set
- 记录一下python的数据结构 - string
- 写过的数据结构实验记录一下
- 记录一下python中遇到的问题
- Python高级数据结构之Array
- 记录一下,今天要用python的html转码
- 记录一下Python 中spynner模块的安装过程
- 平时的一下记录
- 小小的记录一下
- 记录一下python log类的使用 做个记录 慢慢积累
- 新入坑python 写点东西记录一下
- python学习记录-- 数据结构----栈
- python学习记录-- 数据结构----队列
- 【JZOJ1611】Dining
- 1003. Maze
- pymongo 安装
- 猜生日
- 【openjudge 9275】[2.6基本算法之动态规划][Usaco2009 Feb]Bullcow(dp)
- 记录一下python的数据结构 - array
- ACM图论算法—邮递员投递问题
- Android studio文件结构
- 文章概要
- 关于Android 6.0二维码生成和识别的简单理解和常见问题
- ContentProvider 源码解析
- mysql安装后没有弹出配置向导
- 单链公共结点问题
- Redis学习随笔