我想了解这段代码的作用。我正在查看一些有关 numpy 和绘图的示例,但我无法弄清楚 u
和 v
是什么。我知道 u
是由两个数组组成的数组,每个数组的大小为 10000。v=u.max(axis=0)
有什么作用? max
函数是否被调用为标准 python 库的一部分?当我绘制直方图时,我得到一个由 2x 定义的 pdf,而不是正常的均匀分布。
import numpy as np
import numpy.random as rand
import matplotlib.pyplot as plt
np.random.seed(123)
u=rand.uniform(0,1,[2,10000])
v=u.max(axis=0)
plt.figure()
plt.hist(v,100,normed=1,color='blue')
plt.ylim([0,2])
plt.show()
最佳答案
u.max()
,或等效的 np.max(u)
,将为您提供数组中的最大值 - 即一个单一的值(value)。这里是 Numpy 函数,不是标准库的一部分。您通常希望找到沿特定轴/维度的最大值,这就是此处发生的情况。
U 的形状为 (2,10000)
,u.max(axis=0)
为您提供沿 0
轴的最大值,返回一个形状为 (10000,)
的数组。如果您执行 u.max(axis=1)
,您将得到一个形状为 (2,)
的数组。
简单的说明/示例:
>>> a = np.array([[1,2],[3,4]])
>>> a
array([[1, 2],
[3, 4]])
>>> a.max(axis=0)
array([3, 4])
>>> a.max(axis=1)
array([2, 4])
>>> a.max()
4
关于python - 统一随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15214430/