Jzl*_*325 7 python dictionary numpy slice python-2.7
我想知道是否可以在python字典中存储numpy切片表示法.就像是:
lookup = {0:[:540],
30:[540:1080],
60:[1080:]}
Run Code Online (Sandbox Code Playgroud)
例如slice(0,10,2),可以使用本机python切片语法,但我无法存储更复杂的切片.例如,多维的东西[:,:2,:, :540].
我目前的工作是将值存储为元组,然后将这些值解压缩到必要的切片中.
使用Python 2.x.
Python 将语法[:, :2, :, :540]转换为slice对象元组:
(slice(None, None, None),
slice(None, 2, None),
slice(None, None, None),
slice(None, 540, None))
Run Code Online (Sandbox Code Playgroud)
生成此元组的便捷方法是使用特殊函数*np.s_.你只需要传递[...]表达式.例如:
>>> np.s_[:540]
slice(None, 540, None)
>>> np.s_[:, :2, :, :540]
(slice(None, None, None),
slice(None, 2, None),
slice(None, None, None),
slice(None, 540, None))
Run Code Online (Sandbox Code Playgroud)
然后你的切片字典可以写成:
lookup = {0: np.s_[:540],
30: np.s_[540:1080],
60: np.s_[1080:]}
Run Code Online (Sandbox Code Playgroud)
*技术上s_是IndexExpression实现特殊__getitem__方法的类的别名.
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |