Можно ли удалить указанный столбец c в массиве numpy? - PullRequest
0 голосов
/ 27 марта 2020

У меня есть этот набор данных

[[0.96570218 0.97916859 0.         0.98769127]
 [0.96570218 0.97916859 0.         0.98769127]
 [1.         1.         0.         1.        ]
 [1.         1.         0.         1.        ]
 [0.86415196 0.86027468 0.         0.85840598]
 [0.86415196 0.86027468 0.         0.85840598]
 [0.82511791 0.80803283 0.         0.79809695]
 [0.82511791 0.80803283 0.         0.79809695]
 [0.91828023 0.87749393 0.         0.8524262 ]
 [0.91828023 0.87749393 0.         0.8524262 ]
 [0.76760661 0.68182237 0.         0.62934141]
 [0.76760661 0.68182237 0.         0.62934141]
 [0.69375734 0.63615159 0.         0.60151271]

Я хочу удалить второй столбец в массиве. Я попробовал эту команду, но она удаляет весь набор данных, а не указанный c тот, который я хочу удалить:

np.delete(dataset, np.s_[:,1], axis=1) 

Есть ли способ сделать это легко?

(не уверен, что это важно / помогает, но для контекста, я беру набор данных и пытаюсь разделить набор данных и нужную мне функцию, прежде чем отправить ее в Keras для обучения. Поэтому я скопировал переменную (в в этом случае второй столбец для другой переменной, и теперь я хочу удалить его из этого массива).

Ответы [ 2 ]

1 голос
/ 27 марта 2020
import numpy as np

arr = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

# using indices
cols = [0,2,3]
arr2 = arr[:,cols]

# using boolean condition
cond = np.arange(arr.shape[-1])!=1  # [True,False,True,True]
arr2 = arr[:,cond]
0 голосов
/ 27 марта 2020
import numpy as np

arr = np.array([[1,2,3],[4,5,6],[7,8,9]])
col = 2                                          # column idx you want to remove
arr = np.hstack((arr[:,0:col], arr[:,col+1:]))   # ignoring data in 'col'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...