我正在使用一个 m x n numpy 二维数组,它包含一些整数值。在执行脚本之前尺寸是未知的,但 n(宽度)始终是偶数。类似的东西:
[[ 1 2 3 4]
[ 1 2 3 4]
[ 1 2 3 4]
[ 1 2 3 4]
[ 1 2 3 4]]
我需要的是将列成对分组并沿第一个轴连接它们:
[[ 1 2]
[ 1 2]
[ 1 2]
[ 1 2]
[ 1 2]
[ 3 4]
[ 3 4]
[ 3 4]
[ 3 4]
[ 3 4]]
我尝试使用 reshape
但没有输出预期的结果。我不太习惯用 Python 编程,并且能够使用循环和 if 语句来实现它,但我确信有一种更优雅的方法来做到这一点。欢迎任何帮助!
答案 0 :(得分:2)
您需要在 reshape
之间转置矩阵:
# sample
a = np.stack([[1,2,3,4, 5, 6]]*2)
a.reshape(a.shape[0], -1, 2).transpose(1,0,2).reshape(-1,2)
输出:
array([[1, 2],
[1, 2],
[3, 4],
[3, 4],
[5, 6],
[5, 6]])
答案 1 :(得分:1)
您好,使用 reshape,您可以选择从这样的列开始:
a=np.array([[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]])
a.reshape((8,2),order='F')