numpy 数组索引作为输入(来自用户)
numpy array index as input (from user)
用例是可以打开或关闭规则的用例。
想知道我是否可以使用 numpy 数组索引
对此的表达。
例如用户可以指定:
10:40:3
这意味着规则在每三天的第 10 到 40 天内处于活动状态。
如何使用给定的表达式在数组中建立索引。
10:40:3
表达式仅在 []
内部有效,例如
x[10:40:3]
其中 x
是列表或数组。
Python 解释器将其翻译成:
x.__getitem__(slice(10,40,3))
可以将 '10:40:3'
字符串转换为 slice(10,40,3)
对象,但您也可以接受三个整数并从中构建切片。
切片可以用作:
idx = slice(10,40,3)
x[idx]
In [683]: idx = slice(1,10,2)
In [684]: np.arange(20)[idx]
Out[684]: array([1, 3, 5, 7, 9])
In [685]: np.arange(1,10,2)
Out[685]: array([1, 3, 5, 7, 9])
从字符串制作 slice
的简单方法:
In [687]: slice(*[int(i) for i in astr.split(':')])
Out[687]: slice(1, 10, 2)
numpy
还定义了一些可以帮助切片的特殊对象,但是 none 使用字符串
In [690]: np.r_[idx]
Out[690]: array([1, 3, 5, 7, 9])
In [691]: np.s_[1:10:2]
Out[691]: slice(1, 10, 2)
In [693]: np.s_[1::2]
Out[693]: slice(1, None, 2)
In [694]: np.s_[:]
Out[694]: slice(None, None, None)
用例是可以打开或关闭规则的用例。 想知道我是否可以使用 numpy 数组索引 对此的表达。 例如用户可以指定:
10:40:3
这意味着规则在每三天的第 10 到 40 天内处于活动状态。 如何使用给定的表达式在数组中建立索引。
10:40:3
表达式仅在 []
内部有效,例如
x[10:40:3]
其中 x
是列表或数组。
Python 解释器将其翻译成:
x.__getitem__(slice(10,40,3))
可以将 '10:40:3'
字符串转换为 slice(10,40,3)
对象,但您也可以接受三个整数并从中构建切片。
切片可以用作:
idx = slice(10,40,3)
x[idx]
In [683]: idx = slice(1,10,2)
In [684]: np.arange(20)[idx]
Out[684]: array([1, 3, 5, 7, 9])
In [685]: np.arange(1,10,2)
Out[685]: array([1, 3, 5, 7, 9])
从字符串制作 slice
的简单方法:
In [687]: slice(*[int(i) for i in astr.split(':')])
Out[687]: slice(1, 10, 2)
numpy
还定义了一些可以帮助切片的特殊对象,但是 none 使用字符串
In [690]: np.r_[idx]
Out[690]: array([1, 3, 5, 7, 9])
In [691]: np.s_[1:10:2]
Out[691]: slice(1, 10, 2)
In [693]: np.s_[1::2]
Out[693]: slice(1, None, 2)
In [694]: np.s_[:]
Out[694]: slice(None, None, None)