Как исправить ошибку «слишком много индексов для массива» с помощью numpy? - PullRequest
1 голос
/ 12 апреля 2019

Я хочу поработать над тем, как линейно неразделимый набор данных в 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]

Это выдает ошибку: слишком много индексов для массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...