例如数组:

array = np.array([[1, 1, 4, 2, 1, 8],
                  [1, 1, 8, 2, 1, 16],
                  [1, 1, 40, 2, 1, 80],
                  [1, 2, 40, 2, 1, 80]])

我想基本上go 掉内部数组的每三个[:, ::2]个元素.所以结果应该是:

[[1 1 2 1]
 [1 1 2 1]
 [1 1 2 1]
 [1 2 2 1]]

我可以做两个 Select 并连接每个结果数组,但这似乎非常慢.有没有一种方法可以使用索引或其他方法,而不涉及np.linatenate的循环?

我的实际数组总是有大小可以被3整除的内部数组,而1维非常非常大.因此,我感兴趣的是实现这一目标的最快方法.

谢谢!

推荐答案

您可以使用boolean索引:

array[:, np.arange(array.shape[1]) % 3 != 2]

array([[1, 1, 2, 1],
       [1, 1, 2, 1],
       [1, 1, 2, 1],
       [1, 2, 2, 1]])

Python相关问答推荐

比较两个二元组列表,NP.isin

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

大Pandas 胚胎中产生组合

acme错误-Veritas错误:模块收件箱没有属性linear_util'

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

C#使用程序从Python中执行Exec文件

数据抓取失败:寻求帮助

实现自定义QWidgets作为QTimeEdit的弹出窗口

从spaCy的句子中提取日期

判断solve_ivp中的事件

如何排除prefecture_related中查询集为空的实例?

将一个双框爆炸到另一个双框的范围内

有没有办法让Re.Sub报告它所做的每一次替换?

在我融化极点数据帧之后,我如何在不添加索引的情况下将其旋转回其原始形式?

PYTHON中的pd.wide_to_long比较慢

如何在基于时间的数据帧中添加计算值

关于数字S种子序列内部工作原理的困惑

如何在Python中画一个只能在对角线内裁剪的圆?

在不降低分辨率的情况下绘制一组数据点的最外轮廓

Django REST框架+Django Channel->;[Errno 111]连接调用失败(';127.0.0.1';,6379)