【发布时间】:2024-01-02 03:28:01
【问题描述】:
我有数组
A = array([[ 1., 2., 3., 10., 11., 12.],
[ 4., 5., 6., 13., 14., 15.],
[ 7., 8., 9., 16., 17., 18.],
[ 19., 20., 21., 28., 29., 30.],
[ 22., 23., 24., 31., 32., 33.],
[ 25., 26., 27., 34., 35., 36.]])
我想重塑它以获得
B = [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,35,36]
我试过了
>>> B = A.reshape(1,36)
array([[ 1., 2., 3., 10., 11., 12., 4., 5., 6., 13., 14.,
15., 7., 8., 9., 16., 17., 18., 19., 20., 21., 28.,
29., 30., 22., 23., 24., 31., 32., 33., 25., 26., 27.,
34., 35., 36.]])
但是,很明显,我没有达到结果。我的真实数据与示例不同,所以无法对数组A进行排序得到B。
我想我需要更多的重塑......
【问题讨论】:
-
你能提供更多的上下文吗?严格来说,
numpy.sort(A.flatten())会达到这个效果。但我猜这不是您的真实数据,我们不能依靠排序来获得您想要的顺序。 -
@PaulH 我已经编辑了这个问题。您的答案适用于该示例,但我不能使用排序(我有随机数)
-
我想通了。还需要更多细节。您试图制定的解决方案有多通用?例如:您是否总是要处理一个被划分为象限的方形数组(N x N,其中 N 是偶数)?还是总是分成任意数量的 3x3 块?
标签: python arrays numpy reshape