| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python中的数组 -> 正文阅读 |
|
[Python知识库]python中的数组 |
1.用list和tuple等数据结构表示数组一维数组:list1=[1,2,3] 二维数组:tuple1 = ([1,2,3],[4,5,6],[7,8,9]) 但是:列表是动态指针数组,它保存的是对象的指针,其元素可以是任意类型的对象。比如要保存上述的List1,需要3个指针和3个整数对象,浪费内存和计算时间。 2.array模块(非内置)- 通过array函数创建数组 ?- 提供append、insert和read等方法 但是:array模块中的array函数不支持多维数组,且函数功能不丰富 3.NumPy中的N维数组ndarray-?NumPy中基本的数据结构 - 所有元素是同一种类型 - 别名array(数组) - 节省内存,提高CPU计算时间 - 有丰富的函数 注:NumPy的思维模式是面向数组. 3.1ndarray数组属性- 下标从0开始。 - 一个ndarray数组中的所有元素的类型必须相同。 -?轴(axis):每一个线性的数组称为是一个轴,也就是维度(dimensions)。比如,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组,所以一维数组就是ndarray中的轴,第一个轴(也就是第0轴)相当于是底层数组,第二个轴(也就是第1轴)是底层数组里的数组。 很多时候可以声明axis。axis=0,表示沿着第0轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作。 -?秩(rank):维数,一维数组的秩为1,二维数组的秩为2,以此类推。即轴的个数。 3.2 ndarray的创建3.2.1从已有的数据中创建多维数组从list, tuple对象中创建 - array()??创建多维数组 注:array函数的参数必须是由方括号括起来的列表,而不能使用多个数值作为参数调用array
np.array(object, dtype=None, copy=True, order=’K’, subok=False, ndmin=0) object — list或tuple对象。强制参数。 dtype — 数据类型。可选参数。 copy — 默认为True,对象被复制。可选参数。 order — 数组按一定的顺序排列。C - 按行;F - 按列;A - 如果输入为F则按列排列,否则按行排列;K - 保留按行和列排列。默认值为K。可选参数。 subok — 默认为False,返回的数组被强制为基类数组。如果为True,则返回子类。可选参数。 ndmin — 最小维数。可选参数 3.2.2从字符串中读取 - fromstring()fromstring()?- 从字符串中读取数据,并将其转换为一维数组。 arr3 = np.fromstring('1,2,3,4,5',dtype=int,sep=',')
np.fromstring(string, dtype=float, count=-1, sep=”) string — 包含数据的字符串。强制参数。 dtype — 数据类型,默认为浮点型。可选参数。 count — 从左到右读取数据的个数。默认为-1,表示读取所有数据。可选参数。 sep — 分隔符。若不指定分隔符,或指定为空,则字符串包含的数据被解译为二进制数据,否则为带有小数的ASCII文本。可选参数。 3.2.3 创建特定形状的多维数组?创建‘全1’数组- ones(), ones_like() ones()?- 创建给定形状的ndarray,并将数组中所有元素填充为1。
np.ones(shape, dtype=None, order=’C’) shape — 维度。强制参数。 dtype — 数据类型。默认为np.float64。可选参数。 order — 数组按一定的顺序排列。C - 按行;F - 按列。默认值为C。可选参数。 ones_like()?- ?创建与参数数组形状和类型相同的ndarray,并将数组中所有元素填充为1。
np.ones_like(a, dtype=None, order=’K’, subok=True) a — 给定的数组。其维度和数据类型决定着要创建的数组的属性。强制参数。 dtype — 数据类型。默认的“None”意为“a.dtype”。可选参数。 order — 数组按一定的顺序排列。C - 按行;F - 按列;A - 如果输入为F则按列排列,否则按行排列;K - 保留按行和列排列。默认值为K。可选参数。 subok — 默认为True,返回的数组被强制为子类数组。如果为False,则返回基类数组。可选参数 创建‘全0’数组 - zeros(), zeros_like() zeros()?- 创建给定形状的ndarray,并将数组中所有元素填充为0。 zeros_like()?- ?创建与参数数组形状和类型相同的ndarray,并将数组中所有元素填充为0。 创建空数组 - empty(), empty_like() empty()?- 返回一个没有初始化内存的数组,该数组是空的。 empty_like()?- 返回一个与给定数组的维度和数据类型相同的新数组。 自主填充数组 - full(), full_like() full()?- 返回一个指定维度和数据类型的新数组,并用指定的值填充。
full_like()?- 返回一个与给定数组的维度和数据类型相同的新填充数组
3.2.4 改变数组的形状- reshape()reshape()?- 改变数组的形状。通过reshape生成的新数组和原始数组共用一个内存,也就是说,若更改其中数组的元素,另一个数组也将发生改变。
reshape(a, newshape, order=’C’) ndarray1.reshape(newshape) a — 已知数组。强制参数。 newshape — 新的维度,为整数或由整数组成的元组。强制参数。 order — 数组按一定的顺序排列。C - 按行;F - 按列;A - 如果输入为F则按列排列,否则按行排列;K - 与数组a的排列尽可能接近。默认值为C。可选参数。 3.2.5?创建等差数列数组 - arange()arange()?- 创建一个一维的等差数列数组,与Python中的range()函数类似。区别在于,np.arange()返回的是一个numpy数组,而Python中的range()函数返回的是一个列表。
np.arange(start, stop, step, dtype=None) start — 起始值(取得到)。默认值为0。可选参数。 stop — 终止值(取不到)。强制参数。 step — 步长。默认值为1。若指定step,则start值必须给出。可选参数。 dtype — 数据类型。若不指定数据类型,则通过其他参数(如start, stop, step)判断。可选参数。 3.2.6?ndarray的切片和索引Numpy 中多维数组的切片操作与 Python 中 list 的切片操作一样,由 start, stop, step 三个部分组成。 一维数组:
二维数组:
array([[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]])
array([4, 6, 8]) 注:想同时对行和列切片需要中间以,隔开,形如:
array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]])
array([[0, 2, 4], [5, 7, 9]]) 所以想索引数字9有两种办法: 1.切片法:arr8[1,4] 2.数组索引:arr8[1][4] |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 22:35:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |