如何重塑数组

时间:2016-07-21 07:37:25

标签: python numpy

我想创建如下所示的5 * 3数组,而无需明确输入。

[[1,  6, 11],
 [2,  7, 12],
 [3,  8, 13],
 [4,  9, 14],
 [5, 10, 15]]

我用过以下代码。

np.arange(1, 16).T.reshape((5,3))

但它显示

array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12],
       [13, 14, 15]])

如何按升序排序数字,使其成为第一个数组?

2 个答案:

答案 0 :(得分:6)

这就是你要找的东西:

np.arange(1, 16).reshape((3,5)).T

事实上,按顺序:

答案 1 :(得分:1)

为了完整起见,值得注意的是,不需要按照当前接受的答案中的建议转置数组。您只需要使用以下参数调用numpy.reshape

  • (5, 3),对应于位置参数newshape,即您要创建的数组的形状。

  • order='F'。默认值为'C'

    以下是order可选参数 docs 的摘录:

      

    'C'表示使用类似C的索引顺序读取/写入元素,最后一个轴索引变化最快,返回到第一个轴索引变化最慢。 'F'表示使用类似Fortran的索引顺序读/写元素,第一个索引变化最快,最后一个索引变化最慢。

通过这样做,数字按列排列:

In [45]: np.arange(1, 16).reshape((5, 3), order='F')
Out[45]: 
array([[ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14],
       [ 5, 10, 15]])