美文网首页
numpy练习100题(1-25)

numpy练习100题(1-25)

作者: 海盗船长_coco | 来源:发表于2019-12-21 12:17 被阅读0次
    1. 导入numpy库并简写为 np
    import numpy as np
    
    1. 打印numpy的版本和配置说明
    print(np.__version__)
    print(np.show_config())
    
    1. 创建一个长度为10的空向量
    z = np.zeros(10)
    
    1. 如何找到任何一个数组的内存大小?(提示: size, itemsize) itemsize返回字节数,int为4字节,float为8字节
    z = np.zeros((10, 10), dtype=np.int)
    malloc = z.size * z.itemsize
    
    1. 如何从命令行得到numpy中add函数的说明文档?(提示: np.info)
    np.info(np.add)
    
    1. 创建一个长度为10并且除了第五个值为1的空向量(提示: array[4])
    z = np.zeros(10)
    z[4] = 1
    
    1. 创建一个值域范围从10到49的向量(提示: np.arange)
    z = np.arange(10, 49 + 1)
    
    1. 反转一个向量(第一个元素变为最后一个)(提示: array[::-1])
    b = z[::-1]
    
    1. 创建一个 3x3 并且值从0到8的矩阵(提示: reshape)
    matrix = np.arange(0, 9).reshape(3, 3)
    
    1. 找到数组[1,2,0,0,4,0]中非0元素的位置索引(提示: np.nonzero)
    array = np.array([1, 2, 0, 0, 4, 0])
    index = np.where(array != 0)
    index2 = np.nonzero(array)
    
    1. 创建一个 3x3 的单位矩阵(提示: np.eye)
    matrix = np.eye(3)
    
    1. 创建一个 3x3x3的随机数组(提示: np.random.random)
    array1 = np.random.rand(3, 3, 3)
    array2 = np.random.random((3, 3, 3))
    
    1. 创建一个 10x10 的随机数组并找到它的最大值和最小值
    array = np.random.random((10, 10))
    max_value = np.max(array)
    min_value = np.min(array)
    Zmin, Zmax = array.min(), array.max()
    
    1. 创建一个长度为30的随机向量并找到它的平均值
    array = np.random.random(30)
    mean1 = np.average(array)
    mean2 = array.mean()
    

    15.创建一二维数组,其中边界值为1,其余值为0(提示: array[1:-1, 1:-1])

    '''自实现 for循环时间复杂度更高
    array=np.ones((4,5))
    m,n=array.shape
    for i in range(1,m-1):
        for j in range(1,n-1):
            array[i,j]=0
    print(array)
    '''
    Z = np.ones((4, 5))
    Z[1:-1, 1:-1] = 0
    
    1. 对于一个存在在数组,如何添加一个用0填充的边界?(提示: np.pad)
    Z = np.ones((4, 5))
    newZ = np.pad(Z, pad_width=1, mode='constant', constant_values=0)
    
    1. 以下表达式运行的结果分别是什么?(提示: NaN = not a number, inf = infinity)
    r1 = 0 * np.nan  # nan
    r2 = (np.nan == np.nan)  # False   ==是值判断,由于np.nan没有值,所以不能值判断
    r3 = (np.nan is np.nan)  # True  is判断是否为同一个对象
    r4 = np.inf > np.nan  # False
    r5 = np.nan - np.nan  # nan
    r6 = (0.3 == 3 * 0.1)  # False 永远不要用==去比较浮点数,计算机实际储存的二进制浮点数近似。十进制的0.1不能精确表示为二进制小数
    # print(0.1+0.2)#0.30000000000000004,翻译的网址https://blog.csdn.net/Aven_n/article/details/103444340
    
    1. 创建一个 5x5的矩阵,并设置值1,2,3,4落在其对角线下方位置(提示: np.diag)
    matrix = np.zeros((5, 5))
    '''
    for i in range(len(matrix)):
        matrix[i+1:,i]=i+1
    print(matrix)
    '''
    Z = np.diag(1 + np.arange(4), k=-1)
    
    1. 创建一个8x8 的矩阵,并且设置成棋盘样式(提示: array[::2])
    matrix = np.zeros((8, 8))
    matrix[1::2, ::2] = 1
    matrix[::2, 1::2] = 1
    
    1. 考虑一个 (6,7,8) 形状的数组,其第100个元素的索引(x,y,z)是什么?(提示: np.unravel_index)
    array = np.random.random((6, 7, 8))  # [1,5,4]  1*7*8+5*8+4=100
    index = np.unravel_index(100, (6, 7, 8))  # 返回下标
    
    1. 用tile函数去创建一个 8x8的棋盘样式矩阵(未想到)
    Z = np.tile(np.array([[0, 1], [1, 0]]), (4, 4))
    
    1. 对一个5x5的随机矩阵做归一化(提示: (x - min) / (max - min))
    Z = np.random.random((5, 5))
    Zmax, Zmin = Z.max(), Z.min()
    Z = (Z - Zmin) / (Zmax - Zmin)
    
    1. 创建一个将颜色描述为(RGBA)四个无符号字节的自定义dtype?(提示: np.dtype)
    color = np.dtype([("r", np.ubyte, 1),
                      ("g", np.ubyte, 1),
                      ("b", np.ubyte, 1),
                      ("a", np.ubyte, 1)])
    
    1. 一个5x3的矩阵与一个3x2的矩阵相乘,实矩阵乘积是什么?(提示: np.dot)
    matrix1=np.random.random((5,3))
    matrix2=np.random.random((3,2))
    result=matrix1.dot(matrix2)
    
    1. 给定一个一维数组,对其在3到8之间的所有元素取反(提示: >, <=)
    Z = np.arange(11)
    Z[(3 < Z) & (Z <= 8)] *= -1
    print(Z)
    

    相关文章

      网友评论

          本文标题:numpy练习100题(1-25)

          本文链接:https://www.haomeiwen.com/subject/xoqgnctx.html