能否简化2D数组my_array的指定列索引表达式?
简化NumPy 2D数组的索引写法
嘿,这个问题提得很实用!确实,当索引里既有单个元素又有连续序列时,写长列表有点冗余,咱们可以用NumPy自带的np.r_工具来简化,它专门用来快速拼接单个索引和切片,非常适合你的场景。
原来的索引[0,12,13,14,15]里,12,13,14,15是连续的序列,对应切片12:16(因为Python切片是左闭右开,所以到16就会包含15)。结合单个元素0,用np.r_可以写成:
import numpy as np desired_elements = my_array[:, np.r_[0, 12:16]]
这样写既简洁又清晰,一眼就能看出你选了第0个元素,加上从12到15的连续元素,和原来的代码效果完全一致。
如果你不想用np.r_,也可以用np.concatenate来拼接单个元素数组和切片数组,但写法会稍微繁琐一点:
desired_elements = my_array[:, np.concatenate(([0], np.arange(12,16)))]
显然np.r_的写法更直观省事。
内容的提问来源于stack exchange,提问作者Titus
相关产品推荐
相关产品推荐

