假设我有一个NumPy
2D
数组A
:
>>> import numpy as np
>>> A=np.arange(30).reshape(3,10)
>>> A
array([[ 0, 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]])
我需要得到两个具有以下属性的数组B
和C
:
B = array([[ 0, 3, 4, 5, 6, 7, 8, 9],
[10, 13, 14, 15, 16, 17, 18, 19],
[20, 23, 24, 25, 26, 27, 28, 29]])
C = array([[ 1, 2],
[11, 12],
[21, 22]])
最简单的方法是什么?
注意,我必须得到所有集合C
(两个相邻列)和B
(即A
,没有C
)。我尝试了不同的NumPy
构造,比如np.delete
,np.hstack
,但是在上面的示例中,似乎没有任何东西在角落条件下工作。
对于
C
,可以使用简单的切片:对于} :
B
,在两片A
上使用^{可以使用数组花式索引:
其中:
:
告诉获取该维度的所有元素[1, 2]
)最简单的方法之一是使用索引来选择适当的列:
或者,您可以尝试
hsplit
分解A
,然后将位连接回一起。这感觉比上面的索引方法效率低,尽管:相关问题 更多 >
编程相关推荐