• NumPy进阶修炼|热身20题


    我的公众号:早起Python

    关注第一时间接收最新文章

    ===

    大家好,NumPy系列讲解已经更新了两期,今天将整理一些相关的题目来实际操作一下,因为在Pandas系列中有涉及到部分NumPy操作因此我也不确定最终会有多少题,暂且先来个20题热热身吧!

    01数据查看

    题目:导入并查看NumPy版本

    难度:⭐

    答案

    import numpy as np
    print(np.__version__)

    备注:你需要关注你的NumPy版本,部分方法会随着版本更新而变化

    02数据创建

    题目:创建十个全为0的一维数组

    难度:⭐

    期望结果

    array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])

    答案

    np.zeros(10)

    03数据创建

    题目:创建10个全为0的一维数据并修改数据类型为整数

    难度:⭐

    答案

    np.zeros(10,dtype = 'int')

    04数据创建

    题目:创建20个0-100固定步长的数

    难度:⭐

    期望答案

    array([ 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80,
           85, 90, 95])

    答案

    np.arange(0,100,5)

    05数据创建

    题目:从list创建数组

    难度:⭐

    输入

    List = [1,2,3,4,5,6,7,8,9]

    答案

    result = np.array(List)

    06数据创建

    题目:创建一个三行三列全是1的矩阵

    难度:⭐

    答案

    #方法1
    np.ones((3,3))
    #方法2
    np.array([[ 1., 1., 1.],
           [ 1., 1., 1.],
           [ 1., 1., 1.]])

    07数据创建

    题目:创建一个2行2列矩阵并且元素为布尔类型的True

    难度:⭐⭐

    期望结果

    array([[ True, True],
           [ True, True]])

    答案

    np.full((2,2), True, dtype=bool)

    08数据创建

    题目:创建等差数列

    备注:从5开始,50结束,共10个数据

    难度:⭐

    答案

    np.linspace(start=5,stop=50,num=10)

    09数据创建

    题目:创建等差数列

    备注1:从5开始,50结束,共10个数据,数据类型为int32

    难度:⭐⭐答案

    np.arange(start = 5, stop = 55, step = 5,dtype = 'int32')

    备注2:思考与上一题的不同

    10数据创建

    题目:创建3x3矩阵备注:矩阵元素均为0—10之间的随机数

    难度:⭐

    答案

    np.random.randint(0,10,(3,3))

    11数据创建

    题目:创建3x3矩阵备注:矩阵元素均为服从标准正态分布的随机数

    难度:⭐

    答案

    np.random.randn(3, 3)

    12数据重塑

    题目:将第五题的result修改为3x3矩阵

    难度:⭐

    答案

    result = result.reshape(3,3)

    13数据修改

    题目:对上一题生成的result取转置

    难度:⭐

    答案

    result.T

    14数据查看

    题目:查看result的数据类型

    难度:⭐

    答案

    result.dtype
    #dtype('int64')

    15数据查看

    题目:查看result的内存占用

    难度:⭐

    备注:直接查看或手动计算

    答案

    #方法一:直接查看
    result.nbytes
    #方法2
    手动计算
    result.itemsize * 9
    #72

    16数据创建

    题目:将result的数据类型修改为float

    难度:⭐

    答案

    result = result.astype(float)

    17数据提取

    题目:提取result第三行第三列的元素

    难度:⭐

    答案

    result[2,2]

    18数据修改

    题目:将result第三行第三列的元素放大十倍

    难度:⭐

    答案

    result[2,2] = result[2,2] * 10

    19数据提取

    题目:提取result中的所有偶数

    难度:⭐⭐

    期望输出

    array([ 2., 4., 6., 8., 90.])

    答案

    result[result % 2 == 0]

    20数据修改

    题目:将result中所有奇数修改为666

    难度:⭐⭐

    答案

    result[result % 2 == 1] = 666

    以上就是NumPy进阶修炼系列的第一期习题,主要以基础操作为主,虽然简单但是你都会吗?使用方法当然是打开Notebook完整的敲一遍,当然也可以收藏当成速查手册使用,下期我们将更深入的讲解更多NumPy相关操作并附上习题,拜拜~

  • 相关阅读:
    对PostgreSQL的 seq scan , bitmap index scan 和 index scan 的进一步理解
    C# IEnumerable和IEnumerator的区别,如何实现
    老板运煤问题及解决方案
    快速排序和简单排序
    给定数组,查找最小的k个元素或最大的k个元素
    一列数字的规则如下;1,1,2,3,5,8,13,21,34........ 求第30位数字是多少,用递规和非递归两种方法算法实现
    C# 如何利用反射来加载程序集,并调用程序集中有关类的方法
    http 请求 header 应用分析
    templatemonster 10231 面朝大海 你听到什么?
    足球俱乐部 网站模板 附带源文件 字体
  • 原文地址:https://www.cnblogs.com/liuzaoqi/p/13041410.html
Copyright © 2020-2023  润新知