[educoder]2、NumPy数组的高级操作


NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。是在学习机器学习、深度学习之前应该掌握的一个非常基本且实用的Python库。

本实训将介绍 NumPy 的一些更高级的知识与使用方法。实训通关后你将学会 NumPy 的进阶使用技能,并为后续的综合练习部分打好基础。如果你对NumPy的基础知识不熟,可以看看这里

PS:若需要更加详细的查阅NumPy所提供的接口,可以查阅官方文档

第1关:堆叠操作

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

feature1:待hstack的ndarray;

feature2:待hstack的ndarray;

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

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

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

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

测试用例输入是一个字典,feature1部分代表函数中的feature1,feature2部分代表函数中的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 *********#
    feature3 = np.hstack((feature1,feature2))
    return feature3.mean(axis = 0)
    
    #********* End *********#

第2关:比较、掩码和布尔逻辑

编程要求
请在右侧编辑器Begin-End处补充代码,根据输入的数据筛选出大于num的值。

具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明
平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:
[[ 3 ,15, 9 ,11 , 7],[ 2, 0 , 8, 19 ,16],[ 6 , 6, 16 , 9, 5],[ 7 , 5 , 2 , 6 ,13]] 10

预期输出:
[15 11 19 16 16 13]

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

import numpy as np


def student(num,input_data):
    result=[]
    # ********* Begin *********#
    a = np.array(input_data)
    result = a[a > num]




    # ********* End *********#
    return result
    

第3关:花式索引与布尔索引

编程要求
请在右侧编辑器Begin-End处补充代码,根据函数参数input_data过滤出所有的大写字母。

具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明
平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:
[“d”,“a”,“A”,“p”,“b”,“I”,“C”,“K”]

预期输出:
[‘A’ ‘I’ ‘C’ ‘K’]

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

import numpy as np

def student(input_data):
    result=[]
    #********* Begin *********#
    d = np.array(input_data)
    result = d[(d >= 'A') & (d <= 'Z')]

    # ********* End *********#
    return result

第4关:广播机制

编程要求
请在右侧编辑器Begin-End处补充代码,将输入数据转换为array并计算它们的和。

具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明
平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:

[[9, 3, 1], [7, 0, 6], [4, 6, 3]] [1, 5, 9] [[9], [6], [7]]

预期输出:

[[19 17 19]
[14 11 21]
[12 18 19]]
开始你的任务吧,祝你成功!

import numpy as np

def student(a,b,c):
    result=[]
    # ********* Begin *********#
    a = np.array(a)
    b = np.array(b)
    c = np.array(c)
    result = a + b + c



    # ********* End *********#
    return result

第5关:线性代数

编程要求
请在右侧编辑器Begin-End处补充代码,计算性别为男的线性方程解,前两个数为方程左边,最后一个数为方程右边。

具体要求请参见后续测试样例。
请先仔细阅读右侧上部代码编辑区内给出的代码框架,再开始你的编程工作!

测试说明
平台会对你编写的代码进行测试,对比你输出的数值与实际正确的数值,只有所有数据全部计算正确才能进入下一关。

测试输入:

[[“男”,2,4,40],[“女”,8,3,17],[“男”,8,6,24]]

预期输出:

[[-7.2]
[13.6]]
提示:测试数据的方程为2x+4y=40,8x+6y=24。

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

from numpy import linalg
import numpy as np
def student(input_data):
    '''
    将输入数据筛选性别为男,再进行线性方程求解
    :param input_data:类型为`list`的输入数据
    :return:类型为`ndarray`
    '''
    result=[]
    # ********* Begin *********#
    a = np.array(input_data)
    x=[]
    y=[]
    for i in a:
        if i[0]=="男":
            x.append([int(i[1]),int(i[2])])
            y.append([int(i[-1])])
    if x==[] and y==[]:
        return result
    x=np.array(x)
    y=np.array(y)
    result=linalg.solve(x,y)
    # ********* End *********#
    return result


  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值