Как я могу преобразовать мой массив NumPy в 2D, когда он уже должен иметь 2 димс? - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь получить некоторые столбцы из моего массива, используя

[:, x]

и моя программа жалуется, что мой массивный массив не 2D, но я уверен, что это так.

print(len(inputs))

дает мне 13715

print(len(inputs[x]))

дает мне 402

print(inputs.shape)

дает мне (13715,)

Когда я пытаюсь изменить форму

inputs.reshape(len(inputs), len(inputs[0]))

я получаю ошибку

ValueError: cannot reshape array of size 13715 into shape (13715,402)

Я знаю, что для каждого из моих 13715 элементов имеется 402 подэлемента.

Что я делаю не так?

1 Ответ

1 голос
/ 19 июня 2019

Когда вы получаете запятую, например (13715,), это означает, что у вас есть 13715 строк, и это число столбцов не определено, т. Е. Оно отличается для разных строк. Вы не можете изменить его, поскольку такая операция не имеет смысла.

Вы можете получить доступ к каждому массиву с помощью номера строки, как вы это сделали: input [x].

И вы можете проверить, имеет ли каждая строка одинаковую длину 402, например:

bool_check = [len(input[n])!=402 for n in range(len(input))]
sum(bool_check)

Когда элемент не имеет длину 402, вы получаете Истину. Если вы сложите все, вы получите ноль только если все элементы имеют длину 402. Иначе, сумма скажет вам, сколько элементов не 402 длинны.

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