Python 将某些列编译为新数组

Python 将某些列编译为新数组,python,numpy,sorting,Python,Numpy,Sorting,假设我有一个2D numpy数组“x”,我想创建一个新数组“y”,其中只包含x中的某些列 有没有一个简单的解决办法 我试图编写一个函数,该函数遍历数组的每一列,然后每第三列追加一个新数组 def grab_功能(x,起始=0,每隔=3,行长=16): 将numpy作为np导入 作为pd进口熊猫 y=np.empty([rowlength,1]) 对于范围内的i(起始,np.尺寸(x,1),每个): y=np.追加(y,np.重塑(x[:,i],(行长,1)),轴=0) 返回y 我没有得到任何错

假设我有一个2D numpy数组“x”,我想创建一个新数组“y”,其中只包含x中的某些列

有没有一个简单的解决办法

我试图编写一个函数,该函数遍历数组的每一列,然后每第三列追加一个新数组

def grab_功能(x,起始=0,每隔=3,行长=16):
将numpy作为np导入
作为pd进口熊猫
y=np.empty([rowlength,1])
对于范围内的i(起始,np.尺寸(x,1),每个):
y=np.追加(y,np.重塑(x[:,i],(行长,1)),轴=0)
返回y

我没有得到任何错误,但是函数返回了一个长的一维浮点数数组。我希望数组的类型与x相同,只有1/3的列。

您可以使用
I:j:k
的切片语法,其中
I
是起始索引,
j
是停止索引,
k
是步长

import numpy as np

array = np.array([[1,2],
                  [3,4],
                  [5,6],
                  [7,8],
                  [9,10],
                  [11,12]])
print(array[::3])
[[1 2] [7 8]]


如何选择某些列?您可以简单地修改数组