介绍NumPy是Python数值计算最重要的基础包。大多数提供科学计算的包都使用NumPy数组作为构建的基础。NumPy本身不提供高级数据分析功能。了解NumPy数组和面向数组的计算将帮助您更高效地使用Pandas等工具。尽管NumPy为数值数据处理提供了通用的计算基础,但大多数读者可能希望使用Pandas作为统计和分析工作的基础,尤其是在处理表格数据时。NumPy的一些特性如下:ndarray,一种快速且节省空间的多维数组,具有矢量算术运算和复杂的广播功能。用于对整组数据执行快速运算的标准数学函数(无需编写循环)。用于将数据读取和写入磁盘的工具以及用于操作内存映射文件的工具。线性代数、随机数生成和傅里叶变换函数。用于集成用C、C++、Fortran等语言编写的代码的CAPI。NumPy对于数值计算尤为重要,因为它可以高效地处理大型数据数组。这是因为:NumPy数组比Python的内置序列使用更少的内存。NumPy可以对整个数组执行复杂的计算,而不需要Python的for循环。使用以下格式约定导入NumPy包:importnumpyasnpNumPy'sndarray:N维数组对象NumPy最重要的是它的N维数组对象(即ndarray),其中所有元素必须是同一类型。该对象是用于大型数据集的快速灵活的容器。该数组可用于对整个数据块执行数学运算,其语法与标量元素之间的运算相同。创建ndarray使用np.array(list/tuple,dtype=np.float32)函数生成包含传递数据的新ndarray对象。第一个参数是元组,列表(相同数据类型),第二个参数是ndarray数组中的数据类型。当第二个参数为空时,NumPy会根据数据条件分配一个类型。返回值的形式为[],元素之间用空格隔开。In[20]:arr1=np.array([6,7.5,8,0,1])#从列表中创建In[21]:pring(arr1)Out[21]:[6.,7.5,8.,0.,1.]#NumPy指定float类型In[23]:arr2=np.array([[1,2,3,4],[5,6,7,8],(1.2,2.3)])In[24]:pring(arr2)Out[24]:[[1,2,3,4][5,6,7,8](1.2,2.3)]使用NumPynp中的内置函数。arange(begin,end,step,dtype=np.float32):begin为元素的起始值(包含),end为元素的结束值(不包含),step为步长(默认值为1),dtype是元素类型。如果只有一个参数n,则从0到n-1;如果有两个参数n和m,就是从n到m-1;np.linspace(begin,end,number):创建包含number数组的元素,并在指定的起始值(含)和结束值(含)之间均匀间隔;np.ones(shape):根据shape生成全1的数组,shape为元组类型,如(2,3);np.zeros(shape):根据shape生成一个全0的数组,shape是元组类型,比如(2,3,4);np.full(shape,val):根据shape生成一个数组,每个元素值都是val;np.eye(n):创建一个正方形n*n单位矩阵,对角线为1,其余为0;np.ones_like(a):根据数组a的形状生成一个全1的数组;np.zeros_like(a):根据数组a的形状生成一个全0的数组;np.full_like(a,val):根据数组a的形状生成一个每个元素值为val的数组;np.concatenate()将两个Merge一个或多个数组合并成一个新的数组。In[30]:arr3=np.zeros((3,6))In[31]:print(arr3)Out[30]:[[0.,0.,0.,0.,0.,0.][0.,0.,0.,0.,0.,0.][0.,0.,0.,0.,0.,0.]]从磁盘读取数据创建ndarray数组,将ndarray数组保存到磁盘(大多数情况下,pandas或其他工具将用于加载文本或表格数据)np.load(fname)?fname:文件名,扩展名为.npy,压缩扩展名为.npznp.save(fname,array)或np.savez(fname,array)?fname:文件名,扩展名为.npy,压缩扩展名为.npz?array:数组对象的数组变量ndarray属性。ndim:rank,即轴的数量或维数。shape:ndarray对象的尺度,对于一个矩阵,n行m列。size:ndarray对象的元素个数,相当于n的值*min.shape.dtype:ndarray对象的元素类型。itemsize:ndarray对象中每个元素的大小,以字节为单位。ndarray数组对象的类型和维度转换。astype(np.float64):将ndarray数组元素从一种类型转换为另一种类型,并返回一个新数组。如果将浮点数转换为整数,小数部分将被截断并删除。(类型转换).reshape(shape):不改变原数组的元素,而是返回一个新的shape维数组(维度转换).resize(shape):功能同.reshape(),但修改原数组array(维度变换).swapaxes(ax1,ax2)交换数组n维中的两个维度(维度变换).flatten():数组降维,返回折叠后的一维数组,保留原数组不变(维度转换)。tolist():ConvertanN-dimensionalarrayintoalist(维度变换)ndarray数组的索引和切片具体用法参考https://seancheney.gitbook.io/python-for-data-analysis-2nd/di-04-zhang-numpy-ji-chu-shu-zu-he-shi-liang-ji-suan#ji-ben-de-suo-yin-he-qie-pianhttps://docs.scipy.org/doc/numpy/user/quickstart.html#indexing-slicing-and-iteratinghttps://blog.csdn.net/zheng_weibin/article/details/79358986ndarray数组的操作数组与标量之间的操作会作用于数组的每个元素;size相同数组之间的任何算术运算都会将运算应用于元素级别;具有相同大小的数组之间的比较操作会将操作应用于元素级别并生成布尔值数组;np.abs(arr)\np.fabs(arr):计算数组中每个元素的绝对值arrnp.sqrt(arr):计算数组中每个元素的平方根arrnp.square(arr):计算数组中每个元素的平方arrnp.log(arr)\np.log10(arr)\np.log2(arr):计算数组arr的每个元素的自然对数、以10为底的对数和以2为底的对数np.ceil(arr)\np.floor(arr):计算数组的每个元素arrayarr上限值或下限值np.rint(arr)计算数组arr的每个元素的四舍五入值np.modf(arr)将数组arr的每个元素的小数部分和整数部分分成独立的两个以数组的形式返回np.cos(arr)\np.cosh(arr)\np.sin(arr)\np.sinh(arr)\np.tan(arr)\np.tanh(arr)计算出的值数组arr中的每个元素普通和双曲三角函数np.exp(arr)计算数组arr中每个元素的索引值np.sign(arr)计算数组arr中每个元素的符号值,1(+),1(+),0,-1(-)使用Ndarray进行数据处理和排??序。ndarray数组由.sort()函数排序。使用多维数组时,传入轴数NumPy的随机数函数np.random.rand(d0,d1,..,dn):根据d0-dn数组创建随机数,float,[0,1),uniformdistributionnp.random.randn(d0,d1,..,dn):根据d0‐dn创建随机数数组,标准正态分布np.random.randint(low[,high,shape]):根据shape创建一个随机整数或整数数组,取值范围是[low,high)np.random.seed(s):随机数种子,s是给定的np.random.shuffle(a):Arrange根据数组a的第一轴,改变数组xnp.random.permutation(a):根据数组a的第一轴生成一个新的随机数组,不改变数组xnp.random.choice(a[,size,replace,p]):从一维数组a中以概率p提取元素,组成新的size数组。replace指示元素是否可以重用。默认为Falsenp.random.uniform(low,high,size):生成一个均匀分布的数组,起始值低,结束值高,大小shapenp.random.normal(loc,scale,size):生成一个具有正态分布、loc均值、尺度标准差、大小形状np的数组。random.poisson(lam,size):生成一个具有泊松分布的数组,lam随机事件发生率,sizeshapeNumPy的统计类函数np.sum(a,axis=None):根据给定的轴计算数组a的相关性axissumofelements,axisintegerortuplenp.mean(a,axis=None):根据给定的轴axiscalculatestherelativeelementsofthearraya,axisintegerortuplenp.average(a,axis=None,weights=None):根据给定的轴axis计算数组a的相关元素的加权平均值np.std(a,axis=None):根据给定的轴axis计算数组a相关元素的标准差np.var(a,axis=None):根据给定的轴计算数组a相关元素的方差给给定的坐标轴axisnp.min(a)\max(a):计算数组a中元素的最小值和最大值np.argmin(a)\argmax(a):计算最小值和最大值对数组a中的元素进行一维下标缩减np.unravel_index(index,shape):将一维下标索引按shape转换为多维下标np.ptp(a):计算与a的差值数组a中元素的最大值和最小值np.median(a):计算数组中元素的中值a(Median)NumPy的梯度函数Gradient:连续值之间的变化率,即XY坐标轴的斜率,Y轴值对应三个连续的X坐标:a,b,c,其中梯度ofbis:(c‐a)/2np.gradient(f):计算数组f中元素的梯度,当f是多维时,返回每一维的梯度
