当我想转置一个像列一样的numpy数组时,比如,
a = array([[1],
[2],
[3]])
到一个类似行的numpy数组,我期望它是,
b = array([1,2,3])
但是当我转置一个时,我只得到一个1x3维数组,
>>> a.transpose()
>>> array([[1,2,3]])
我不知道如何修复它。
答案 0 :(得分:0)
如果您使用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 :(得分:0)
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
]
<强>更新强>
OR 你可以这样做,(但我会建议列表理解,因为它可以内联所有内容而无需函数调用的开销)
b=transposed_list[0]