我正在寻找一种简单的 pythonic 方法来获取 numpy 数组的第一个元素,无论它的维度如何。例如:
对于 [1,2,3,4] 就是 1
对于 [[3,2,4],[4,5,6]] 它将是 3
有没有一种简单的 pythonic 方法可以做到这一点?
请您参考如下方法:
使用直接索引:
arr[(0,) * arr.ndim]
普通索引表达式中的逗号组成一个元组。您也可以传入手动构造的元组。
您可以从 np.unravel_index 得到相同的结果:
arr[unravel_index(0, arr.shape)]
另一方面,使用非常诱人的arr.ravel[0]并不总是安全的。 ravel 通常会返回一个 View ,但如果您的数组是不连续的,它会复制整个内容。
一个相对便宜的解决方案是
arr.flat[0]
flat是一个可索引的迭代器。它不会复制您的数据。
