Numpy通用函数

通用函数

一元函数:

函数描述
np.abs绝对值
np.sqrt开根
np.square平方
np.exp计算指数(e^x)
np.log,np.log10,np.log2,np.log1p求以e为底,以10为低,以2为低,以(1+x)为底的对数
np.sign将数组中的值标签化,大于0的变成1,等于0的变成0,小于0的变成-1
np.ceil朝着无穷大的方向取整,比如5.1会变成6,-6.3会变成-6
np.floor朝着负无穷大方向取证,比如5.1会变成5,-6.3会变成-7
np.rint,np.round返回四舍五入后的值
np.modf将整数和小数分隔开来形成两个数组
np.isnan判断是否是nan
np.isinf判断是否是inf
np.cos,np.cosh,np.sin,np.sinh,np.tan,np.tanh三角函数
np.arccos,np.arcsin,np.arctan反三角函数

二元函数:

函数描述
np.add加法运算(即1+1=2),相当于+
np.subtract减法运算(即3-2=1),相当于-
np.negative负数运算(即-2),相当于加个负号
np.multiply乘法运算(即2*3=6),相当于*
np.divide除法运算(即3/2=1.5),相当于/
np.floor_divide取整运算,相当于//
np.mod取余运算,相当于%
greater,greater_equal,less,less_equal,equal,not_equal>,>=,<,<=,=,!=的函数表达式
logical_and&的函数表达式
logical_or|的函数表达式

聚合函数:

函数名称NAN安全版本描述
np.sumnp.nansum计算元素的和
np.prodnp.nanprod计算元素的积
np.meannp.nanmean计算元素的平均值
np.stdnp.nanstd计算元素的标准差
np.varnp.nanvar计算元素的方差
np.minnp.nanmin计算元素的最小值
np.maxnp.nanmax计算元素的最大值
np.argminnp.nanargmin找出最小值的索引
np.argmaxnp.nanargmax找出最大值的索引
np.mediannp.nanmedian计算元素的中位数

使用np.sum或者是a.sum即可实现。并且在使用的时候,可以指定具体哪个轴。同样Python中也内置了sum函数,但是Python内置的sum函数执行效率没有np.sum那么高,可以通过以下代码测试了解到:

a = np.random.rand(1000000)
%timeit sum(a) #使用Python内置的sum函数求总和,看下所花费的时间
%timeit np.sum(a) #使用Numpy的sum函数求和,看下所花费的时间

布尔数组的函数:

函数名称描述
np.any验证任何一个元素是否为真
np.all验证所有元素是否为真

比如想看下数组中是不是所有元素都为0,那么可以通过以下代码来实现:

np.all(a==0) 
# 或者是
(a==0).all()

比如我们想要看数组中是否有等于0的数,那么可以通过以下代码来实现:

np.any(a==0)
# 或者是
(a==0).any()

排序:

  1. np.sort:指定轴进行排序。默认是使用数组的最后一个轴进行排序。

     a = np.random.randint(0,10,size=(3,5))
     b = np.sort(a) #按照行进行排序,因为最后一个轴是1,那么就是将最里面的元素进行排序。
     c = np.sort(a,axis=0) #按照列进行排序,因为指定了axis=0

    还有ndarray.sort(),这个方法会直接影响到原来的数组,而不是返回一个新的排序后的数组。

  2. np.argsort:返回排序后的下标值。示例代码如下:

     np.argsort(a) #默认也是使用最后的一个轴来进行排序。
  3. 降序排序:np.sort默认会采用升序排序。如果我们想采用降序排序。那么可以采用以下方案来实现:

     # 1. 使用负号
     -np.sort(-a)
    ​
     # 2. 使用sort和argsort以及take
     indexes = np.argsort(-a) #排序后的结果就是降序的
     np.take(a,indexes) #从a中根据下标提取相应的元素

其他函数补充:

  1. np.apply_along_axis:沿着某个轴执行指定的函数。示例代码如下:

     # 求数组a按行求均值,并且要去掉最大值和最小值。
     np.apply_along_axis(lambda x:x[(x != x.max()) & (x != x.min())].mean(),axis=1,arr=a)
  2. np.linspace:用来将指定区间内的值平均分成多少份。示例代码如下:

     # 将0-1分成12分,生成一个数组
     np.linspace(0,1,12)
  3. np.unique:返回数组中的唯一值。

     # 返回数组a中的唯一值,并且会返回每个唯一值出现的次数。
     np.unique(a,return_counts=True)
    

更多:

https://docs.scipy.org/doc/numpy/reference/index.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值