为什么numpy在索引高于其形状的数组的子集时返回一个空数组?

时间:2018-02-19 23:16:00

标签: python arrays numpy

为什么numpy在索引高于数组形状的索引的数组时会返回一个空数组? 这有点像一个错误或者这有什么优势? 我希望会出现一条错误消息,就像你试图绘制一个超出范围的索引一样。 例如:

>>> import numpy as np
>>> from matplotlib import pyplot as plt
>>> a = np.array([[1, 2, 3], [4, 5, 6]])
>>> np.shape(a)
(2, 3)

这显然没有意义,因为a是一个包含3列的数组,但是不是返回错误消息,而是获得一个空数组,此外,您可以使用它进行操作:

>>> (a[:, 44:55])
array([], shape=(2, 0), dtype=int64)
>>> np.sum(a[:, 44:55], 1)
array([0, 0])

这有什么好处?我只是看不到它的用途。有没有办法防止这种情况发生?

0 个答案:

没有答案