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

如何避免使用numpy.stack时传入字典values触发FutureWarning

解决方案

直接将dict.values()返回的视图对象显式转为列表即可,写法和你偏好的样式几乎一致:

data_stack = np.stack(list(data_matrix.values()), axis=1)

原理说明

  • 告警触发原因:Python 3 中dict.values()返回的是字典值视图对象,不属于NumPy要求的列表、元组这类序列类型,属于被废弃支持的非序列可迭代对象,因此触发FutureWarning。
  • 之前修改报错的原因:你尝试的[data_matrix.values()]写法是把整个视图对象作为单个元素塞进列表,此时传入np.stack的列表长度为1,堆叠后只能得到1维数组,指定axis=1自然会触发维度越界错误。

补充说明

如果你使用的Python版本低于3.7(字典不保证插入顺序),需要按key的顺序堆叠数组,可以用如下写法保证顺序和硬编码写法一致:

data_stack = np.stack([data_matrix[k] for k in sorted(data_matrix.keys())], axis=1)

内容的提问来源于stack exchange,提问作者Boris L.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:48:02