为何numpy.ndarray切片0:4打印用科学计数法,1:4却不用?
为什么numpy切片范围变化会导致打印格式切换?
这是numpy内置的自动格式化机制在起作用——它会根据数组内元素的数值分布(量级、精度)自动选择最优的显示格式,保证输出的一致性和可读性。
具体到你的场景:
- 当切片
X_train[1:4,:]时,数组第一列的数值是1947、1725、1959,都是千位整数,其他列是个位数/十位数,整体量级差异不大,numpy会采用常规的小数格式展示。 - 当切片
X_train[0:4,:]时,新增的第一行包含1240(输出中显示为1.24e+03),加上其他列的个位数(比如3.00e+00),元素间的量级跨度(千位 vs 个位)显著增大。为了让所有元素的显示格式统一,numpy自动切换到科学计数法,这样能更清晰地展示不同量级的数值,避免格式混乱。
如果想固定打印格式,可以用numpy.set_printoptions()手动配置,比如禁用科学计数法并指定小数位数:
import numpy as np np.set_printoptions(suppress=True, precision=3) print(X_train[0:4,:])
内容的提问来源于stack exchange,提问作者Aden Denitz
相关产品推荐
相关产品推荐

