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

Python 如何将1xn维列表缩减为1维列表,python,data-manipulation,Python,Data Manipulation,当我想转置一个列,比如numpy数组 a = array([[1], [2], [3]]) 对于一个像numpy数组这样的行,我希望是这样的 b = array([1,2,3]) 但当我转置a时,我得到的是一个1x3维数组 >>> a.transpose() >>> array([[1,2,3]]) 我不知道如何修复它。如果您使用的是numpy,numpy.transpose不会更改数组的维数a仍然是2d数组如果它最初是2d数组,则需

当我想转置一个列,比如numpy数组

a = array([[1],
     [2],
     [3]])
对于一个像numpy数组这样的行,我希望是这样的

b = array([1,2,3])
但当我转置a时,我得到的是一个1x3维数组

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

我不知道如何修复它。

如果您使用的是
numpy
numpy.transpose
不会更改数组的维数
a
仍然是2d数组如果它最初是2d数组,则需要将其展平以将其从
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])

输出

[1, 2, 3]

解释
使用


更新

或者您也可以这样做,(但我建议使用列表理解,因为它可以在不增加函数调用开销的情况下进行所有内联操作)


@randomir OP说的是转置,听起来像一个名词。@randomir当然。当我说听起来像的时候,我不确定很抱歉,这个问题并没有明确提出,但是的,我只是在说一个numpy数组。您提供的所有方法都是可行的,而我只是使用a.flatte()来解决这个问题。我明白了。但很抱歉,我没有明确说明我的数据类型实际上是numpy数组。所以也许numpy方法更有效。不管怎样,你的答案很有价值。
[1, 2, 3]
[
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]