Python 如何重塑数组
我想创建如下所示的5*3数组,而不需要显式键入它Python 如何重塑数组,python,numpy,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]]
[[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]])
如何按升序排列数字,使其成为第一个数组 这就是你要找的:
np.arange(1, 16).reshape((3,5)).T
事实上,为了:
将返回间隔1到6内的等间距值(默认步长为1)[]李>np.arange(1,16)
为先前形成的数组[]赋予了新的形状。新数组将有3行5列李>重塑((3,5))
将转置先前重新整形的数组[].T
,它对应于位置参数(5,3)
,即要创建的数组的形状newshape
。默认值是order='F'
以下是对'C'
可选参数的文档的摘录: “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]])
非常感谢。首先创建3乘5并转置它。我明白了。虽然只写代码的答案是不被禁止的,但请理解这是一个问答社区,而不是一个众包社区,而且,通常,如果OP理解代码是作为答案发布的,他/她会自己想出类似的解决方案,并且一开始就不会发布问题。因此,请通过解释其工作原理和/或原因,为您的答案和/或代码提供上下文。@全能者,我不同意。对于任何问题,你的评论都不可能是真实的。这是一个非泛型的、易于理解的问题的一个非常具体的问题,因为它涉及
numpy
方法的应用。这也意味着,就解释而言,我的回答不能添加任何内容,除了人们在文档中已经找到的内容;让我问你一个非常简单的问题:一个以前从未读过或使用过.arange()
或或的新程序员,是否会完全理解这里正在做什么,而不必去别处看如果您的回答是“否”,并且我真诚希望您在智力上足够诚实,能够得出该答案,那么您的答案可以而且应该得到改进,例如,提供方法文档相关部分的快速引用,然后提供或包括链接。这将满足我之前评论中“如何”的语境化。但是,如果你想说去其他地方寻找会很简单,那么,我同意,但你没有抓住我的重点:如果很容易找到文档,那么为什么不至少在这里简单地链接一下,并通过这样做来语境化你的答案?您是否有充分的理由提供一个上下文不完整的答案,让一些(即使只有少数)用户可能会感到困惑,而不是一个具有完整上下文且所有用户都可以轻松理解的答案?