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

使用Python查看.npz/.npy文件时如何显示全部数组元素?

解答你的NumPy与MNIST npz文件疑问

1. 为什么np.load返回<numpy.lib.npyio.NpzFile object>?

.npz是NumPy的压缩归档文件,本质是包含多个.npy单数组存储格式文件的压缩包。当你用np.load()打开.npz文件时,返回的NpzFile对象是一个类字典容器,里面存储着数据集里各个数组的键值对(比如MNIST里的训练集、测试集数据和标签)。

你可以通过data.files查看这个容器里的所有键:

import numpy as np
data = np.load("C:/mnist.npz")
print(data.files)  # 输出示例:['x_train', 'y_train', 'x_test', 'y_test']

2. 为什么打印数组时显示[...]而非完整内容?

这是NumPy的默认优化行为:当数组元素数量过多时,为了避免控制台被海量输出淹没,NumPy会自动截断数组,用[...]代替中间的大部分元素。比如MNIST的y_test有10000个元素,远超NumPy默认的打印阈值,所以会被截断显示。

3. 如何查看.npz和.npy文件的所有元素?

针对.npz文件:

先通过data.files确认所有数组的键,再用以下方法查看完整数组:

方法1:修改NumPy打印设置(全局生效)

通过np.set_printoptions()关闭数组截断:

import numpy as np
# 设置阈值为无穷大,让NumPy打印所有元素
np.set_printoptions(threshold=np.inf)

data = np.load("C:/mnist.npz")
print(data['y_test'])  # 现在会显示全部10000个标签元素

⚠️ 注意:如果是x_test这类高维大数组(比如(10000, 28, 28)),打印全部内容会占用大量控制台资源,甚至卡顿,建议只对标签这类小数组使用此方法。

方法2:临时打印或转成Python列表

不想全局修改设置的话,可以临时转成Python列表打印(同样注意大数组的性能问题):

print(data['y_test'].tolist())

或者先预览部分元素:

print(data['y_test'][:100])  # 打印前100个元素
print(data['y_test'][-100:]) # 打印后100个元素

针对.npy文件:

.npy文件存储单个NumPy数组,直接np.load()后得到数组对象,同样可以用上面的方法修改打印设置或转列表查看完整内容:

import numpy as np
np.set_printoptions(threshold=np.inf)
arr = np.load("your_file.npy")
print(arr)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:44:41