1 import numpy as np 2 import random 3 4 arr = np.array([1,2,3,4]) 5 print('arr:\n', arr) 6 print('arr的类型:\n', type(arr)) 7 8 # 用arange来创建数组 9 arr = np.arange(0, 5, 2) 10 print('arr:\n', arr) 11 print('arr的类型:\n', type(arr)) 12 13 # 生成一个等差数组 14 # 参数1 开始位置 15 # 参数2 结束位置 16 # 参数3 生成的数组的元素个数 17 # endpoint=True --包含结束位置 18 arr = np.linspace(0, 5, 6) 19 print('arr:\n', arr) 20 print('arr的类型:\n', type(arr)) 21 22 # 生成一个等比数组 23 # 参数1 开始位置 24 # 参数2 结束位置 25 # 参数3 生成数组的元素的个数 26 # endpoint=True --包含结束位置 27 # base=10.0 28 arr = np.logspace(0, 4, 3, base=4) 29 print('arr:\n', arr) 30 print('arr的类型:\n', type(arr)) 31 32 # zeros ones diag eye 来创建数组 33 34 # 生成一个元素都是0的数组 35 arr = np.zeros(shape=(2, 3)) 36 arr = np.zeros(shape=[2, 3]) 37 print('arr:\n', arr) 38 print('arr的类型:\n', type(arr)) 39 print('arr的维度:', arr.ndim) 40 print('arr的形状:', arr.shape) 41 42 # 生成一个元素都是1的数组 43 arr = np.ones(shape=(2, 3)) 44 print('arr:\n', arr) 45 print('arr的类型:\n', type(arr)) 46 print('arr的维度:', arr.ndim) 47 print('arr的形状:', arr.shape) 48 49 # 创建一个类似对角矩阵的数组 50 arr = np.diag([1, 2, 3, 4], k=0) 51 # 如果k>0,给定的值在正对角线的位置向上偏移k单位 52 arr = np.diag([1, 2, 3, 4], k=1) 53 # 如果k<0,给定的值在正对角线的位置向下偏移k单位 54 arr = np.diag([1, 2, 3, 4], k=-1) 55 print('arr:\n', arr) 56 print('arr的类型:\n', type(arr)) 57 print('arr的维度:', arr.ndim) 58 print('arr的形状:', arr.shape) 59 60 arr = np.diag(v=[[1, 2],[2, 4]]) 61 hh = np.array([[1, 2, 3], [3, 4, 5]]) 62 # # 如果v为二维数组,且k=0,那么获取的对角线结果 63 # arr = np.diag(v=hh, k=0) 64 arr = np.diag(v=hh, k=1) 65 arr = np.diag(v=hh, k=-1) 66 print('arr:\n', arr) 67 print('arr的类型:\n', type(arr)) 68 print('arr的维度:', arr.ndim) 69 print('arr的形状:', arr.shape) 70 71 # 生成一个类似单位矩阵的数组 72 # N 行数 73 # M 列数 可以省略 74 arr = np.eye(N=2, M=2, k=0) 75 arr = np.eye(N=2, M=2, k=1) 76 arr = np.eye(N=3, k=0) 77 print('arr:\n', arr) 78 print('arr的类型:\n', type(arr)) 79 print('arr的维度:', arr.ndim) 80 print('arr的形状:', arr.shape) 81 82 # 创建随机数组 83 arr = np.random.random(size=10) 84 arr = np.random.random(10) 85 arr = np.random.random(size=(2, 3)) # 用size不用shape 86 print('arr:\n', arr) 87 print('arr的类型:\n', type(arr)) 88 print('arr的维度:', arr.ndim) 89 print('arr的形状:', arr.shape) 90 91 # # 生成服从均匀分布的随机数组[0, 1) 92 # # 均匀分布是由大量数据产生的结论,可以应用于少量数据——但不能分局少量数据推测不出均匀分布 93 arr = np.random.rand(30) # 生成数组的元素个数 94 arr = np.random.rand(2, 3) # 生成数组的行列数 95 # arr = np.random.rand((2, 3)) # 这是错误的,不能是形状 96 print('arr:\n', arr) 97 print('arr的类型:\n', type(arr)) 98 print('arr的维度:', arr.ndim) 99 print('arr的形状:', arr.shape) 100 101 # 生成一个符合正态分布的数组 102 # 正态分布——由大量数据产生的结论,可以应用于少量数据——但不能根据少量数据推测出正态分布 103 # μ——数学期望——均值 104 # σ——标准差,反应的是数据的离散程度 105 # σ越大,说明数据越离散,图像就越平滑,σ越小,说明数据越聚集,图像就越陡峭 106 # 如果均值为μ=0.0,标准差σ=1.0,此时为标准正态分布 107 # 生成一个符合标准正态分布的数组 108 print("正态分布") 109 arr = np.random.randn(10) # 可以传生成元组的个数 110 arr = np.random.randn(2, 3) # 可以传生成元组的行列数 111 # arr = np.random.randn((2, 3)) # 错误,不可以传形状 112 print('arr:\n', arr) 113 print('arr的类型:\n', type(arr)) 114 print('arr的维度:', arr.ndim) 115 print('arr的形状:', arr.shape) 116 117 # 创建某区间内的随机整数数组 118 # 生成[low, high)内指定size的随机整数数组 119 arr = np.random.randint(low=1, high=5, size=10) 120 arr = np.random.randint(low=1, high=5, size=(2, 3)) 121 print('arr:\n', arr) 122 print('arr的类型:\n', type(arr)) 123 print('arr的维度:', arr.ndim) 124 print('arr的形状:', arr.shape) 125 126 # 创建某个区间内的随机小数数组 127 # 默认生成[0, 1)范围内的随机小数数组,可以指定生成小数的范围 128 arr = np.random.uniform(size=10) 129 arr = np.random.uniform(size=(2, 3)) 130 arr = np.random.uniform(low=2, high=3, size=(2, 3)) 131 print('arr:\n', arr) 132 print('arr的类型:\n', type(arr)) 133 print('arr的维度:', arr.ndim) 134 print('arr的形状:', arr.shape)