Поскольку вы упомянули astype
, похоже, ram
- массив NumPy.
Чтобы удалить все 0
с от нужного размера каждого значения используйте np.char.rstrip
:
np.char.rstrip(ram, '0')
Чтобы сохранить только первые 5 байт для каждого значения,
ram.astype('|S5')
суффиксов.
Например,
import numpy as np
ram = np.array(['039410', '123456', '00000']).astype('|S6')
print(np.char.rstrip(ram, b'0'))
# ['03941' '123456' '']
print(ram.view('|S5'))
# ['03941' '12345' '00000']
Как Padraic Cunningham points out, если у вас есть массив строк:
In [209]: ram = np.array(['039410', '123456', '00000']).astype('|S6'); ram
Out[209]:
array([b'039410', b'123456', b'00000'],
dtype='|S6')
и преобразовывать строки в Интс, вы теряете нули на левый:
In [210]: ram.astype(int)
Out[210]: array([ 39410, 123456, 0])
Так что не используйте astype(int)
, если вы хотите сохранить первые 5 байтов строки.
работает для меня, какая версия NumPy? –
Строки не имеют 'astype', ваш пример не работает. –
@StefanPochmann, numpy делает –