文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
第27单元 数组的聚合与排序
数据排序和聚合在数据科学中处于核心地位。数据科学研究通常从大量的数据开始,逐渐通过组合、平均、积累等方式来提炼数据,直到数据有望被分解为一个小型的、易于呈现和解释的集合。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)分别计算累积和以及乘积量:cumsumi=Σ1ixi和cumprodi=Π1ixi。可以将它们分别用作数据的加法(简单利息支付)和乘法(复利支付)积分器。(注意,如果数组的任意元素为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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论