首页 > 代码库 > 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库的常用知识