如何从numpy数组列表中提取元素索引并生成指定格式列表?
提取numpy数组列表中各元素的索引
可以用几种简单方式实现你的需求,核心逻辑就是遍历每个子数组,生成对应元素的索引并包装成单个元素的小列表,最后汇总成大列表:
方法1:嵌套循环(直观易懂)
import numpy as np new_list = [np.array(['Black', 'Blue', 'Green']), np.array(['Horse', 'Dog', 'Cat', 'Owl'])] result = [] # 遍历列表中的每个numpy数组 for arr in new_list: # 遍历当前数组的索引(从0到数组长度-1) for idx in range(len(arr)): # 将每个索引包装成单元素列表,加入结果 result.append([idx]) print(result) # 输出:[[0], [1], [2], [0], [1], [2], [3]]
方法2:列表推导式(简洁写法)
用列表推导式把嵌套循环压缩成一行代码,效果和上面完全一致:
import numpy as np new_list = [np.array(['Black', 'Blue', 'Green']), np.array(['Horse', 'Dog', 'Cat', 'Owl'])] result = [[idx] for arr in new_list for idx in range(len(arr))] print(result)
方法3:结合numpy的arange生成索引
如果习惯用numpy的工具函数,可以用np.arange生成索引序列,再转成目标格式:
import numpy as np new_list = [np.array(['Black', 'Blue', 'Green']), np.array(['Horse', 'Dog', 'Cat', 'Owl'])] result = [] for arr in new_list: # 生成当前数组的索引数组,转成普通列表 indices = np.arange(len(arr)).tolist() # 把每个索引包装成单元素列表,添加到结果中 result.extend([[i] for i in indices]) print(result)
内容的提问来源于stack exchange,提问作者user3046211
相关产品推荐
相关产品推荐

