Educoder python NumPy数组的高级操作 第1关:堆叠操作

 题目链接:https://www.educoder.net/tasks/64reqnl98cyv


任务描述

本关任务:根据本关所学知识,实现均值统计功能。

相关知识

为了完成本关任务,你需要掌握stack的操作。

stack

stack的意思是堆叠的意思,所谓的堆叠就是将两个ndarray对象堆叠在一起组合成一个新的ndarray对象。根据堆叠的方向不同分为hstack以及vstack两种。

hstack

假如你是某公司的HR,需要记录公司员工的一些基本信息。可能你现在已经记录了如下信息:

工号 姓名 出生年月 联系电话
1 张三 1988.12 13323332333
2 李四 1987.2 15966666666
3 王五 1990.1 13777777777
4 周六 1996.4 13069699696

世界上没有不变的需求,你的老板让你现在记录一下公司所有员工的居住地址和户籍地址,此时你只好屁颠屁颠的记录这些附加信息。然后可能会有这样的结果:

居住地址 户籍地址
江苏省南京市禄口机场宿舍202 江西省南昌市红谷滩新区天月家园A座2201
江苏省南京市禄口机场宿舍203 湖南省株洲市天元区新天华府11栋303
江苏省南京市禄口机场宿舍204 四川省成都市武侯祠安置小区1栋701
江苏省南京市禄口机场宿舍205 浙江省杭州市西湖区兴天世家B座1204

接下来你需要把之前记录的信息和刚刚记录好的附加信息整合起来,变成酱紫:

工号 姓名 出生年月 联系电话 居住地址 户籍地址
1 张三 1988.12 13323332333 江苏省南京市禄口机场宿舍202 江西省南昌市红谷滩新区天月家园A座2201
2 李四 1987.2 15966666666 江苏省南京市禄口机场宿舍203 湖南省株洲市天元区新天华府11栋303
3 王五 1990.1 13777777777 江苏省南京市禄口机场宿舍204 四川省成都市武侯祠安置小区1栋701
4 周六 1996.4 13069699696 江苏省南京市禄口机场宿舍205 浙江省杭州市西湖区兴天世家B座1204

看得出来,你在整合的时候是将两个表格(二维数组)在水平方向上堆叠在一起组合起来,拼接成一个新的表格(二维数组)。像这种行为称之为hstackhorizontal stack)。

NumPy提供了实现hstack功能的函数叫hstackhstack的使用套路代码如下:


 
  1. import numpy as np
  2.  
  3. a = np.array([[8, 8], [0, 0]])
  4. b = np.array([[1, 8], [0, 4]])
  5.  
  6. '''
  7. 将a和b按元组中的顺序横向拼接
  8. 结果为:[[8, 8, 1, 8],
  9. [0, 0, 0, 4]]
  10. '''
  11. print(np.hstack((a,b)))
  12.  
  13. c = np.array([[1, 2], [3, 4]])
  14.  
  15. '''
  16. 将a,b,c按元组中的顺序横向拼接
  17. 结果为:[[8, 8, 1, 8, 1, 2],
  18. [0, 0, 0, 4, 3, 4]]
  19. '''
  20. print(np.hstack((a,b,c)))

vstack

你还是某公司的HR,你记录了公司员工的一些信息,如下:

工号 姓名 出生年月 联系电话
1 张三 1988.12 13323332333
2 李四 1987.2 15966666666
3 王五 1990.1 13777777777
4 周六 1996.4 13069699696

今天有两位新同事入职,你需要记录他们的信息,如下:

工号 姓名 出生年月 联系电话
5 刘七 1986.5 13323332331
6 胡八 1997.3 15966696669

然后你需要将新入职同事的信息和已经入职的员工信息整合在一起。

工号 姓名 出生年月 联系电话
1 张三 1988.12 13323332333
2 李四 1987.2 15966666666
3 王五 1990.1 13777777777
4 周六 1996.4 13069699696
5 刘七 1986.5 13323332331
6 胡八 1997.3 15966696669

在这种情况下,你在整合的时候是将两个表格(二维数组)在竖直方向上堆叠在一起组合起来,拼接成一个新的表格(二维数组)。像这种行为称之为vstackvertical stack)。

NumPy提供了实现vstack功能的函数叫vstackvstack的使用套路代码如下:


 
  1. import numpy as np
  2.  
  3. a = np.array([[8, 8], [0, 0]])
  4. b = np.array([[1, 8], [0, 4]])
  5.  
  6. '''
  7. 将a和b按元组中的顺序纵向拼接
  8. 结果为:[[8, 8]
  9. [0, 0]
  10. [1, 8]
  11. [0, 4]]
  12. '''
  13. print(np.vstack((a,b)))
  14.  
  15. c = np.array([[1, 2], [3, 4]])
  16.  
  17. '''
  18. 将a,b,c按元组中的顺序纵向拼接
  19. 结果为:[[8 8]
  20. [0 0]
  21. [1 8]
  22. [0 4]
  23. [1 2]
  24. [3 4]]
  25. '''
  26. print(np.vstack((a,b,c)))

编程要求

根据本关所学知识,补充完成get_mean(featur1, feature2)函数,其中:

  • feature1:待hstackndarray

  • feature2:待hstackndarray

  • 返回值:类型为ndarray,其中值为hstack后每列的平均值;

  • 具体要求请参见后续测试样例。

请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明

平台会对你编写的代码进行测试。你只需按要求完成函数即可。

测试用例输入是一个字典,feature1部分代表函数中的feature1feature2部分代表函数中的feature2

测试输入:

{'feature1':[[1, 2, 3, 4], [4, 3, 2, 1], [2, 3, 4, 5]], 'feature2':[[1], [2], [3]]}

预期输出:

[2.33333333 2.66666667 3. 3.33333333 2. ]


开始你的任务吧,祝你成功!

 

import numpy as np
def get_mean(feature1, feature2):
    '''
    将feature1和feature2横向拼接,然后统计拼接后的ndarray中每列的均值
    :param feature1:待`hstack`的`ndarray`
    :param feature2:待`hstack`的`ndarray`
    :return:类型为`ndarray`,其中的值`hstack`后每列的均值
    '''
    #********* Begin *********#
    new_data = np.hstack((feature1, feature2))
    return new_data.mean(axis=0)
    #********* End *********#

 

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值