【问题标题】:how to vertically split an array and add one column in to each of splitted array如何垂直拆分数组并在每个拆分后的数组中添加一列
【发布时间】:2019-05-22 15:33:45
【问题描述】:

我想在数组下面拆分

A = 
[[0.45 + 0j, 1 - 2j, 3 - 4j, 5 + 6j, 7 + 8j, 9 - 10j, 11 - 12j, 13 + 14j, 15 + 16j, 17 - 18j, 19 - 20j, 21. - 22j, 23 - 24j],
 [0.45 + 0j, 1 - 2j, 3 - 4j, 5 + 6j, 7 + 8j, 9 - 10j, 11 - 12j, 13 + 14j, 15 + 16j, 17 - 18j, 19 - 20j, 21. - 22j, 23 - 24j],
 [0.45 + 0j, 1 - 2j, 3 - 4j, 5 + 6j, 7 + 8j, 9 - 10j, 11 - 12j, 13 + 14j, 15 + 16j, 17 - 18j, 19 - 20j, 21. - 22j, 23 - 24j],
 [0.45 + 0j, 1 - 2j, 3 - 4j, 5 + 6j, 7 + 8j, 9 - 10j, 11 - 12j, 13 + 14j, 15 + 16j, 17 - 18j, 19 - 20j, 21. - 22j, 23 - 24j],
 [0.45 + 0j, 1 - 2j, 3 - 4j, 5 + 6j, 7 + 8j, 9 - 10j, 11 - 12j, 13 + 14j, 15 + 16j, 17 - 18j, 19 - 20j, 21. - 22j, 23 - 24j]]

进入

B = 
[[[1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [2, 4, 6, 8, 10, 12, 14, 16,  18, 20, 22, 24]],
 [[1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [2, 4, 6, 8, 10, 12, 14, 16,  18, 20, 22, 24]],
 [[1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [2, 4, 6, 8, 10, 12, 14, 16,  18, 20, 22, 24]],
 [[1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [2, 4, 6, 8, 10, 12, 14, 16,  18, 20, 22, 24]],
 [[1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [2, 4, 6, 8, 10, 12, 14, 16,  18, 20, 22, 24]]]

然后在数组下面添加

R = [0.1, 0.2, 0.3, 0.4, 0.5]

如下所示

C = 
[[[0.1, 1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [0.0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]],
 [[0.2, 1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [0.0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]],
 [[0.3, 1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [0.0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]],
 [[0.4, 1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [0.0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]],
 [[0.5, 1, 3, 5, 7, 9 , 11, 13, 15, 17, 19, 21, 23],
  [0.0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24]]]

我只想使用 numpy 库。

我已经尝试过以下功能,但没有帮助

索引分离 分裂 分裂 分裂 重塑 拉链

像分裂一样的试验

A = np.vsplit(A,5)
A = np.array(A)

A = np.hsplit(A,5)
A = np.array(A)

A = np.reshape(-1,A,5)
A = np.array(A)

A = np.reshape(A,5,-1)
A = np.array(A)

添加部分更容易我使用复杂的概念,它适用于添加...

如果您对使用其他功能有任何想法? 我只需要一个线索,我会自己写代码!

【问题讨论】:

  • 你有参差不齐的数组,你的方法都不行。

标签: python numpy


【解决方案1】:

这是一种方法:

A = np.array([[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 
              [11, 22, 33, 44, 55, 66, 77, 88, 99, 1010]])
R = [0.1, 0.2, 0.3, 0.4, 0.5]

让我们从重塑和转置A 开始,这样就可以匹配指定预期输出中的结构:

A = A.T.reshape(-1, 2, 2).transpose(0,2,1)

print(A)

[[[   1    2]
  [  11   22]]

 [[   3    4]
  [  33   44]]

 [[   5    6]
  [  55   66]]

 [[   7    8]
  [  77   88]]

 [[   9   10]
  [  99 1010]]]

现在我们可以使用np.column_stack0s 的新列堆叠到R,然后np.dstack 将其深度堆叠到重塑后的A

R = np.column_stack([R, np.zeros(len(R))])
C = np.dstack([R,A])

print(C)

array([[[   0.1,    1. ,    2. ],
        [   0. ,   11. ,   22. ]],

       [[   0.2,    3. ,    4. ],
        [   0. ,   33. ,   44. ]],

       [[   0.3,    5. ,    6. ],
        [   0. ,   55. ,   66. ]],

       [[   0.4,    7. ,    8. ],
        [   0. ,   77. ,   88. ]],

       [[   0.5,    9. ,   10. ],
        [   0. ,   99. , 1010. ]]])

【讨论】:

  • 但是问题已经被回答和接受了对吧? @NoneNone 你不能真的只是修改它,因为我似乎在回答别的东西.. 为此你应该问一个新问题
  • 对不起,你的回答对于那个特殊的状态/情况是完全正确的,但是当我增加数组时,我不知道哪里出错了。而且它们是相似的。由于相似性,我不敢提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 2018-07-06
相关资源
最近更新 更多