用于大切片的小包装。
slicer的Python项目详细描述
切片机
(等额贡献)塞缪尔·詹金斯和哈莎·诺里和斯科特·伦德伯格
slicer包装类似张量的对象,并通过__getitem__
提供统一的切片接口。在
它支持多种数据类型,包括:
在 numpy| pandas| scipy| pytorch| list| tuple| dict
并在其对象上启用升级的切片功能:
# Handles non-integer indexes for slicing.S(df)[:,["Age","Income"]]# Handles nested slicing in one call.S(nested_list)[...,:5]
它还可以同时切片多个对象:
^{pr2}$此包有0依赖项。一个也没有。在
安装
Python 3.6+| Linux、Mac、Windows
pip install slicer
入门
匿名基本切片:
fromslicerimportSlicerasSli=[[1,2,3],[4,5,6]]S(li)[:,0:2].o# [[1, 2], [4, 5]]di={'x':[1,2,3],'y':[4,5,6]}S(di)[:,0:2].o# {'x': [1, 2], 'y': [4, 5]}
基本命名切片:
importpandasaspdimportnumpyasnpdf=pd.DataFrame({'A':[1,3],'B':[2,4]})ar=np.array([[5,6],[7,8]])sliced=S(first=df,second=ar)[0,:]sliced.first# A 1# B 2# Name: 0, dtype: int64sliced.second# array([5, 6])
实例:
fromslicerimportSlicerasSfromslicerimportAliasasAdata=[[1,2],[3,4]]values=[[5,6],[7,8]]identifiers=["id1","id1"]instance_names=["r1","r2"]feature_names=["f1","f2"]full_name="A"slicer=S(data=data,values=values,# Aliases are objects that also function as slicing keys.# A(obj, dim) where dim informs what dimension it can be sliced on.identifiers=A(identifiers,0),instance_names=A(instance_names,0),feature_names=A(feature_names,1),full_name=full_name,)sliced=slicer[:,1]# Tensor-like parallel slicing on all objectsassertsliced.data==[2,4]assertsliced.instance_names==["r1","r2"]assertsliced.feature_names=="f2"assertsliced.values==[6,8]sliced=slicer["r1","f2"]# Example use of aliasingassertsliced.data==2assertsliced.feature_names=="f2"assertsliced.instance_names=="r1"assertsliced.values==6
联系我们
在GitHub上提出问题,或通过interpret@microsoft.com与我们联系
- 项目
标签: