使用纯Python列出理解
这有效:
>>> flowers = np.array([[int(x) for x in coordinate[0].split()]
for coordinate in coordinates])
>>> flowers
array([[2,4]])
我不知道任何NumPy功能可以一步完成.
性能
我们来看看事情有多快.
对于您的示例数据,纯Python版本是最快的:
%timeit np.array([np.fromstring(i,dtype=int,sep=' ') for j in coordinates for i in j])
100000 loops,best of 3: 18.4 µs per loop
%timeit np.array([np.fromstring(item[0],sep=' ').tolist() for item in coordinates])
10000 loops,best of 3: 19 µs per loop
%timeit np.array([[int(x) for x in coordinate[0].split()] for coordinate in coordinates])
100000 loops,best of 3: 12.1 µs per loop
使数据更大:
long_coords = coordinates * 1000
但是,sep=' ') for j in long_coords for i in j])
100 loops,best of 3: 12.2 ms per loop<