【发布时间】:2021-07-07 17:40:21
【问题描述】:
如果你这样做,例如以下:
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]])
print(a[2:10])
Python 不会抱怨并像a[2:] 一样打印数组,这在我的用例中会很棒。我想遍历一个大数组并将其切成大小相等的块,直到数组“用完”。因此,最后一个数组可以比其他数组小,这对我来说并不重要。
但是:我担心安全漏洞、性能漏洞、这种行为在不久的将来被弃用的可能性等等。使用这样的切片是否安全,是否应该避免,我有加倍努力确保最后一块被切片为a[2:] 或a[2:len(a)]?
有像this 这样的相关答案,但我没有找到任何解决我问题的方法
【问题讨论】:
-
numpy从 Python 列表中继承了这种行为(至少在概念上如此),而且它从一开始就是标准行为。您无法在界限之外建立索引。主要(唯一?)缺点是您最终可能会得到一个小于预期的数组,甚至可能在 siced 维度中大小为 0。但你知道这一点。 -
谢谢,这很有帮助!
标签: python python-3.x numpy indexing