zoukankan      html  css  js  c++  java
  • 100道练习,带你玩转Numpy之1-20

    来源:https://www.kesci.com/mw/project/59f29f67c5f3f5119527a2cc

    1. 导入numpy库并简写为 np

    1 import numpy as np

    2. 打印numpy的版本和配置说明

    1 print(np.__version__)
    2 np.show_config()

    3. 创建一个长度为10的空向量

    1 Z = np.zeros(10)
    2 print(Z)

    4. 如何找到任何一个数组的内存大小?

    1 z = np.zeros((10,10))
    2 print('%d bytes' %(z.size * z.itemsize))

    注:itemsize输出array元素的字节数ndarray.size 返回数组的大小,即shape中的乘积。

    5. 如何从命令行得到numpyadd函数的说明文档?

    1 np.info(np.add)

    6. 创建一个长度为10并且除了第五个值为1的空向量

    1 z = np.zeros(10)
    2 z[4] = 1
    3 print(z)

    7. 创建一个值域范围从10到49的向量

    1 z = np.arange(10,50)
    2 print(z)

    8. 反转一个向量(第一个元素变为最后一个)

    1 z = np.arange(5)
    2 z = z[::-1]
    3 print(z)

    9. 创建一个 3x3 并且值从0到8的矩阵

    1 z = np.arange(9).reshape(3,3)
    2 print(z)

    10. 找到数组[1,2,0,0,4,0]中非0元素的位置索引

    1 z = np.nonzero([1,2,0,0,4,0])
    2 print(z)

    11. 创建一个 3x3 的单位矩阵

    1 z = np.eye(3)
    2 print(z)

    12. 创建一个 3x3x3的随机数组

    1 z = np.random.random((3,3,3))
    2 print(z)

    注:Python中的random模块用于生成随机数。

    13. 创建一个 10x10 的随机数组并找到它的最大值和最小值

    1 z = np.random.random((10,10))
    2 zmin, zmax = z.min(), z.max()
    3 print(zmin, zmax)

    14. 创建一个长度为30的随机向量并找到它的平均值

    1 z = np.random.random(30)
    2 zm = z.mean()
    3 print(zm)

    15. 创建一个二维数组,其中边界值为1,其余值为0

    1 z = np.ones((6,6))
    2 z[1:-1,1:-1] = 0
    3 print(z)
    1 [[1. 1. 1. 1. 1. 1.]
    2  [1. 0. 0. 0. 0. 1.]
    3  [1. 0. 0. 0. 0. 1.]
    4  [1. 0. 0. 0. 0. 1.]
    5  [1. 0. 0. 0. 0. 1.]
    6  [1. 1. 1. 1. 1. 1.]]

    16. 对于一个存在在数组,如何添加一个用0填充的边界?

    1 z = np.ones((5,5))
    2 z = np.pad(z,pad_width=1, mode='constant', constant_values=0)
    3 print(z)
    1 [[0. 0. 0. 0. 0. 0. 0.]
    2  [0. 1. 1. 1. 1. 1. 0.]
    3  [0. 1. 1. 1. 1. 1. 0.]
    4  [0. 1. 1. 1. 1. 1. 0.]
    5  [0. 1. 1. 1. 1. 1. 0.]
    6  [0. 1. 1. 1. 1. 1. 0.]
    7  [0. 0. 0. 0. 0. 0. 0.]]

    注:pad填充函数,https://blog.csdn.net/zenghaitao0128/article/details/78713663

    17. 以下表达式运行的结果分别是什么?

    1 print(0 * np.nan)
    2 print(np.nan == np.nan)
    3 print(np.inf > np.nan)
    4 print(np.nan - np.nan)
    5 print(0.3 == 3 * 0.1)
    1 nan
    2 False
    3 False
    4 nan
    5 False

    注:要想直接赋值nan和inf需要修改数组的数据类型为float

    nan和inf的区别参考:https://www.cnblogs.com/wt7018/p/11968326.html

    18. 创建一个 5x5的矩阵,并设置值1,2,3,4落在其对角线下方位置

    1 z = np.diag(1+np.arange(4), k=-1)
    2 print(z)
    1 [[0 0 0 0 0]
    2  [1 0 0 0 0]
    3  [0 2 0 0 0]
    4  [0 0 3 0 0]
    5  [0 0 0 4 0]]

    注:https://blog.csdn.net/qq_35277038/article/details/80766746

    https://blog.csdn.net/porly/article/details/7872313?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

    19. 创建一个8x8 的矩阵,并且设置成棋盘样式

    1 Z = np.zeros((8,8),dtype=int)
    2 Z[1::2,::2] = 1
    3 Z[::2,1::2] = 1
    4 print(Z)
    1 [[0 1 0 1 0 1 0 1]
    2  [1 0 1 0 1 0 1 0]
    3  [0 1 0 1 0 1 0 1]
    4  [1 0 1 0 1 0 1 0]
    5  [0 1 0 1 0 1 0 1]
    6  [1 0 1 0 1 0 1 0]
    7  [0 1 0 1 0 1 0 1]
    8  [1 0 1 0 1 0 1 0]]

    注: ::2表示隔行采样

    20. 考虑一个 (6,7,8) 形状的数组,其第100个元素的索引(x,y,z)是什么?

    1 print(np.unravel_index(100,(6,7,8)))
    1 (1, 5, 4)

    注:https://blog.csdn.net/Amanda_python/article/details/109180881?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

  • 相关阅读:
    elasticSearch 查询 bool
    elasticSearch 查询 term
    elasticSearch 查询 match
    python re
    vue day1
    mysql 报错记录
    node.js vue.js 安装
    mysql 插入数据 ,存在跳过
    打印乘法口诀表
    初步使用分支、循环判断数字大小
  • 原文地址:https://www.cnblogs.com/vvzhang/p/14342324.html
Copyright © 2011-2022 走看看