【发布时间】:2015-08-02 01:04:38
【问题描述】:
我正在尝试在仅由字符串(表示二进制浮点数)组成的 numpy 数组上使用 join 函数来获取连接的字符串,以便使用 numpy.fromstring 函数,但 join 函数没有t 似乎工作正常。
知道为什么吗?我可以使用哪个替代功能来做到这一点?
这是一个独立的例子来说明我的问题:
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) 上使用 join 函数可以正常工作,但在等效的 numpy 数组 (binary_split_array) 上却不行:我们可以看到返回的字符串只有 72 个字符长而不是 80。
【问题讨论】:
-
我找到了另一种方法(我现在应该知道如何使用搜索栏了...)使用
tostring()函数加入。但是知道为什么join不起作用吗?
标签: python arrays string join numpy