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

Python数据分析之numpy(四)

今天主要来看下numpy中的排序功能。

1 排序

先来看一个例子:

np.sort可将数组排序,并不改变原有数组:

如果想将原数组变成排序后的数组,可以使用sort方法:

还有一个函数为argsort,它返回数组排序完成后的索引(并不是原数组对应的顺序):

注意,我们得到的是关于原数组对应排序完成后的索引,要得到排序后的新数组,只需:

2 广播

实际上,numpy的广播机制我们在之前的例子中就有所应用,那么什么是广播呢?我们来看个例子:

上图中y是一个数组,我们可以把它看成向量,而5是标量。按常理,向量和标量是不能相加的。但在numpy的机制中,y+5这个运算实际上把标量5扩展为向量数组[5,5,5],然后再和y中的每个元素相加,这个机制就叫做广播。

广播也是有一些规则的:

A.两个数组的维度不同,较小维度的数组在左边补1。

B.两个数组在任一维度都不匹配,维度为1的数组会自动扩展,以匹配另一个数组的形状。

C.两个数组在任一维度都不匹配,且没有维度为1,那么将会报错。

我们来举一些例子来理解上面的3个规则:

上图中,m为2*3数组,n为1维数组,即:

当我们进行m+n运算时,n的维度较小,所以左边补1,形状变为(1,3)。此时,m和n的第一个维度不匹配,所以维度为1的n数组扩展为(2,3),m+n即可进行运算:

再来看一个报错的例子:

现在有一个一维数组p,如果运行m+p,会发生什么情况呢?首先,p的维度较低,左边补1,扩展为(1,2)。然后,维度为1的数组再进行扩展,为(2,2)。而m的形状为(2,3),仍然不能匹配,所以会报错,无法进行计算:

numpy的介绍就到此为止了,之后会带来数据处理中经常使用的包——pandas,敬请期待。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券