我正在尝试从 Numpy 数组表示的图像中删除行或列。我的图像类型为 uint16 和 2560 x 2176。例如,假设我想删除前 16 列以使其成为 2560 x 2160。
我是一个 MATLAB 到 Numpy 的转换,在 MATLAB 中会使用类似的东西:
A = rand(2560, 2196);
A(:, 1:16) = [];
据我了解,这会删除现有的列并通过不复制到新数组来节省大量时间。
对于 Numpy,以前的帖子使用过类似numpy.delete
. 但是,文档很清楚这会返回一个副本,因此我必须将副本重新分配给 A。这似乎会浪费大量时间进行复制。
import numpy as np
A = np.random.rand(2560,2196)
A = np.delete(A, np.r_[:16], 1)
这真的和就地删除一样快吗?我觉得我一定是错过了更好的方法,或者不了解 python 在删除过程中如何处理数组存储。
相关以前的帖子:
有效地删除 NumPy 中
的行 numpy.delete 的文档