块状切片并加入

时间:2019-05-29 09:12:41

标签: arrays pandas numpy

我有一个数组,希望以以下形式切成多个数组:

M = [1,2,3          to [ [1],[2]....[9] ]  (List of arrays)
     4,5,6
     7,8,9]

我想知道如何重新加入他们以再次获得M。 除了命名每个数组并将其手动放置在正确的(行,列)位置之外,我找不到其他解决方案。

编辑:

我发现我的解释不清楚。我所拥有的是一个大数组,我想将其切成子数组。

  M.shape = (5000,5000,3)    =====> L = [ subarray1, subarray2 ...]
  with subarray.shape = (500,500,3)

第二步:合并

from L = [ subarray1, ...] to M

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式完成

M = np.array([[1,2,3],[4,5,6],[7,8,9]])
A = M.reshape(-1,1)
print(A)
#for getting back in the original form
a = len(A)
c = [A[i-3:i] for i in range(3,a+1,3)]
c_new = np.array([np.concatenate(i) for i in c]).reshape(3,3)
print(c_new)

A-

[[1]
 [2]
 [3]
 [4]
 [5]
 [6]
 [7]
 [8]
 [9]]

c_new-

[[1 2 3]
 [4 5 6]
 [7 8 9]]