Как удалить одинаковые столбцы в нескольких массивах, используя l oop? - PullRequest
2 голосов
/ 14 января 2020

У меня есть несколько NumPy массивов, которые я хотел удалить столбец в каждом массиве. Индекс columsn одинаков для всех массивов.

Я написал этот код, и он не работал.

list= [a1, a2, a3]

for arrry in list:
        arrry  = np.delete(arrry, [0, 1, 2], axis=1)

Ответы [ 2 ]

1 голос
/ 14 января 2020

вы можете сделать понимание списка,

lst = [np.arange(100,112).reshape(2,6),np.arange(12).reshape(2,6)]
>>>lst
[array([[100, 101, 102, 103, 104, 105],
       [106, 107, 108, 109, 110, 111]]), 
 array([[ 0,  1,  2,  3,  4,  5],
       [ 6,  7,  8,  9, 10, 11]])
]

lst = [np.delete(x, [0, 1, 2], axis=1)for x in lst]
>>>lst
[array([[103, 104, 105],
        [109, 110, 111]]), 
 array([[ 3,  4,  5],
        [ 9, 10, 11]])
]
1 голос
/ 14 января 2020

Вы должны помнить, что Python это вызов по имени. Когда вы делаете

arrry = np.delete(arrry, [0, 1, 2], axis=1)

, вы назначаете имя arrry новому массиву с отсутствующим столбцом, но не изменяете список. попробуй:

list= [a1, a2, a3]

for idx, arrry in enumerate(list):
        list[idx] = np.delete(arrry, [0, 1, 2], axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...