当期望输出 10,000 个数字时,为啥 python 只输出 6 个由 '...' 分隔的数字? [复制]

Posted

技术标签:

【中文标题】当期望输出 10,000 个数字时,为啥 python 只输出 6 个由 \'...\' 分隔的数字? [复制]【英文标题】:Why is python only outputting 6 numbers seperated by '...', when the expectation is output of 10,000 numbers? [duplicate]当期望输出 10,000 个数字时,为什么 python 只输出 6 个由 '...' 分隔的数字? [复制] 【发布时间】:2018-07-26 16:34:31 【问题描述】:

完整的问题:生成一个包含 10,000 个随机数(称为 x)的 NumPy 数组,并创建一个变量来存储方程 y=5x^2−3x+15

import numpy as np 
data = np.random.randint(1000, size=10000)
x = tf.constant(data, name='x')
y = tf.Variable(5 * (x**2) - (3 * x) + 15)

model = tf.global_variables_initializer()

with tf.Session() as session:
    session.run(model)
    print(session.run(y))

输出为 [4528679 4547733 119675 ... 2215797 1247 1703543]。 不包括数组中完整的 10,000 个随机数的原因是什么? '...' 是什么意思?

【问题讨论】:

【参考方案1】:

这只是 numpy 总结你的数组,所以你不会在终端上打印 1000 个数字。您可以通过使用np.set_printoptionsthreshold 参数来控制启动的阈值:

threshold : int, optional
    Total number of array elements which trigger summarization
    rather than full repr (default 1000).

演示:

>>> import numpy as np
>>> a = np.arange(100)
>>> np.set_printoptions(threshold=5)
>>> print(a)
[ 0  1  2 ... 97 98 99]
>>> np.set_printoptions(threshold=500)
>>> print(a)
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
 96 97 98 99]

【讨论】:

以上是关于当期望输出 10,000 个数字时,为啥 python 只输出 6 个由 '...' 分隔的数字? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

当给出非变量时,为啥空期望 T_PAAMAYIM_NEKUDOTAYIM ?

为啥这种 for 循环并行化在 Python 中不起作用?

为啥 bigquery 在某些表后面显示数字 (1)

n!的HDU 上与N!相关的两个题目:

当用户输入除整数以外的任何内容时,为啥我的程序会无限循环输出? C++ [重复]

当 jTable 行上的数字很大时,如何不显示 E 的幂?