Sto provando a utilizzare la funzione join
su un array numpy composto da sole stringhe (che rappresentano i valori binari) per ottenere la stringa unita per utilizzare la funzione numpy.fromstring
, ma lo join
la funzione non sembra funzionare correttamente.join function di un array numpy composto da stringa
Qualche idea del perché? Quale funzione alternativa posso usare per farlo?
Ecco un esempio standalone per mostrare il mio problema:
import numpy as np
nb_el = 10
table = np.arange(nb_el, dtype='float64')
print table
binary = table.tostring()
binary_list = map(''.join, zip(*[iter(binary)] * table.dtype.itemsize))
print 'len binary list :', len(binary_list)
# len binary list : 10
join_binary_list = ''.join(binary_list)
print np.fromstring(join_binary_list, dtype='float64')
# [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
binary_split_array = np.array(binary_list)
print 'nb el :', binary_split_array.shape
# nb el : (10,)
print 'nb_el * size :', binary_split_array.shape[0] * binary_split_array.dtype.itemsize
# nb_el * size : 80
join_binary_split_array = ''.join(binary_split_array)
print 'len binary array :', len(join_binary_split_array)
# len binary array : 72
table_fromstring = np.fromstring(join_binary_split_array, dtype='float64')
print table_fromstring
# [ 1. 2. 3. 4. 5. 6. 7. 8. 9.]
Come si può vedere, utilizzando la funzione di join nella lista (binary_list
) funziona correttamente, ma sulla matrice NumPy equivalente (binary_split_array
) doesn 't: possiamo vedere la stringa restituita è solo 72 caratteri invece di 80.
Ho trovato un modo alternativo (dovrei sapere come usare la barra di ricerca ormai ...) per unirmi usando la funzione 'tostring()'. Ma qualsiasi idea sul perché "unisciti" non funziona? –