Python 用随机值生成Numpy数组时的奇怪行为
使用此代码,我想以Python 用随机值生成Numpy数组时的奇怪行为,python,arrays,numpy,scipy,Python,Arrays,Numpy,Scipy,使用此代码,我想以Numpy数组格式生成一些小数字: np.random.seed(1) syn0 = 2*np.random.random((315,1))-1 这给了我这样的结果: [[-0.16595599] [ 0.44064899] [-0.99977125] [-0.39533485] [ 0.70648822] [-0.81532281] [-0.62747958] [ 0.30887855] [-0.20646505] [ 0.07763347] [-0.1
Numpy
数组格式生成一些小数字:
np.random.seed(1)
syn0 = 2*np.random.random((315,1))-1
这给了我这样的结果:
[[-0.16595599]
[ 0.44064899]
[-0.99977125]
[-0.39533485]
[ 0.70648822]
[-0.81532281]
[-0.62747958]
[ 0.30887855]
[-0.20646505]
[ 0.07763347]
[-0.16161097]
.
.
.
但当我将行数更改为316及以上时:
np.random.seed(1)
syn0 = 2*np.random.random((316,1))-1
然后,我得到这个数字格式的结果(幂表示法):
我知道这是幂表示格式,但为什么会发生这种情况?我不需要这种格式。为什么会发生这种奇怪的行为 您可以通过更改numpy的打印选项来关闭科学记数法:
np.set_printoptions(suppress=True)
syn0
>>> array([[-0.00083166],
[ 0.45717134],
[-0.58361112],
[-0.50393288],
[ 0.70334375],
[-0.16830256],
[ 0.23337013],
[-0.53266772],
....
您可以通过更改numpy的打印选项来关闭科学记数法:
np.set_printoptions(suppress=True)
syn0
>>> array([[-0.00083166],
[ 0.45717134],
[-0.58361112],
[-0.50393288],
[ 0.70334375],
[-0.16830256],
[ 0.23337013],
[-0.53266772],
....
您可以使用以下方法打印不带科学符号的特定数组: 要在所有打印中默认不使用科学记数法,请使用: 至于为什么会发生这种情况-当打印浮点数组时,默认行为是在以下情况下使用科学记数法:
- 要打印的最小(绝对非零)值小于
;或0.0001
- 最大(绝对非零)值与最小(绝对非零)值的比率大于
1000
如果将
suppress\u small
传递给array2string
(或suppress
传递给set\u printoptions
)可以使用以下方法打印特定数组,而无需使用科学符号:
要在所有打印中默认不使用科学记数法,请使用:
至于为什么会发生这种情况-当打印浮点数组时,默认行为是在以下情况下使用科学记数法:
- 要打印的最小(绝对非零)值小于
;或0.0001
- 最大(绝对非零)值与最小(绝对非零)值的比率大于
1000
如果将
suppress\u small
传递给array2string
(或suppress
传递给set\u printoptions
),则此行为将被抑制。这只是一种表示。数组中的任何内容都不会更改。为什么会这样?可能是因为在采集更多样本时,值的分布可能会增加,并且numpy的打印函数中存在一些阈值。当然,你可以让numpy随意打印。考虑阅读文档。@ SasCha:但是我如何才能看到真正的价值(非权力格式),这只是一个表示。数组中的任何内容都不会更改。为什么会这样?可能是因为在采集更多样本时,值的分布可能会增加,并且numpy的打印函数中存在一些阈值。当然,你可以让numpy随意打印。考虑阅读文档。@ SasCha:但是我如何才能看到真正的价值(非权力格式)
print(np.array2string(x, suppress_small=True))
np.set_printoptions(suppress=True)