我試圖在僅由字符串(表示二進制浮點數)組成的numpy數組上使用join
函數來獲取連接字符串以便使用numpy.fromstring
函數,但是使用join
功能似乎不能正常工作。由字符串組成的numpy數組的連接函數
任何想法爲什麼?我可以使用哪種替代功能來做到這一點?
這裏是一個獨立的例子來說明我的問題:
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.]
正如你所看到的,使用列表上的連接功能(binary_list
)正常工作,但相當於numpy的陣列(binary_split_array
)它不「T:我們可以看到返回的字符串是隻有72個字符,而不是80
我發現了另一種方法(我應該知道如何使用搜索欄,現在......)使用'tostring()'函數進行連接。但任何想法爲什麼'加入'不起作用? –