Python NumPy创建数组方法
NumPy是一个Python库,用于支持大量的多维数组和矩阵运算操作。它不仅可以用于科学计算、数据分析或计算机视觉等领域,而且这个库(或者说是数组对象)还拥有广泛的数学函数。
那么,对于Python初学者来说,如何快速创建NumPy数组呢?以下是具体的几种方法。
1. 从Python列表创建
该方法是最常用的方法之一:从Python列表创建一个NumPy数组。我们只需要将Python列表作为NumPy函数的参数即可。
代码示例:
import numpy as np
# 创建列表
my_list = [10, 20, 30]
# 从列表创建NumPy数组
my_array = np.array(my_list)
# 输出NumPy数组
print(my_array)
该段代码的输出结果为:
[10 20 30]
可以观察到,我们首先定义了一个Python列表my_list,然后使用np.array()函数从该列表中创建了一个NumPy数组my_array。
2. 从Python元组创建
除了Python列表之外,也可以通过Python元组来创建NumPy数组,方法与从Python列表创建类似。
代码示例:
import numpy as np
# 创建元组
my_tuple = (100, 200, 300)
# 从元组创建NumPy数组
my_array = np.array(my_tuple)
# 输出NumPy数组
print(my_array)
该段代码的输出结果为:
[100 200 300]
3. 使用arange创建数值范围数组
NumPy的arange()函数非常有用,它可以让我们快速创建一个数值序列数组,该函数需要三个参数:起始值、终止值、步长。如果只提供一个参数,则默认是这个参数作为终止值,起始值默认为0,步长为1。
代码示例1:
import numpy as np
# 创建起始值为0、终止值为9、步长为1的数组
my_range_array = np.arange(10)
# 输出数组
print(my_range_array)
该段代码的输出结果为:
[0 1 2 3 4 5 6 7 8 9]
代码示例2:
import numpy as np
# 创建起始值为1、终止值为9、步长为2的数组
my_range_array = np.arange(1, 10, 2)
# 输出数组
print(my_range_array)
该段代码的输出结果为:
[1 3 5 7 9]
4. 使用linspace创建数值范围数组
linspace()函数也可以用来创建一个数值序列数组,该函数需要三个参数:起始值、终止值、数组长度。该函数生成一个等差数列数组,默认包括终止值,同样可以不输入起始值,让起始值默认为0。
代码示例1:
import numpy as np
# 创建长度为6的数组,起始值为0,终止值为10
my_linspace_array = np.linspace(0, 10, 6)
# 输出数组
print(my_linspace_array)
该段代码的输出结果为:
[ 0. 2. 4. 6. 8. 10.]
从上面的代码中我们可以看到,生成的数组包含了起始值和终止值,因为它的长度已经设定,而不是设定步长。在这里,数组的长度为6,所以它是等差数列(差为2)。
代码示例2:
import numpy as np
# 创建长度为5的数组,起始值为1,终止值为10
my_linspace_array = np.linspace(1, 10, 5)
# 输出数组
print(my_linspace_array)
该段代码的输出结果为:
[ 1. 3.25 5.5 7.75 10. ]
5. 使用zeros和ones创建特殊数组
如果我们需要一个特定形状的数组,其中所有元素都是0或1,那么可以使用zeros()和ones()函数创建。我们需要用参数定义数组的形状。
代码示例1:
import numpy as np
# 创建一个3x3、值全为0的数组
my_zeros_array = np.zeros((3, 3))
# 输出数组
print(my_zeros_array)
该段代码的输出结果为:
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
代码示例2:
import numpy as np
# 创建一个2x4、值全为1的数组
my_ones_array = np.ones((2, 4))
# 输出数组
print(my_ones_array)
该段代码的输出结果为:
[[1. 1. 1. 1.]
[1. 1. 1. 1.]]
6. 使用eye创建单位矩阵
单位矩阵(又称为恒等矩阵)是一个主对角线上全是1,其他位置都是0的矩阵。NumPy的eye()函数可以方便创建单位矩阵,使用该函数不需要指定矩阵的形状,只要输入一个数字N即可,它会自动创建一个NxN的矩阵。
代码示例:
import numpy as np
# 创建一个3x3的单位矩阵
my_eye_array = np.eye(3)
# 输出单位矩阵
print(my_eye_array)
该段代码的输出结果为:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
总结:
本文介绍了六种从不同来源创建NumPy数组的方法,分别是从Python列表创建、从Python元组中创建、使用arange创建数值范围数组、使用linspace创建数值范围数组、使用zeros和ones创建特殊数组、使用eye创建单位矩阵。这些方法都非常实用,而且易于理解和使用。
在实际应用中,用户可以根据不同需求进行选择,例如从Python序列中创建数组、或者创建矩阵。以上有提到的函数也可以根据需要进行调整。对于初学者而言,应该多实践、多熟悉这些函数,以达到熟练掌握它们的程度。
最后一个建议是:在练习时,可以调整不同参数的值,以加深对NumPy数组的使用和理解。