广播机制
广播(Broadcast)是numpy对不同形状(shape)的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行。如果两个数组a和b形状相同,即满足a.shape ==- b.shape,那么 a×b的结果就是a与b数组对应位相乘。这要求维数相同,且各维度的长度相同。
但如果两个形状不同的数组呢?它们之间就不能做算术运算了吗?
当然不是!为了保持数组形状相同,NumPy设计了一种广播机制,这种机制的核心是对形状较小的数组,在横向或纵向上进行一定次数的重复,使其与形状较大的数组拥有相同的维度。
广播的规则:
- 让所有输入数组都向其中形状最长的数组看齐,形状中不足的部分都通过在前面加1补齐。
- 输出数组的形状是输入数组形状的各个维度上的最大值。
- 如果输入数组的某个维度和输出数组的对应维度的长度相同或者其长度为1时,这个数组能够用来计算,否则出错。
- 当输入数组的某个维度的长度为1时,沿着此维度运算时都用此维度上的第一组值。
统计函数
Array-Method查看所有方法
数据类型
文件操作
loadtxt(fname, dtype=<class ‘float’>, comments=‘#’, delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0,encoding=None)
随机函数
NumPy中也有自己的随机函数,包含在random模块中。它能产生特定分布的随机数,如正态分布等。接下来介绍一些常用的随机数。
normal(loc=0.0, scale=1.0, size=None)
作用:返回一个由size指定形状的数组,数组中的值服从u=loc,a=scale的正态分布。
参数:
- loc : float型或者float型的类数组对象,指定均值u
- scale : float型或者float型的类数组对象,指定标准差σ
- size : int型或者int型的元组,指定了数组的形状。如果不提供size,且loc和scale为标量(不是类数组对象),则返回一个服从该分布的随机数。
数组的其他函数
numpy.resize(arr,shape)
该函数用于返回指定形状的新数组
numpy.resize(arr,shape),有返回值,返回复制内容.如果维度不够,会使用原数组数据补齐
ndarray.resize(shape, refcheck=False),修改原数组,不会返回数据,如果维度不够,会使用0补齐
numpy.append(arr,values,axis=None)
参数说明:
- arr:输入的数组;
- values:向arr数组中添加的值,需要和arr 数组的形状保持一致;
- axis:默认为None,返回的是一维数组;当axis =0时,追加的值会被添加到行,而列数保持不变,若axis=1则与其恰好相反。
numpy.insert(arr,obj,values,axis)
表示沿指定的轴,在给定索引值的前一个位置插入相应的值,如果没有提供轴,则输入数组被展开为一维数组。\
参数说明:
- arr:要输入的数组
- obj:表示索引值,在该索引值之前插入
- values:要插入的值
- axis:指定的轴,如果未提供,则输入数组会被展开为一维数组
numpy.delete(arr,obj,axis)
该方法表示从输入数组中删除指定的子数组,并返回一个新数组。它与insert()函数相似,若不提供 axis 参数,则输入数组被展开为一维数组。numpy. delete(arr,obj, axis)
参数说明:
- arr:要输入的数组
- obj:整数或者整数数组,表示要被删除数组元素或者子数组;
- axis:沿着哪条轴删除子数组。
numpy.argwhere()
该函数返回数组中符合条件的数据的索引,若是在多维数组,则返回行,列索引组成的索引坐标
numpy.unique(arr,return_index,return_inverse,return_counts)
用于删除数组中重复的元素
参数说明:
- arr:输入数组,若是多维数组则以一维数组形式展开;
- return_index:如果为True,则返回新数组元素在原数组中的位置(索引);.
- return_inverse:如果为True,则返回原数组元素在新数组中的位置(索引);
- return_counts:如果为True,则返回去重后的数组元素在原数组中出现的次数。
numpy.sort(a,axis,kind,order)
对输入数组执行排序,并返回一个数组副本。
参数说明:
- a:要排序的数组;
- axis:沿都指定轴进行排序,如果没有指定axis,默认在最后一个轴上排序,若axis=0表示按列排序, axis=1表示按行排序;
- kind:默认为quicksort(快速排序);
- order:若数组设置了字段,则order表示要排序的字段。
numpy.argsort()
argsort()沿着指定的轴,对输入数组的元素值进行排序,并返回排序后的元素索引数组。