Mic*_*ael 1 numpy python-3.x numpy-ndarray
我遇到了一段代码,作者在数组中使用了ellipsis运算符(例如,[..., 1])numpy而不是slice运算符(例如,[:, 1])来获取数组部分。
我对这个主题的研究:
从scipy github wiki 页面我了解到这两个运算符执行有些相似的操作,即返回多维数组的切片。
我已经讨论过这个问题,它涉及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])
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
slice使用vsellipsis运算符与有何区别numpy.ndarrays?我非常感谢您对我的问题进行详细说明,并提前感谢您的宝贵时间。
两者背后的动机完全不同。
省略号的意思是“所有其他维度(我懒得去列举或者不确定或者不关心有多少)”
切片的意思是“由起始和结束索引(和步幅)指定的当前维度的子集”。