压缩 NumPy 数组
本教程将介绍在 Python 中将两个 1D NumPy 数组压缩为单个 2D NumPy 数组的方法。
带有 list(zip())
函数的 NumPy Zip
如果我们有两个一维数组并且想将它们压缩到一个二维数组中,我们可以使用 Python 中的 list(zip())
函数。这种方法涉及将数组压缩到一个列表中。list(zip(a,b))
函数将数组 a
和 b
作为参数并返回一个列表。然后我们可以使用 numpy.array()
函数将压缩列表转换为数组。请参考以下代码示例。
import numpy as np
a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])
c = np.array(list(zip(a, b)))
print(c)
输出:
[[1 2]
[3 4]
[5 6]
[7 8]]
我们首先使用 np.array()
函数创建了两个一维数组 a
和 b
,并使用 np.array(list(zip(a,b)))
函数将它们压缩在一起。
这种方法效率不高,因为我们必须在数组和列表之间进行转换。
使用 numpy.stack()
函数的 NumPy Zip
我们还可以使用 numpy.stack()
函数来实现与前一个示例相同的目标。这种方法比以前的方法更有效,因为没有执行类型转换。numpy.stack()
函数 用于根据指定的轴连接两个或多个数组。我们可以指定 axis
参数等于 1
以获得与前一个示例类似的结果。请参考以下代码示例。
import numpy as np
a = np.array([1, 2, 3, 4, 5])
b = np.array([6, 7, 8, 9, 10])
c = np.stack((a, b), axis=1)
print(c)
输出:
[[1 2]
[3 4]
[5 6]
[7 8]]
我们首先使用 np.array()
函数创建了两个一维数组 a
和 b
,并使用 np.stack((a,b), axis=1)
函数将它们压缩在一起。
使用 numpy.column_stack()
函数的 NumPy Zip
numpy.column_stack()
函数是另一种方法,可用于在 Python 中将两个一维数组压缩为单个二维数组。numpy.column_stack()
函数用于将两个或多个一维数组作为列连接到单个二维数组中。我们不必为此方法指定任何轴参数。请参考以下代码示例。
import numpy as np
a = np.array([1, 3, 5, 7])
b = np.array([2, 4, 6, 8])
d = np.column_stack((a, b))
print(d)
输出:
[[1 2]
[3 4]
[5 6]
[7 8]]
我们首先使用 np.array()
函数创建了两个一维数组 a
和 b
,并使用 np.column_stack(a,b)
函数将它们压缩在一起。
与前两种方法相比,这种方法是最好的。因为没有类型转换,我们不必在这种方法中指定任何轴。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn