关于numpy中np.r_函数及x+2、x-2数组操作的疑问
关于代码中
x+2和x-2的解释 先讲运算本身
x+2 和 x-2 是NumPy的广播机制在起作用:
- 当你给一个NumPy数组和一个标量做加减时,NumPy会自动把标量"扩展"成和数组形状完全一致的结构,然后对数组里的每一个元素逐位进行加减操作。
- 举个例子,如果
x里有个元素是0.1,x+2后这个元素就变成2.1;x-2后就变成-1.9。
为什么要这么做?
这段代码是在生成一个用于机器学习演示的数据集:
- 初始的
x = 0.3*np.random.randn(100,2),是生成100个2维样本,这些样本围绕坐标**(0,0)**呈正态分布(标准差0.3,所以点都集中在原点附近)。 x+2把所有样本整体平移,让它们围绕**(2,2)形成第一个聚类簇;x-2则让样本围绕(-2,-2)**形成第二个聚类簇。- 最后用
np.r_把两个簇的样本按行拼接,得到200个样本的数据集(200行×2列,所以size返回400)。
这种数据集的特点是两个簇边界清晰、容易区分,常用来测试分类、聚类算法(比如K-Means、逻辑回归)的基本功能,能快速验证算法是否能正确识别出两个不同的类别。
内容的提问来源于stack exchange,提问作者Little
相关产品推荐
相关产品推荐

