如何用一行代码从NumPy数组中选取指定复杂子集列?
NumPy数组一次性选取指定列的简便方法
针对你的需求,有两种简洁的单行实现方式:
方法一:合并索引数组后直接索引
先把目标列的索引合并成一个数组,再一次性切片:
import numpy as np # 单行实现 result = X[:, np.concatenate([[0, 4, 6], np.arange(X.shape[1]-1000, X.shape[1])])]
这里np.arange(X.shape[1]-1000, X.shape[1])生成最后1000列的索引,和指定的前三个列索引拼接后,直接作为列索引传入切片。
方法二:用np.hstack横向拼接切片结果
直接把两个切片得到的子数组横向合并,代码更直观:
result = np.hstack([X[:, [0, 4, 6]], X[:, -1000:]])
这种方式不需要手动生成最后1000列的索引,可读性更强,适合快速实现。
两种方法都能一次性完成选取,根据你的代码习惯选择即可,前提是确认指定列和最后1000列无重叠(问题中已说明),无需额外去重。
内容的提问来源于stack exchange,提问作者Grumpy Civet
相关产品推荐
相关产品推荐

