как убрать последний столбец массива в python - PullRequest
1 голос
/ 30 марта 2020

Размер моего массива неизвестен, и я хотел бы удалить самый последний столбец

a = np.array([["A1","A2","A3"],["B1","B2","B3"],["C1","C2","C3"]])

Я пытался

a[-1:]

, но он удалил все строки, кроме последней строки

Я также попытался

a[:-1]

, и он удалил последнюю строку.

Как я могу удалить последний столбец?

Ответы [ 3 ]

5 голосов
/ 30 марта 2020

Я предлагаю вам прочитать документы о Basi c Нарезка и индексирование массив numpy.

Попробуйте это:

arr = a[:, :-1] #--> first two columns of array

Примечание 1: Результирующий массив arr операции среза - это просто представление внутри исходного массива a, копия не создается. Если вы измените какой-либо объект внутри arr, это изменение также будет распространено в массиве a и наоборот.

Например, Изменение значения arr[0, 0] приведет к также измените соответствующее значение a[0, 0].


Примечание 2: Если вы хотите создать новый массив, при удалении последнего столбца, чтобы изменения в одном массив не должен распространяться в другом массиве, вы можете использовать numpy.delete, который возвращает новый массив с вложенными массивами вдоль удаленной оси.

arr = np.delete(a, -1, axis=1) # --> returns new array

Выход >>> arr:

[['A1' 'A2']
 ['B1' 'B2']
 ['C1' 'C2']]
0 голосов
/ 30 марта 2020

Если вы хотите sh удалить последний столбец

b = a[:,:2]
'''array([['A1', 'A2'],
   ['B1', 'B2'],
   ['C1', 'C2']], dtype='<U2')'''

Если вы хотите sh удалить последний ряд

c = a[:2]
'''array([['A1', 'A2', 'A3'],
   ['B1', 'B2', 'B3']], dtype='<U2'''
0 голосов
/ 30 марта 2020

Попробуйте:

import numpy as np
a = np.array([["A1","A2","A3"],["B1","B2","B3"],["C1","C2","C3"]])
print(a)

b = np.delete(a, np.s_[-1:], axis=1)
print(b)

Вывод:

[['A1' 'A2' 'A3']
 ['B1' 'B2' 'B3']
 ['C1' 'C2' 'C3']]

[['A1' 'A2']
 ['B1' 'B2']
 ['C1' 'C2']]

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