是否有一种将结构化数组转换为向量的pythonic方法?
例如:
我正在尝试转换数组,如:
[(9,), (1,), (1, 12), (9,), (8,)]
Run Code Online (Sandbox Code Playgroud)
到一个像这样的矢量:
[9,1,1,12,9,8]
Run Code Online (Sandbox Code Playgroud)
In [15]: import numpy as np
In [16]: x = np.array([(9,), (1,), (1, 12), (9,), (8,)])
In [17]: np.concatenate(x)
Out[17]: array([ 9, 1, 1, 12, 9, 8])
Run Code Online (Sandbox Code Playgroud)
另一个选择是np.hstack(x),但为此目的,np.concatenate更快:
In [14]: x = [tuple(np.random.randint(10, size=np.random.randint(10))) for i in range(10**4)]
In [15]: %timeit np.hstack(x)
10 loops, best of 3: 40.5 ms per loop
In [16]: %timeit np.concatenate(x)
100 loops, best of 3: 13.6 ms per loop
Run Code Online (Sandbox Code Playgroud)
使用numpy.flatten()方法
>>> a = np.array([[1,2], [3,4]])
>>> a.flatten()
array([1, 2, 3, 4])
>>> a.flatten('F')
array([1, 3, 2, 4])
Run Code Online (Sandbox Code Playgroud)
资料来源:Scipy.org
您不需要使用任何内容numpy,可以使用sum:
myList = [(9,), (1,), (1, 12), (9,), (8,)]
list(sum(myList, ()))
Run Code Online (Sandbox Code Playgroud)
结果:
[9, 1, 1, 12, 9, 8]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24405 次 |
| 最近记录: |