удалить последний элемент в массиве с помощью numpy - PullRequest
1 голос
/ 04 мая 2019

у меня такая проблема ..

arr = [['1' '2' '']['3' '4' '']['5' '6' '']]

тогда, как мне удалить последний элемент - массив [n] [2] Я много раз пытался найти в Google, но не решил ееПожалуйста, помогите мне решить эту проблему, спасибо ...

arr = [['1' '2']['3' '4']['5' '6']]

Ответы [ 4 ]

1 голос
/ 04 мая 2019

Использовать numpy.delete (обр, -1,1)

arr = numpy.array([['1','2',''],['3','4',''],['5','6','']])
arr = numpy.delete(arr,-1,1)

Результат будет:

[['1' '2']
['3' '4']
['5' '6']]
0 голосов
/ 04 мая 2019
In [415]: arr = np.array([['1', '2', ''],['3' ,'4', ''],['5', '6' ,'']]) 
     ...:                                                                            
In [416]: arr                                                                        
Out[416]: 
array([['1', '2', ''],
       ['3', '4', ''],
       ['5', '6', '']], dtype='<U1')

Просто возьмите срез столбца:

In [417]: arr[:, :-1]                                                                
Out[417]: 
array([['1', '2'],
       ['3', '4'],
       ['5', '6']], dtype='<U1')

Это создаст новый массив, но это нормально с numpy.Большинство numpy действий, особенно те, которые изменяют размер / форму, делают это.

Отображение OP arr соответствует массиву numpy.Однако для копирования-вставки лучше использовать дисплей repr.

In [418]: print(arr)                                                                 
[['1' '2' '']
 ['3' '4' '']
 ['5' '6' '']]
0 голосов
/ 04 мая 2019

У меня есть идея проверить '' с помощью len ().

arr = [['1', '2', ''],['3', '4', ''],['5', '6', '']]
arr = [[a for a in ar if len(a) > 0] for ar in arr]
print (arr)

Результат:

[['1', '2'], ['3', '4'], ['5', '6']]
0 голосов
/ 04 мая 2019

Я бы использовал numpy.apply_along_axis , чтобы удалить последний элемент из каждого подсписка

import numpy as np
arr = np.array([['1', '2', ''],['3' ,'4', ''],['5', '6' ,'']])

#Slice each sublist to remove the last element using apply_along_axis
arr = np.apply_along_axis(lambda x: x[:-1], 1, arr)
print(arr)

Вывод будет

[['1' '2']
 ['3' '4']
 ['5' '6']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...