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

Python生成指定取值的numpy数组遇语法错误,该如何解决?

代码问题排查

你的代码存在以下几个核心错误:

  • 未导入random、numpy依赖库,运行时会直接抛出未定义错误
  • 函数内部修改全局变量i没有加global声明,会触发变量未定义报错
  • 你生成的new是列表类型,没有values()方法,调用new.values()属于非法操作
  • np.array(n) for n in new.values()[:3]是无意义的悬空生成器语法,没有赋值也没有执行,属于无效语法
  • 循环体内直接加了return语句,第一次循环执行到就会直接退出函数,永远循环不到100次
  • 整体逻辑混乱,不需要嵌套两层循环,也不需要额外的全局test列表存储冗余数据

正确实现代码

要生成100组「包含两个长度为3、元素仅为-1/1的numpy数组」的结构,直接用下面的代码即可:

import random
import numpy as np

def testdata():
    result = []
    for _ in range(100):
        # 每组生成两个长度为3的随机数组,元素仅为-1和1
        group = [np.array(random.choices([-1, 1], k=3)) for _ in range(2)]
        result.append(group)
    return result

# 调用函数获取结果
all_data = testdata()
# 打印前3组验证格式
print(all_data[:3])

输出示例

运行后输出的前3组格式如下,完全符合你要求的结构:

[
    [array([-1,  1, -1]), array([ 1, -1, -1])],
    [array([ 1, -1,  1]), array([-1, -1,  1])],
    [array([-1,  1,  1]), array([-1, -1, -1])]
]

内容的提问来源于stack exchange,提问作者Learning and Improving

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:15:03