numpy的random与基本计算

  • Random 产生随机数
    • randint(start, end, size, dtype=None) ,随机产生整数
    • random(size) ,随机产生 [0, 1)的浮点数
    • shuffle(array) , 随机打乱原数组
    • 参数(并不是所有方法都含有以下全部参数,具体根据使用方法而定)
参数
说明
start
随机范围的下边界
end
随机范围的上边界
size
随机结果的形态
dtype
随机结果的类型
 
def random():
    # numpy.random.randint(start, end, size, dtype=None)
    # 随机生成元素区间 [1, 100) 且元素个数为 12 的int64类型数组
    arr1 = np.random.randint(1, 100, 12, dtype=np.int64)
    # 更改数组形状为 3*4
    #  arr1: [ [72 83 38 32]
    #          [12 36 17 92]
    #          [19 34 57 20] ]
    arr1 = arr1.reshape(3, 4)

    # numpy.random.random(size)
    # 生成位于区间 [0, 1)之间返回随机浮点数
    # arr2: [0.480343 0.84162194 0.52011533 0.71096837 0.67357815 0.94794846]
    arr2 = np.random.random(6)

    # 生成 3*2 的随机数组
    # arr3: [ [0.00876662 0.09294199 0.23165923]
    #         [0.47272696 0.83836171 0.11378513] ]
    arr3 = np.random.random(size=(2, 3))

    # numpy.random.shuffle(x)
    # 随机打乱原来的数组
    arr4 = np.arange(0, 6, 1)
    # arr4: [2 0 4 3 5 1]
    np.random.shuffle(arr4)

    # 打乱以第一个索引为标准,即:一维数组arr[],打乱元素;二维数组arr[],打乱行,以此类推
    arr5 = np.arange(0, 6, 1).reshape(2, 3)
    # arr5: [ [3 4 5]
    #         [0 1 2] ]
    np.random.shuffle(arr5)
 
  • 转置,矩阵乘法,数组加减乘法,截断
    • np.transpose(arr)  或 arr.T , arr的转置
    • np.dot(arr1, arr2) 或 arr1@arr2 , 矩阵乘法
    • arr.clip(low, high) ,截断
    • arr1+arr2,arr1-arr2,arr1*arr2,arr1**2
# 数组的加减乘,矩阵乘法,转置,截断
def operation1():
    # 生成二维数组 a
    a = np.array([
        [1, 5],
        [4, 6]
    ], dtype=np.int)

    # 矩阵的转置,也可以 np.transpose(a)
    #  [ [1 4]
    #    [5 6] ]
    print("转置矩阵:\n", a.T)

    # A的转置乘以A
    #  [ [17 29]
    #    [29 61] ]
    print("实对称矩阵:\n", np.dot(a.T, a))
    # A的转置乘以A
    print("a@a:\n", a.T @ a)

    # clip截断,这是指先把所有小于3的元素变3,再把所有大于5的元素变5
    #  [ [3 5]
    #    [4 5] ]
    print("clip:\n", a.clip(3, 5))

    # 全部为3,先把所有小于6的变6,再把所有大于3的变3
    #  [ [3 3]
    #    [3 3] ]
    print("clip:\n", a.clip(6, 3))

    # b = np.array([
    #       [2, 3],
    #       [4, 5]
    # ])
    b = np.arange(2, 6, 1, dtype=np.int).reshape(2, 2)

    # 进行数组的加减运算,对应元素进行加减运算
    #  [ [ 3  8]
    #    [ 8 11] ]
    print("a+b:\n", a + b)

    #  [ [-1  2]
    #    [ 0  1] ]
    print("a-b:\n", a - b)

    # 数组a进行自乘,对应元素自乘
    #  [ [ 1 25]
    #    [16 36] ]
    print("a**2:\n", a ** 2)

    # 数组a与b相乘,对应元素相乘,注意这里不是矩阵乘法
    #  [ [ 2 15]
    #    [16 30] ]
    print("a*b:\n", a * b)

 

posted @ 2021-01-12 11:47  a最简单  阅读(174)  评论(0编辑  收藏  举报