如何在Python中将行转换为列

时间:2019-03-19 02:14:21

标签: python numpy

我有如下数据。

nextLink

但是我想做这个(1,34)。
当我像这样使用np.reshape

[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.] <br>

(34,)

我得到如下数据。

np.reshape(data, (1,34))

但是对我来说看起来很奇怪。您能推荐一个解决方案吗?
%np.transpose不会更改任何内容。

2 个答案:

答案 0 :(得分:0)

因此,使用numpy的reshape(),它将更改数组的尺寸。这些尺寸必须是元素总和的因素。在您的情况下,您的服装有34个值,因此您只有4个选择。您的尺寸为(1,34)或(2,17),如下所示:

    array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
        17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
        33, 34]])

array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
        17],
       [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
        34]])

或者您可以使用(34,1)进行上述相反操作:

array([[ 1],
       [ 2],
       [ 3],
       [ 4],
       [ 5],
         .
         .
       [34]

或最终(17,2)如下所示:

array([[ 1,  2],
       [ 3,  4],
       [ 5,  6],
       [ 7,  8],
       [ 9, 10],
       [11, 12],
       [13, 14],
       [15, 16],
       [17, 18],
       [19, 20],
       [21, 22],
       [23, 24],
       [25, 26],
       [27, 28],
       [29, 30],
       [31, 32],
       [33, 34]])

这是因为34仅分解为2 * 17或17 *2。

答案 1 :(得分:0)

您还可以使用数组转置到(df.T)以获得所需的输出。