使用Python生成数据
使用python原生函数
使用range函数可创建一个整数列表
list = range(10) # 从0开始到10 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print([i for i in list])print([i*1 for i in list]) # 使用for循环range(1, 11) # 从 1开始到11: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]range(0, 30, 5) # 步长为 2: [0, 2, 4, 6, 8]range(0, -10, -1) # 负数:[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]range(0) # 空数组 []range(1, 0) # 空数组 []
使用random函数
import randomprint( random.random() ) # 产生 0 到 1 之间的随机浮点数random.randint(1,10) # 产生 1 到 10 的一个整数型随机数random.uniform(1.1,5.4) # 产生 1.1 到 5.4 之间的随机浮点数,区间可以不是整数random.choice('abcdefghijklmn') # 从序列中随机选取一个元素random.randrange(0, 100, 2) # 生成从1到100的间隔为2的随机整数[0-100)的偶数random.shuffle([1,3,5,6,7]) # 将序列中的元素顺序打乱
使用numpy
使用np.arange()
类似于range,通过指定开始值,终值和步长来创建表示等差数列的一维数组
array = np.arange(10) # list = range(10)print(list) print(array) # [0 1 2 3 4 5 6 7 8 9]# ! 2个函数生成的类型不同,但用法类似print(type(array))print(type(list)) print(len(array)) # print(len(list))print(np.arange(1, 11)) # [ 1 2 3 4 5 6 7 8 9 10]print(np.arange(1, 2, 0.1)) # [1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9] 步长可用小数
使用 np.linspace()
该函数第三个参数指定的是元素个数,它表示给定起始值和终点值以及元素个数,生成一个一维的等差数列。
含有参数endpoint布尔值,默认为True表示包含终值,设定为False表示不包含终值。
np.linspace(0,1,10)# [ 0., 0.11111111, 0.22222222, 0.33333333, 0.44444444,0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])np.linspace(0,1,10,endpoint = False) # [ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]#生成等比数列 基数默认为10np.logspace(0,4,3) # [1.e+00 1.e+02 1.e+04]np.logspace(0,4,3,base = 2) # [ 1. 4. 16.] 起点为2^0 = 1,终点为2^4 = 16,一共按照等比数列生成3个点
创建指定的形状和类型数组
# 只分配数组所使用的内存,不对数据初始化起作用np.empty(4,np.int32) np.empty((2,3),np.int32)# np.ones(4) # [1. 1. 1. 1.]np.ones((2,3)) np.ones(4, dtype = np.bool) # [ True True True True]# np.zeros(4, dtype = np.bool) # [False False False False]np.zeros(4) # [0. 0. 0. 0.]# 生成初始化为指定值的数组np.full(4,np.pi)np.full((2,3), -1)# 创建参数形状相同的数组a = np.arange(6).reshape(2,3)np.zeros_like(a) # [[0 0 0][0 0 0]]np.ones_like(a)) # [[1 1 1][1 1 1]]# 从指定的函数中生成数组,第一个参数是函数名称,第二个参数是数组形状np.fromfunction(lambda a, b : a == b, (3, 3)) # [[ True False False]# [False True False]# [False False True]]np.fromfunction(lambda i:i%7 +1,(10,)) # [ 1., 2., 3., 4., 5., 6., 7., 1., 2., 3.]