Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I have been looking for an efficient way for converting a string numpy array to a two dimensional ASCII matrix in python. So for this is the best that I could come up with

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]]])

is there a efficient way of doing this?

share|improve this question
    
Assumption is that all the strings are padded to same length. –  kaz 18 hours ago
2  
please provide sample data –  mskimm 18 hours ago
    
Sample data will be input:["aa","aa"] output:[92,92;92,92] –  kaz 15 hours ago
add comment

1 Answer

up vote 0 down vote accepted

How is this?

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)
share|improve this answer
    
Thank you @slushy this is better than my solution –  kaz 15 hours ago
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.