2014-04-18 193 views
0

我一直在尋找一種將字符串numpy數組轉換爲python中的二維ASCII矩陣的有效方法。所以這是最好的,我可以拿出將字符串numpy數組轉換爲ascii numpy矩陣

def charArrayToAsciiMatrix(strNumpyArray): 
for i in range(strNumpyArray): 
    if(i==0): 
     AsciiMatrix=numpy.matrix(ord[[c for c in strNumpyArray[i]]]) 
    else: 
     AsciiMatrix=numpy.vstack(AsciiMatrix,ord[[c for c in strNumpyArray[i]]]) 

有沒有這樣做的有效方式?

+0

假設所有的字符串被填充到相同的長度。 – gman

+2

請提供*樣本數據* – emeth

+0

將輸入樣本數據:[「aa」,「aa」]輸出:[92,92; 92,92] – gman

回答

0

這是怎麼回事?

import numpy as np 

def add_word_as_ordinal(arr, word): 
    arr.extend([ord(ch) for ch in word]) 
    return arr 

def char_array_to_ascii_matrix(char_array): 
    result = np.matrix(reduce(add_word_as_ordinal, char_array, [])) 
    result.shape = len(char_array), len(char_array[0]) 
    return result 

my_array = np.array("JustA Flesh Wound".split()) 
my_matrix = char_array_to_ascii_matrix(my_array) 
+0

謝謝@slushy這比我的解決方案更好 – gman

相關問題