📅  最后修改于: 2023-12-03 15:25:14.430000             🧑  作者: Mango
在使用 NumPy 进行数据处理时,经常需要将数组的维度进行调整。其中一种常见情况是将形状为 (a,) 的 NumPy 数组转换为形状为 (a,1) 的二维数组。本文将为大家介绍两种常见的方法来实现这一转换。
NumPy 提供了 reshape 函数来调整数组的形状。使用 reshape 函数将 (a,) 形状的数组转换为 (a,1) 的数组非常简单,只需将数组的第二个参 数设置为 -1 即可,-1 表示该位置的值由数组自动推断得出。
import numpy as np
a = np.array([1,2,3,4,5])
b = a.reshape(-1,1)
print(a.shape) # (5,)
print(b.shape) # (5,1)
上述代码执行后,a 数组的形状为 (5,),b 数组的形状为 (5,1)。
NumPy 的 ndarray 对象提供了 newaxis 属性,可以在原有数组上新增一个维度。使用 newaxis 将 (a,) 形状的数组转换为 (a,1) 的数组也非常简单,只需在数组索引中使用 newaxis 即可。
import numpy as np
a = np.array([1,2,3,4,5])
b = a[:, np.newaxis]
print(a.shape) # (5,)
print(b.shape) # (5,1)
上述代码执行后,a 数组的形状为 (5,),b 数组的形状为 (5,1)。
两种方法的结果相同,可以根据个人喜好选择使用哪一个。需要注意的是,在进行 NumPy 数组形状调整时,应尽可能保持原有数组的维度和信息,避免数据损失或运算错误。