首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Numpy基础入门(四)

精彩文章

文末免费领取500G干货教程

今日分享:ufunc运算及统计函数

Numpy库是一个科学计算库,既包括常见的四则运算布尔运算,也包括强大的函数运算,比如统计函数、各种数值处理函数、线性代数中的一些函数及概率论中的函数。在本文中着重介绍简单函数(类似于python中的函数)和一些常见的统计函数。

一:ufunc(一般函数)运算

四则运算

Numpy提供了很多ufunc函数,比如在python中接触到的加减乘除一类的,下面简单了解一下:

In [2]: a = np.array([1,2,3,4])

In [3]: b = np.array([2,3,4,5])

In [4]: np.add(a,b)

Out[4]: array([3, 5, 7, 9])

以上是计算数组a、b的和,其计算过程就是把相对应位置上的元素进行函数计算,输出结果是一个数组,如果未指定out参数,它将会重新产生一个新数组来保存结果

In [5]: np.add(a,b,a)

Out[5]: array([3, 5, 7, 9])

在这两行代码中,并不是a+b+a的意思,而是将前两个a+b的结果传递给a数组,第二个a就是输出结果参数out,代码中也可以写成 out=a ,通过这样的运算,a数据就不再是原始数组,而是新的一个数组,下面给出其他的四则运算函数:

np.suntract(a,b,[out=a or b])

减法

np.multiply(a,b,[out=a or b])

乘法

np.divide(a,b,[out=a or b])

除法

np.true_divide(a,b,[out=a or b])

除法,并返回精确的值,和上面的效果一样

np.floor_divide(a,b,[out=a or b])

除法,返回整数位数字,注意不进行四舍五入

np.negative(a,b,[out=a or b])

取反运算

np.power(a,b,[out=a or b])

幂运算

np.mod(a,b,[out=a or b])或np.remainder(a,b,[out=a or b])

取余运算

注意:以上中括号中的内容是可选的,并且输出结果参数只能在运算数组中选择某个。

比较运算

比较运算指的是利用 > 、

In [31]: a = np.array([1,2,3])

In [32]: b = np.array([3,2,1])

In [33]: a < b

Out[33]: array([ True, False, False], dtype=bool)

比较运算也是将对应位置的函数按照运算函数进行运算,返回布尔值到数组,下面给出其他的比较运算函数:

np.equal(a,b,[out=a or b])

表示a < b运算

np.not_equal(a,b,[out=a or b])

表示a = b运算

np.less(a,b,[out=a or b])

表示a < b运算

np.less_equal(a,b,[out=a or b])

表示a

np.greater(a,b,[out=a or b])

表示a > b运算

np.greater_equal(a,b,[out=a or b])

表示a >= b运算

比较运算仍可进行out参数设置,具体细节同上。

布尔运算

是指将多个比较运算的结果进行比较,由于比较运算结果是布尔形式的数组,因此成为布尔运算,其结果仍是一个布尔数组,布尔运算无非是not,and,or

这三个,但是需要注意的是,numpy中这些逻辑运算符都是以logical开头的,下面看一个示例:

In [31]: a = np.array([1,2,3])

In [32]: b = np.array([3,2,1])

In [33]: a < b

Out[33]: array([ True, False, False], dtype=bool)

In [34]: a == b

Out[34]: array([False, True, False], dtype=bool)

In [35]: np.logical_and(a

Out[35]: array([False, False, False], dtype=bool)

创建了两个数组,并进行比较运算,再将其进行布尔逻辑运算,得到一个全为Flase的数组,其实就是判断a < b和a == b是否同时存在,显然是不可能的,一个数不可能既小于又等于另外一个数。

二:描述性统计函数

下面介绍一些Numpy中基础的描述性的统计函数,以后在Pandas库中还会用到这些,届时也会拓展一些另外的统计分析函数。

In [45]: a = np.arange(12).reshape(3,4)

In [46]: a

Out[46]:

array([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]])

In [48]: np.max(a)

Out[48]: 11

按代码操作,提取整个数组的最大值

In [49]: np.max(a,axis=1)

Out[49]: array([ 3, 7, 11])

当设定轴参数axis为1时,是按行寻求最大值,总共三行,所以输出三个行最大值。

In [51]: np.max(a,axis=0)

Out[51]: array([ 8, 9, 10, 11])

当设定轴参数axis为0时,是按列寻求最大值,总共四列,所以输出四个列最大值。

其他的函数如下:

np.min()

求最小值

np.argmax()

求最大值的出现位置

np.maxmin()

求最小值的出现位置

np.sum()

求和

np.std()

求标准差

np.var()

求方差

np.ptp()

求极差

np.sort()

排序

np.median

求中位数

np.mean()

求平均数

np.average()

求平均数

这些描述性统计函数的具体操作方法与代码示例操作类似,可进行参数axis设置、参数out设置、dtype数据类型设置,大家可仿照练习。

干货免费分享

关注公众号即可一键领取

省去找资料的麻烦

为您的学习保驾护航

您的点赞与转发是我们前进的最大动力!

扫二维码进交流学习群

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180121G0JH9B00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券