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)