python - 剪切数组的行和列

标签 python arrays numpy

我有一个 2D 数组(NumPy 数组),想要取出一个子数组,该子数组是剪切给定行和列的结果。

作为一个例子,我找到了一种方法:

In [111]: mat
Out[111]: 
array([[ 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]])

In [112]: np.delete(np.delete(mat, 3, 1), 0,0)
Out[112]: 
array([[ 6,  7,  8, 10],
       [11, 12, 13, 15],
       [16, 17, 18, 20],
       [21, 22, 23, 25]])

这取出了第 0 行和第 3 列。但是,我认为这不是很漂亮,据我所知,它必须为两个额外的数组分配空间,每个从 np 返回的数组都分配一个空间.删除

所以问题是,是否有某种方法可以以更高效的读取和内存方式获得所需的结果?理想情况下,它只提供对数组正确元素的引用,而不是完整的副本。请注意,该示例不是我需要的数组,答案应该适用于删除了行 i 和列 jn x n

最佳答案

您可以使用 np.column_stack 进行简单的索引:

>>> np.column_stack((A[1:,:3],A[1:,4:]))
array([[ 6,  7,  8, 10],
       [11, 12, 13, 15],
       [16, 17, 18, 20],
       [21, 22, 23, 25]])

关于python - 剪切数组的行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742836/

相关文章:

python - 如何使用 python 绘制具有两个斜率的线

python - 哪个更快?

python - 在 Pybrain 中保存神经网络测试输出

python - 在一张图表中绘制多个不同长度的 Pandas 系列

c++ - 汇编如何做参数传递: by value,引用,不同类型/数组的指针?

java - 使用for循环,如何反转字符串?

python - Matplotlib 动画不接受圆形补丁作为 fargs

c++ - GNU 编译器 vs. Visual Studio 在数组上分配 w/Length Constant w/in a Scope

python - Pandas DataFrame 检查一组列中是否存在列值

python - 使用掩码移动知道新坐标的二维数组的值