如何用numpy修复“数组索引过多”错误?

2024-04-19 14:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我想研究一个R^2中的线性不可分数据集,在经过适当的核函数变换后,如何在R^3中线性可分。你知道吗

def randrange(n, vmin, vmax):
    return (vmax-vmin)*np.random.rand(n) + vmin

def fn_kernel(x1, x2):
    """ Implements a kernel phi(x1,y1) = [x1, y1, x1^2 + y1^2] """
    return np.array([x1, x2, x1**2.0 + x2**2.0])

""" Generate linearly nonseparable dataset (in R^2) """

我把数据集转换成PCA。你知道吗

pca = PCA(n_components=2)  
X = pca.fit_transform(X_train)  
Y = pca.transform(X_test)  

要打印X和Y:

print(X)
[[-1.25822621 -0.10589429]
[ 1.14574408  0.50555968]
[ 1.53943153 -0.89326919]
[-1.50951157 -0.35717965]
[ 0.58873174 -0.94771082]
[ 0.50077128  1.6531032 ]
[-1.00694085  0.14539106]]


print(Y)
[[-1.76079692 -0.608465  ]
[-0.00179943  1.15053249]
[-0.05624106  0.1998327 ]]

在这里它返回一个空列表,我不知道为什么?你知道吗

A = X[np.where(Y == 0)]
B = X[np.where(Y == 1)]
print(A) -> []
print(B) -> []

当我运行下面的代码时:

X0_orig = A[:, 0]
Y0_orig = A[:, 1]

它给了我一个错误:数组的索引太多。你知道吗


Tags: 数据returndefnptransform线性kernelprint