我有这样的问题。
arr = [['1' '2' '']['3' '4' '']['5' '6' '']]
然后,如何删除最后一个元素-array [n] [2] 我已经尝试和搜索过很多Google,但没有解决 请帮助我解决这个问题,谢谢...
arr = [['1' '2']['3' '4']['5' '6']]
答案 0 :(得分:1)
使用numpy.delete(arr,-1,1)
arr = numpy.array([['1','2',''],['3','4',''],['5','6','']])
arr = numpy.delete(arr,-1,1)
结果将是:
[['1' '2']
['3' '4']
['5' '6']]
答案 1 :(得分:0)
我会使用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']]
答案 2 :(得分:0)
我有个想法用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']]
答案 3 :(得分:0)
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
操作,尤其是那些更改大小/形状的操作都可以做到这一点。
arr
的OP显示与numpy
数组一致。但是,对于复制n粘贴,repr
的显示效果更好。
In [418]: print(arr)
[['1' '2' '']
['3' '4' '']
['5' '6' '']]