numpy数组根据一个列表获取列,返回用额外数组包装的行

2024-10-04 07:34:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个矩阵(2dnumpy数组),我想创建一个新的2d数组,它由原始矩阵中的列的子集组成。我尝试的是:

X[:, columnList]columnList = [1, 3 ,5](列列表就是一个例子)。但实际情况是,这样做的结果是一个2d数组,其中每一行都被包装在另一个数组中

示例:

X = np.array([[1.0, 2.0, 3.0, 1.0, 2.0], [4.0, 5.0, 6.0, 1.0, 2.0], [7.0, 8.0, 9.0, 51.0, 221.0], [10.0, 11.0, 12.0, 91.0, 22.0], [13.0, 14.0, 15.0, 41.0, 82.0], [16.0, 17.0, 18.0, 11.0, 32.0], [19.0, 20.0, 21.0, 12.0, 23.0], [22.0, 23.0, 24.0, 6.0, 12.0], [25.0, 26.0, 27.0, 4.0, 8.0]])


featureList = [1, 3]
dataMat = X[:, [featureIndexList]]

dataMat的输出:

array([[[  2.,   1.]],

   [[  5.,   1.]],

   [[  8.,  51.]],

   [[ 11.,  91.]],

   [[ 14.,  41.]],

   [[ 17.,  11.]],

   [[ 20.,  12.]],

   [[ 23.,   6.]],

   [[ 26.,   4.]]])

我想要的是:

array([[  2.,   1.],

   [  5.,   1.],

   [  8.,  51.],

   [ 11.,  91.],

   [ 14.,  41.],

   [ 17.,  11.],

   [ 20.,  12.],

   [ 23.,   6.],

   [ 26.,   4.]])

你知道怎么做容易吗


Tags: 示例列表np情况矩阵数组array子集