我正在学习seaborn http://seaborn.pydata.org/tutorial/aesthetics.html
在导入部分,请解释此行
np.random.seed(sum(map(ord, "aesthetics")))
这一行做了什么,请解释这一行中的每个元素。
在绘制偏移正弦波时如何定义
plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
答案 0 :(得分:1)
首先是importatnt:这条线<ul>
<li><a href="#">Test 1</a></li>
<li><a href="#">Test 2</a></li>
<li><a href="#">Test 3</a></li>
<li><a href="#">Test 4</a></li>
<li><a href="#">Test 5</a></li>
</ul>
与seaborn完全无关。所以原则上你根本不需要了解它。
ord
给出了字符
map
将函数应用于可互动的每个项目
sum
总结了可迭代的元素。
所以np.random.seed(sum(map(ord, "aesthetics")))
会给出一个数字列表map(ord, "aesthetics")
,总结一下,给出[97, 101, 115, 116, 104, 101, 116, 105, 99, 115]
。
然后将此号码输入np.random.seed
。它是numpy随机数发生器的种子。通过指定种子,您可以确保之后绘制的任何随机数都基于此种子。
这一点是使随机数可重现。指定种子后,我就可以知道,在生成1069
之类的随机数时,结果将为np.random.randint(10)
(种子4
)。
这对于使示例可重现非常有用,并且它是他们在seaborn教程中使用它的原因,以确保随机数生成的图实际上在任何地方都是相同的。
当然,人们可以争辩说使用这个命令比混淆人们在复制教程时看到不同的情节更令人困惑,但我认为这是一个不同的问题。