NumPy学习记录

axis=0 对每一列进行操作  axis=1表示对每一行进行操作

  ndarray.ndim  秩,即轴的数量或维度的数量

  ndarray.shape  数组的维度,对于矩阵,n行n列

  ndarray.size  数组元素的总个数

  ndarray.dtype 对象的元素类型

  

创建数组  

numpy.empty(shape,dtype,order)  ----未初始化的数组

numpy.zeros(shape,dype,order)

numpy.ones(shape,dtype,order)

从已有的数组中创建数组

numpy.asarray 

numpy.frombuffer 用于实现动态数组 

numpy.frombuffer(buffer,dtype,count,offset)接受buffer输入参数,以流的形式读入转化为ndarray对象

numpy.fromiter(iterable,dtype,count=-1)从可迭代对象中建立ndarray对象,返回一维数组

 

numpy.arange(start,stop,step,dtype)从开始到结束生成一个数组

其中step默认为1  start默认为0 

 

numpy.linspace(start,stop,num,endpoint,retstep,dtype)创建一个等差数列构成的数组

numpy.logspace(start, stop,num,endpoint,base,dtype) base 默认底数为10

 

slice(startindex,stopindex,step) 与python中的list的切片操作一样

基于0-n的下标进行索引,切片对象可以通过内置的slice函数,并设置start数开始从原数组中切割出一个新数组。

slice也可以换成数组名[start:stop:step]来进行切片操作

数组名[2]  将返回与该索引相对应的单个元素

数组名[2:]  从2开始以后的所有项都被提取

数组名[2:7] 不包含停止索引

数组名[start:stop:step]同样适用于多维数组,只提取第一维的数组

 

切片还可以包括省略号... 来使选择元组的长度和数组的维度相同,如果在行位置使用省略号,他将返回包含行中元素的ndarray

a = np.array([[1,2,3],[3,4,5],[4,5,6]])

print (a[...,1]) # 第2列元素

print (a[1,...]) # 第2行元素

print (a[...,1:]) # 第2列及剩下的所有元素

 

布尔索引

通过布尔运算,来获取符合指定条件的元素的数组

 

~取补运算符  来过滤NaN

a[~np.isnan(a)]

 

iscomplex 来过滤非复数元素

 

花式索引与切片不一样,他总是将数据复制到新数组中。

如果目标是一维数组,那么索引的结果就是对应位置的元素,如果是二位数组,那么就是对应下边的行

使用np.ix_

 

 

NumPy 广播(Broadcast)

广播是numpy对不同形状的数组进行数值计算的方式,对数组的算术运算通常在相应的元素上进行。

如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。

当运算中的2个数组的形状不同时,numpy将自动触发广播机制

 

广播的规则:

  • 让所有输入数组都向其中形状最长的数组看齐,形状中不足的部分都通过在前面加 1 补齐。
  • 输出数组的形状是输入数组形状的各个维度上的最大值。
  • 如果输入数组的某个维度和输出数组的对应维度的长度相同或者其长度为 1 时,这个数组能够用来计算,否则出错。
  • 当输入数组的某个维度的长度为 1 时,沿着此维度运算时都用此维度上的第一组值。

Numpy迭代器对象提供了一种迭代访问数组元素的方式

迭代器最基本的方式可以完成对数组元素的访问。

 

NumPy统计函数

NumPy提供了很多统计函数,用于从数组中查找最大值 最小值 百分位 标准差 方差等

numpy.amin()用于沿轴的最小值

numpy.amax()沿轴的最大值

numpy.ptp() 沿轴的最大值与最小值的差

numpy.percentile(数组,百分位,百分位的轴) 度量

numpy.median() 中位数

numpy.mean(数组,axis ) 算术平均值

numpy.average(数组,weights ) 加权平均值  

sqrt(mean((x-x.mean())**2))  标准差

var(数组) 方差

 

NumPy排序、条件刷选函数

numpy.sort(a,axis,kind,order) 返回输入数组的排序副本

a  数组   axis  轴  kind  默认为快排  order 排序的字段

 

numpy.argsort()返回的数组值从小到达的索引值

numpy.lexsort() 用于对多个序列进行排序

msort(数组) =np.sort(数组,axis=0)  将数组按第一个轴排序,返回排序后的数组副本

sort_complex(数组) 对复数按照先实后虚的顺序进行排序

partition(数组,kth,axis,kind,order) 指定一个数,对数组进行分区

argpartition(数组,kth,axis,kind,order) 指定kind算法对指定轴进行分区

numpy.argmax()返回给定轴的最大值的索引

numpy.argmin()返回给定轴的最小值的索引

numpy.nonzero() 返回输入数组中非零元素的索引

Numpy.where() 返回数组中满足给定条件的元素的索引

numpy.extract() 根据某个条件从数组中抽取元素,返回满足条件的元素

 

 

NumPy算术函数

简单的加减乘除  add  subtract  multiply  divide()

数组具有相同的形状或符合数组广播规则、

numpy.reciprocal() 返回倒数

numpy.power(数组,幂的级数) 将第一个输入数组中的元素作为底数,计算它与第二个输入数值中相应元素的幂

numpy.mod()计算输入数组中的相应元素的相除后的余数,和numpy.remainder产生相同的效果

 

NumPy数学函数

包含大量的数学运算,包括三角函数 等

三角函数    sin()    cos()   tan()

numpy.degrees()  将弧度转化为角度

numpy.around(数组,摄入的小数位) 返回指定数字的四舍五入值

numpy.floor()返回小于或者等于指定表达式的最大整数,即向下取整

numpy.ceil() 向上取整

 

NumPy字符串函数

以下函数用于对dtype为 numpy.string_ 或 numpy.unicode_的数组执行向量化字符串操作

这些方法在字符数组类  numpy.char中定义

numpy.char.add()  对数组中的元素进行字符串连接

numpy.char.multiply() 执行多重连接

numpy.char.center(str,width,fillchar)用于将字符串居中,并使用指定字符在左侧和右侧进行填充

numpy.char.capitalize() 将字符串中的第一个字母转换为大写

numpy.char.title()函数将字符串的每个单词的第一个字母转换为大写

numpy.char.lower() 将数组的每个元素转换为小写

numpy.char.upper() 对数组中的每个元素转换为大写

numpy.char.split() 默认情况下是分隔符为空格

numpy.char.splitlines() 以换行符作为分割符来分割字符串,并返回数组

numpy.char.strip()用于移除开头或结尾处的特定字符

numpy.char.join() 通过指定分隔符来连接数组中的元素或字符串

numpy.char.replace() 使用新字符串替换字符串中的所有子字符串

numpy.char.encode()对数组中的每个元素调用str.encode函数

numpy.char.decode() 对编码的元素进行str.decode解码

 

posted @ 2020-04-14 14:39  大大的海棠湾  阅读(81)  评论(0)    收藏  举报