python创建数值列表的方法

Python创建数值列表的方法

在Python中,创建数值列表是非常常见的任务之一。无论是为了进行数据分析、统计学习、量化金融、机器学习还是深度学习,都要使用到形如[1,2,3,4,5,6]这样的数值列表。下面将介绍3种常用的Python创建数值列表的方法。

方法一:使用range()函数

Python内置函数range()可以方便地生成数值序列。使用range()函数创建一个数值列表通常有以下3个参数:

- range(start, stop, step)

start:数值列表的起始数字(可以省略,默认从0开始);

stop:数值列表的结束数字(必填);

step:数值列表的步长(可以省略,默认为1)。

下面是一个例子,使用range()函数创建数值列表:

import numpy as np

a = list(range(0, 10, 2)) # 生成0,2,4,6,8这些数字

print(a)

输出结果为:

[0, 2, 4, 6, 8]

在Python中,range()函数的返回值是一个迭代器对象,如果需要生成数值列表,需要使用list()函数把迭代器转换为列表。

方法二:使用numpy.linspace()

numpy是Python科学计算的重要的第三方库,它为我们提供了很多方便好用的数值计算函数,其中linspace()函数可以生成等差数列。

使用numpy.linspace()创建一个数值列表通常有以下3个参数:

- linspace(start, stop, num)

start:数值列表的起始数字(必填);

stop:数值列表的结束数字(必填);

num:生成数值列表中数字的个数(必填)。

下面是一个例子,使用numpy.linspace()函数创建数值列表:

a = np.linspace(0, 1, num=11) # 生成0到1之间10等分的数字列表(包含0和1)

print(a)

输出结果为:

[0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]

方法三:使用列表推导式

列表推导式是Python流行的编程语言之一。它可以在一条语句中生成列表,并且具有非常高的灵活性。使用列表推导式实现创建数值列表通常如下:

a = [expression for item in iterable]

其中,expression是一个表达式,item是一个可迭代对象的元素,iterable是一个可迭代对象(如:list、tuple、dict、set、string以及其他一些类型)。

下面是一个例子,使用列表推导式创建等差数列:

a = [i/10 for i in range(11)] # 生成从0到1之间10等分的数字列表(包含0和1)

print(a)

输出结果为:

[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]

这个例子中,使用了列表推导式,依次取i/10的值,i的值从0到10。

总结

如上所述,Python创建数值列表有3种常用的方法:使用range()函数、numpy.linspace()函数和列表推导式。其中,使用range()函数生成数值序列可读性较高,使用numpy.linspace()函数可生成等差数列,使用列表推导式的灵活性较高。在适当的时候选择使用不同的方法来创建数值列表,可以大大提高Python编程的效率。

最后,为了让大家更好的理解上面的内容,这里提供附加练习:请使用numpy库生成一个长度为100,均值为1,标准差为0.6的随机数据集,并且将其记录为numpy数组x。

import numpy as np

# 生成长度为100,均值为1,标准差为0.6的随机数据集

x = np.random.normal(loc=1, scale=0.6, size=100)

print(x)

输出结果如下:

[ 0.23697958 1.16562134 1.0092708 0.68205415 1.13347582 -0.24911961

0.93306281 1.4624232 1.5380621 1.33419899 1.22884857 0.62520394

1.54273266 0.81773815 1.11250553 1.19039242 1.54598764 1.10795946

1.15662304 0.67913886 0.99485232 1.83448881 1.22406734 1.05244949

1.64346912 1.37216864 1.302899 1.21535159 1.15223116 1.11787923

1.32866407 1.1906079 0.83237052 0.83609183 0.38326063 1.26458571

1.06979519 1.3863765 0.66672094 0.55441852 1.46187009 0.70436297

1.16042532 1.2047945 1.07265422 0.52021055 1.68672914 0.42797905

0.45425457 0.72744644 0.55179188 0.94178234 0.88450485 0.94299168

0.51944416 1.39794216 0.21155878 1.5106236 0.570126 1.5178415

1.39043377 1.48389317 1.10135868 0.62070212 0.87655563 1.34785392

1.65022781 1.10157705 0.24692246 0.67402195 1.35555663 1.69357102

1.46711609 0.90717156 0.97508717 1.73296527 0.95707075 1.39193687

1.17115979 1.37456737 1.52986226 1.6118545 0.84388122 1.11104551

1.46800068 1.5604855 1.52552834 1.2887492 0.49859481 0.97653054

1.04592452 0.39590031 1.03988266 1.17904186]

后端开发标签