【发布时间】:2020-11-28 12:25:08
【问题描述】:
我遇到了一个代码,其中作者使用ellipsis 运算符(例如,[..., 1])和numpy 数组而不是slice 运算符(例如,[:, 1])获取数组部分。
我对该主题的研究:
-
从scipy github wiki page 我了解到,这两个运算符执行的操作有些相似,即返回多维数组的一个切片。
-
我翻过this question,其中处理了
numpy数组的几种切片技术,但没有找到关于何时应该使用slice运算符以及何时需要使用ellipsis,或者它们的功能是否相同。 -
来自
Example 1我看不出这两个运算符有什么区别:
示例 1:
import numpy as np
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
A[..., 0], A[:, 0] # Out: (array([1, 4, 7]), array([1, 4, 7]))
A[..., 0] == A[:, 0] # Out: array([ True, True, True])
所以我的问题是:
-
slice与ellipsis运算符与numpy.ndarrays一起使用有什么区别? - 它们可以互换使用吗?
- 使用其中一种有什么优势吗?
非常感谢您能详细说明我的问题,并提前感谢您抽出宝贵时间。
【问题讨论】:
标签: python-3.x numpy numpy-ndarray