我有一組12個不同的2字節字符串,映射到一組12個相應的1字節字符串,根據以下翻譯字典:使用numpy根據固定的映射將大量的2字節字符串轉換爲相應的1字節字符串
translation_dict = {'AC': '2', 'AG': '3', 'AT': '4',
'CA': '5', 'CG': '6', 'CT': '7',
'GA': '8', 'GC': '9', 'GT': 'a',
'TA': 'b', 'TC': 'c', 'TG': 'd'}
我需要一些方法用於平移2字節串的巨大numpy.char.array
成其相應的1字節的字符串映射,如顯示在下面的例子:
>>> input_array = numpy.char.array(['CA', 'CA', 'GC', 'TC', 'AT', 'GT', 'AG', 'CT'])
>>> output_array = some_method(input_arr)
>>> output_array
chararray(['5', '5', '9', 'c', '4', 'a', '3', '7'], dtype='S1')
我想知道是否有快速的numpy.char.array方法用於翻譯巨大的2字節字符串數組;我知道我可以使用'numpy.vectorize'和一個明確查找每個2字節密鑰的1字節字典值的函數,但這相對較慢。我無法想出使用numpy.chararray.translate
,雖然它似乎只適用於1字節:1字節映射。
定義 「巨大的」。百萬?十億?萬億? –
爲什麼在'numpy.char.array'輸入?那是你可以改變的東西嗎? –
@WarrenWeckesser「巨大」在這種情況下的數十億的秩序和'numpy.char.array'是沒有必要的,我用它的例子,因爲我仍然堅持發現'chararray.translate的巧妙使用' – isosceleswheel