You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python Numpy将数组拆分后存入指定键名的字典

问题解答

原代码问题

你原本使用的np.array_split(a, 3)是将数组按从左到右的顺序平均切为3段,得到的切片逻辑和预期输出的取值规则不符,因此无法得到目标结果。

正确实现方案

你预期的取值规则是按步长3分组:

  • one对应索引0、3、6、9的元素
  • two对应索引2、5、8、11的元素
  • three对应索引1、4、7、10的元素

方法1:数组重塑+转置(更简洁,适合大规模数据)

import numpy as np 
set_names = np.array(['one', 'two', 'three'])
a = np.array([12,4,2,45,6,7,2,4,5,6,12,4])
# 先重塑为4行3列,转置后得到3组值,调整顺序和set_names一一对应
split_values = a.reshape(4, 3).T[[0, 2, 1]]
dictionary = dict(zip(set_names, split_values))

如果你需要输出的键顺序和你给出的示例完全一致,把set_names调整为np.array(['one', 'three', 'two']),同时去掉转置后的索引调整即可。

方法2:直接切片(逻辑更直观)

import numpy as np 
a = np.array([12,4,2,45,6,7,2,4,5,6,12,4])
dictionary = {
    'one': a[::3],
    'two': a[2::3],
    'three': a[1::3]
}

输出验证

两种方法运行后打印dictionary都可以得到你需要的匹配值:

{'one': array([12, 45,  2,  6]),
 'two': array([2, 7, 5, 4]),
 'three': array([ 4,  6,  4, 12])}

内容的提问来源于stack exchange,提问作者georgehere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:54:04