为什么Python只输出用“...”分隔的6个数字,而期望的输出是10,000个数字?

11 浏览
0 Comments

为什么Python只输出用“...”分隔的6个数字,而期望的输出是10,000个数字?

这个问题已经有了答案

如何打印完整的NumPy数组,而不截断?

完整的问题是:生成一个包含10,000个随机数的NumPy数组(称为x),并创建一个存储方程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个随机数? \'...\'代表什么?

admin 更改状态以发布 2023年5月23日
0
0 Comments

这就是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]

0