返回介绍

第27单元 数组的聚合与排序

发布于 2024-01-28 22:01:16 字数 1188 浏览 0 评论 0 收藏 0

数据排序和聚合在数据科学中处于核心地位。数据科学研究通常从大量的数据开始,逐渐通过组合、平均、积累等方式来提炼数据,直到数据有望被分解为一个小型的、易于呈现和解释的集合。numpy模块提供了计算numpy数组的各种聚集量的函数:mean()、sum()、std()(标准方差)、min()和max()。

下面我们使用广播、聚合函数、通用函数和布尔索引的组合(几乎是我们的整套工具集),从第25单元给出的股票中,提取出股价变化超过所有8支股票平均值的投资组合:

   sap[         np.abs(stocks[0] - stocks[1])
       > np.mean(np.abs(stocks[0] - stocks[1]))]

➾ array(['MMM'],dtype='<U4')

说实话,其实不应该把股价变化大于零和小于零的混在一起考虑。

函数cumsum(x)和cumprod(x)分别计算累积和以及乘积量:cumsumi1ixi和cumprodi1ixi。可以将它们分别用作数据的加法(简单利息支付)和乘法(复利支付)积分器。(注意,如果数组的任意元素为0,则该元素对应的cumprod()元素及其后续所有元素都等于0。)

下面给出利率为3.75%时,近30年来的简单利息和复利的对比——只需要两行numpy代码加上绘制费用和税费:

interest.py

# 仅列出部分对比结果
RATE = .0375
TERM = 30
simple = (       RATE  * np.ones(TERM)).cumsum()
compound = ((1 + RATE) * np.ones(TERM)).cumprod() - 1

sort()函数可能是numpy模块中最没意思的函数。它只是将数组进行排序(覆盖原始数组顺序),并返回None。如果原始数组对你来说是比较宝贵的,那么在排序之前要先做一个副本。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文