如何从NumPy数组中按指定连续区间提取元素生成独立列表
NumPy数组指定范围元素提取填写规则
核心切片语法
NumPy一维数组的方括号切片遵循[起始索引:结束索引:步长]的规则,默认遵循左闭右开原则:即取值包含起始索引对应的元素,不包含结束索引对应的元素;省略参数时会取默认值:起始索引默认0,结束索引默认数组总长度,步长默认1。
对应示例的填写值
你需要将长度为9的数组拆分为3组每组3个元素,每个方括号内的填写规则如下:
- 取
[1,2,3](对应索引0、1、2的元素):填写0:3 - 取
[4,5,6](对应索引3、4、5的元素):填写3:6 - 取
[7,8,9](对应索引6、7、8的元素):填写6:9
完整可运行代码
import numpy as np array_input = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 切片后调用.tolist()可将NumPy数组转换为Python原生列表 A = array_input[0:3].tolist() B = array_input[3:6].tolist() C = array_input[6:9].tolist()
运行后输出和你要求的完全一致:
A = [1, 2, 3] B = [4, 5, 6] C = [7, 8, 9]
简化写法说明
日常使用中可以省略无意义的默认值,效果完全相同:
0:3可简化为:3(起始索引默认从0开始)6:9可简化为6:(结束索引默认取到数组末尾)
注意:如果不调用
.tolist()方法,切片返回的是NumPy数组对象,打印时会附带array()标识,若需要纯Python列表格式的输出,记得追加该方法。
内容的提问来源于stack exchange,提问作者Adryan Zeigler
相关产品推荐
相关产品推荐

