首页 > 代码库 > numpy库的常用知识

numpy库的常用知识

    为什么有numpy这个库呢?准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。

    此外Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和C语言的一维数组比较类似。但是由于它不支持多维,也没有各种运算函数,因此也不适合做数值运算。

    所以numpy就这么登场了,NumPy是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。

    NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(通常是元素是数字)。在NumPy中维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。

 

 

首先我们说说多维数组:

数组的属性:

ndarray.ndim, 表示数组的秩是多少;

ndarray.shape,返回数组的形状;

ndarray.size,数组元素的总个数,等于shape属性中元组元素的乘积

ndarray.dtype,一个用来描述数组中元素类型的对象

ndarray.itemsize ,数组中每个元素的字节大小。

 

 

一些常用的函数

zeros()生成全为零的数组;

ones()生成合为1的数组;

empty()生成一个随机数组;

reshape()函数,,返回一个数组变形的样子。按C风格来哦,即最右边的索引变化最快;

resize()函数,和上面操作相同 ,不过它是改变原数组哦,上面的reshape()不会改变原数组的;

arange()函数,可以产生一个一维的数组哦。

ravel()函数, 它展开的函数的风格通常是C风格的,即最右边的索引变化最快;

transpose(),把数组进行转置,如索引为(2,3,4)元素变为索引为(4,3,2)的元素;

column_stack()函数,把一维数组按列组合成二维数组;

row_stack()函数,一维数组以行组合成二维数组

vstack ()沿着第一个轴组合,hstack ()函数沿着第二个轴组合

vsplit ()沿着纵向的轴分割, array split() 允许指定沿哪个轴分割。

newaxis

linspace()函数通过指定开始值、终值和元素的个数来创建一维数组,可以通过endpoint关键字指定是否包括终值,缺省时包括终值;

>>> np.linspace(0,5,11)
array([ 0. ,  0.5,  1. ,  1.5,  2. ,  2.5,  3. ,  3.5,  4. ,  4.5,  5. ])

 

 

 

索引,切片和迭代

使用arange函数时,不包括终值;

可以能数组的元素的索引作切片哦,记住,索引从0开始的。当少于轴数的索引被提供时,确失的索引被认为是整个切片。

注意迭代 多维数组是就第一个轴而言的。

数组的flat属性为数组元素的一个迭代器,可以启遍例数组中的每个元素;

 

 

随着学习继续补充

 

最后,如果你觉得以上内容对你有帮助,如果你有钱的话,如果你愿意的话,可以打赏一下我这个穷学生哦,以资助我买几本书。靠劳动吃饭,应该不会被你们唾弃吧,技术分享技术分享技术分享哈哈哈,自愿自愿哈……

 

您可以选择:2毛,5毛、1元。

技术分享

numpy库的常用知识