Python数组到1-D V

2024-04-27 05:21:39 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种pythonic方法可以将结构化数组转换为向量?

例如:

我正试图转换一个数组,比如:

[(9,), (1,), (1, 12), (9,), (8,)]

以向量的形式:

[9,1,1,12,9,8]

Tags: 方法数组pythonic向量形式结构化正试图
3条回答

您不需要使用任何numpy,您可以使用sum

myList = [(9,), (1,), (1, 12), (9,), (8,)]
list(sum(myList, ()))

结果:

[9, 1, 1, 12, 9, 8]
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])

另一个选项是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

使用numpy.flatten()方法

>>> a = np.array([[1,2], [3,4]])
>>> a.flatten()
array([1, 2, 3, 4])
>>> a.flatten('F')
array([1, 3, 2, 4])

来源:Scipy.org

相关问题 更多 >