Numpy 使用 concatenate()()、vstack() 和 hstack() 函数合并多个列向量
Numpy数组概述
在 NumPy 包中,数组是一个用于存储元素相同数据类型的多维列表,其中基本元素是数组。NumPy 数组可以定义为使用相同数据类型的网格,并且由许多元素组成。
阅读更多:Numpy 教程
Numpy 数组的基本操作
- 创建数组
可以通过将列表或元组传递给array()
函数来创建 NumPy 数组,如下:
import numpy as np
x = np.array([1, 2, 3])
- 数组的属性
- 形状 (行数和列数)
x.shape
2. 维度
x.ndim
3. 元素的数据类型
x.dtype
- 数组类型
数组可以是整数,浮点数等
Numpy 数组的索引和切片
- 索引
NumPy 数组中的索引始于 0,并按照从左到右,在计算机的内存中存储。可以使用以下方式索引 NumPy 数组:
import numpy as np
x = np.array([1, 2, 3])
print(x[0])
print(x[1])
print(x[2])
- 切片
可以使用以下方式创建 NumPy 数组的切片:
import numpy as np
x = np.array([1, 2, 3, 4, 5])
print(x[1:4])
合并列向量
在 NumPy 中,可以使用 concatenate()、vstack() 和 hstack() 函数将两个或多个列向量(即,将它们沿纵轴堆叠或沿横轴堆叠)合并为一个 NumPy 数组。
concatenate()
concatenate() 函数用于沿指定轴连接相同形状的两个或多个数组。这里,我们将沿列(纵轴)连接两个数组。将第二个数组追加为第一个数组的列。
代码如下:
import numpy as np
a = np.array([[1, 2], [3, 4]])
print("第一个数组:")
print(a)
print("\n")
b = np.array([[5, 6], [7, 8]])
print("第二个数组:")
print(b)
print("\n")
# 两个数组的连接
print("沿轴 0 连接两个数组:")
print(np.concatenate((a, b), axis=1))
hstack()
hstack() 函数用于在水平方向上堆叠序列中的数组(列方向)。将第二个数组追加为第一个数组的列。
代码如下:
import numpy as np
a = np.array([[1, 2], [3, 4]])
print("第一个数组:")
print(a)
print("\n")
b = np.array([[5, 6], [7, 8]])
print("第二个数组:")
print(b)
print("\n")
# 堆叠两个数组水平(列方向)
print("水平(列方向)堆叠:")
print(np.hstack((a, b)))
vstack()
vstack() 函数用于在垂直方向上堆叠序列中的数组(行方向),将第二个数组追加为第一个数组的行。
代码如下:
import numpy as np
a = np.array([[1], [2], [3]])
print("第一个数组:")
print(a)
print("\n")
b = np.array([[4], [5], [6]])
print("第二个数组:")
print(b)
print("\n")
# 对两个数组进行垂直堆叠
print("垂直堆叠")
print(np.vstack((a, b)))
另外,如果您想将两个或多个行向量合并为一个数组,则必须先将它们作为列向量创建,然后使用 vstack() 或 concatenate() 函数将它们连接到一起。
总结
在 NumPy 中,可以使用 concatenate()()、vstack() 和 hstack() 函数合并多个列向量,以创建一个更大的数组。concatenate() 函数用于沿指定轴(横向或纵向)连接相同形状的两个或多个数组;hstack() 函数用于在水平方向上堆叠序列中的数组(列方向);vstack() 函数用于在垂直方向上堆叠序列中的数组(行方向)。在合并列向量时,需要注意它们的维度应该为 2,即一个列向量应该由 n 行 1 列组成。否则需要先将行向量转换为列向量再进行合并。熟练使用这些函数的技巧可以帮助您在处理多个列向量时更加高效地操作和处理数据。