我正在从 http://seaborn.pydata.org/tutorial/aesthetics.html学习 seaborn
在导入部分,请解释这一行
np.random.seed(sum(map(ord, "aesthetics")))
此行的作用是什么,请解释此行中的每个元素。
在绘制偏移正弦波时如何定义这个
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
我正在从 http://seaborn.pydata.org/tutorial/aesthetics.html学习 seaborn
在导入部分,请解释这一行
np.random.seed(sum(map(ord, "aesthetics")))
此行的作用是什么,请解释此行中的每个元素。
在绘制偏移正弦波时如何定义这个
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
首先重要的是:这条线np.random.seed(sum(map(ord, "aesthetics")))
与seaborn的工作完全无关。所以原则上你根本不必担心它。
ord
给出一个字符的字节表示
map
将函数应用于可交互对象的每个项目
sum
总结一个可迭代的元素。
所以map(ord, "aesthetics")
会给出一个数字列表,[97, 101, 115, 116, 104, 101, 116, 105, 99, 115]
当总结时,给出1069
.
然后将该数字馈送到np.random.seed
. 它是 numpy 随机数生成器的种子。通过指定种子,您可以确保之后绘制的任何随机数都基于此种子。
这样做的目的是使随机数可重现。指定种子后,我可以知道在生成随机数时np.random.randint(10)
,结果将是4
(对于种子1069
)。
这对于使示例可重现非常有用,这也是他们在 seaborn 教程中使用它来确保从随机数生成的图实际上在任何地方都相同的原因。
当然,有人可能会争辩说,使用这个命令比在复制教程时让人看到不同的情节更令人困惑,但我猜这是一个不同的问题。