趋近智
向量 (vector)是数字的有序列表,在表示数据点或特征时很有用。对于Python中的数值计算,特别是线性代数,NumPy库是标准工具。
使用NumPy表示向量非常自然。一个数学向量,如 ,直接对应于一个一维NumPy数组 (ndarray)。这种数组结构为数值运算做了优化,使其高效地完成机器学习 (machine learning)中常见的计算。
np.array 创建向量 (vector)在NumPy中创建向量的主要方法是使用 np.array() 函数,向其传入一个包含向量元素的Python列表。
首先,确保你已导入NumPy。常规方法是:
import numpy as np
现在,让我们创建几个向量。如果我们想表示二维平面中的一个点,例如 ,我们可以像这样创建向量:
# 一个包含2个元素的向量
vec_2d = np.array([2, 5])
print(vec_2d)
此代码创建了一个NumPy数组 vec_2d,包含元素2和5。输出将是:
[2 5]
类似地,可以创建三维空间中的向量,例如 :
# 一个包含浮点数的3元素向量
vec_3d = np.array([1.5, -3.2, 0.7])
print(vec_3d)
输出:
[ 1.5 -3.2 0.7]
NumPy根据输入列表自动推断数组元素的数据类型(例如,整数为 int64,浮点数为 float64)。如果你的列表包含整数和浮点数的混合,NumPy通常会将整数提升为浮点数以保持数组内部的一致性。你也可以使用 np.array() 中的 dtype 参数 (parameter)来显式控制数据类型。指定 dtype 在控制内存使用或保证数值精度方面很有用。
# 显式创建32位整数向量
vec_int32 = np.array([10, 20, 30], dtype=np.int32)
print(vec_int32)
print(vec_int32.dtype)
输出:
[10 20 30]
int32
正如我们在学习通用NumPy数组时所看到的(第2章),你也可以使用辅助函数来初始化向量。当你知道所需向量的大小但还没有具体的值时,这通常很方便。
# 创建一个包含四个零的向量
zero_vector = np.zeros(4)
print("零向量:", zero_vector)
# 创建一个包含三个一的向量
one_vector = np.ones(3)
print("一向量:", one_vector)
# 创建一个包含数字序列(0到4)的向量
sequence_vector = np.arange(5)
print("序列向量:", sequence_vector)
输出:
Zero vector: [0. 0. 0. 0.]
One vector: [1. 1. 1.]
Sequence vector: [0 1 2 3 4]
请注意,np.zeros 和 np.ones 默认创建浮点数向量。
使用这些NumPy向量感觉类似于使用Python列表。你可以使用从零开始的索引访问单个元素(第一个元素在索引0,第二个在索引1,依此类推)。
# 创建一个示例向量
data_vector = np.array([11, 22, 33, 44, 55])
# 获取第一个元素
first_element = data_vector[0]
print(f"第一个元素:{first_element}") # 输出:11
# 获取第三个元素
third_element = data_vector[2]
print(f"第三个元素:{third_element}") # 输出:33
# 修改一个元素
data_vector[1] = 25 # 改变第二个元素
print(f"修改后的向量:{data_vector}") # 输出:[11 25 33 44 55]
熟悉创建这些一维NumPy数组是在代码中应用线性代数思想的第一步。这些数组对象不仅仅是数字的容器;它们是NumPy构建高效数学运算的根基,正如我们将在接下来的关于向量加法、标量乘法、范数和点积的章节中看到的那样。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造