如何将 1xn 维列表缩减为 1 维列表

How to reduce 1xn dimensional list to 1 dimensional list

当我想转置类似列的 numpy 数组时,例如,

a = array([[1],
     [2],
     [3]])

到一个类似行的 numpy 数组,我希望它是这样的,

b = array([1,2,3])

但是当我转置a时,我只是得到一个1x3维数组,

>>> a.transpose()
>>> array([[1,2,3]])

我不知道怎么解决。

如果您使用 numpynumpy.transpose 不会改变数组的维数; a 如果它最初是二维数组,它仍然是一个二维数组,你需要将它展平以将它从 2d 减少到 1d:

import numpy as np
a = [[1],
     [2],
     [3]]

np.ravel(a)
#array([1, 2, 3])

np.squeeze(a)
#array([1, 2, 3])

np.array(a)[:,0]
# array([1, 2, 3])
a = [[1],
     [2],
     [3]]
b=[i for sl in a for i in sl]
print(b)

输出

[1, 2, 3]

说明
使用 list comprehension

[
i             #Take as a member of the final list
for sl in a   #iterate over all sublists in a
for i in sl   #iterate over each i in sublist
]

更新

你可以做到,(但我建议列表理解,因为它内联所有内容,没有函数调用的开销)

b=transposed_list[0]