gpt4 book ai didi

python - 有人可以解释这些行 : X1, y1 = np.c_[np.random.normal(loc=new_center[0],

转载 作者:行者123 更新时间:2023-11-30 08:48:12 25 4
gpt4 key购买 nike

我想创建一个数据集,首先想到高斯分布(make_blobs),它给了我:300行,每个X,y 2列,然后将X的最大值作为新的中心,接下来我有点迷路了,我不知道这些行的意思是什么所以我需要解释这些行:

X1, y1 = np.c_[np.random.normal(loc=new_center[0], size=size),
np.random.normal(loc=new_center[1], size=size)], np.ones(size)X, y = np.r_[X, X1], np.r_[y, y1].astype(int)

然后:

def plot_dataset_with_class(x, y):
uniques = np.unique(y)
[plt.plot(x[:, 0][y == unique], x[:, 1][y == unique], '.') for unique in uniques]

有人可以解释一下我迷路了吗?

完整代码是这样的:

import numpy as np

import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs

"""Create Dataset."""
X, y = make_blobs(300, centers=2, cluster_std=2.3, random_state=RANDOM_SEED)
new_center = max(X, key=lambda x: x[1])
size = 100
X1, y1 = np.c_[np.random.normal(loc=new_center[0], size=size),
np.random.normal(loc=new_center[1], size=size)], np.ones(size)
X, y = np.r_[X, X1], np.r_[y, y1].astype(int)


## Plot dataset method
def plot_dataset(x):
plt.plot(x[:, 0], x[:, 1], '.')


def plot_dataset_with_class(x, y):
uniques = np.unique(y)
[plt.plot(x[:, 0][y == unique], x[:, 1][y == unique], '.') for unique in uniques]

plt.figure()
plot_dataset(X)
plt.show()

最佳答案

两个作业都使用元组简写。它们可以进一步分解,只需很少的额外工作:

X1 = np.c_[np.random.normal(loc=new_center[0], size=size),
np.random.normal(loc=new_center[1], size=size)]
y1 = np.ones(size)
X = np.r_[X, X1]
y = np.r_[y, y1].astype(int)

X1 的赋值是该列表中元素的列堆叠(请参阅 https://docs.scipy.org/doc/numpy/reference/generated/numpy.c_.html#numpy.c_ )。

y1的赋值是一个长度为size的数组。

X 的赋值是已存在的变量 XX1 连接(请参阅 https://docs.scipy.org/doc/numpy/reference/generated/numpy.r_.html#numpy.r_ )。

y 的赋值是现有变量 yy1 的串联,但按元素强制转换为整数。

你问的下一点:[plt.plot(x[:, 0][y == unique], x[:, 1][y == unique], '.') for unique in uniques] 将每个类绘制为不同的颜色。它通过使用列表理解分别为每个类选择点(迭代 y 的值并在每次调用plot() 时仅选择迭代器的当前值)来实现这一点,因为默认情况下绘图是重复调用plot()时覆盖不同颜色的线。

关于python - 有人可以解释这些行 : X1, y1 = np.c_[np.random.normal(loc=new_center[0],,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56619429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com