1.数组切片
slice是Python内置函数,无需进行包的调用,在使用slice构造数组索引的时候,一般使用如下方式进数组索引操作: slice(start, end) slice(start, end,j)
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(arr[slice(0, 5)])
[0, 1, 2, 3, 4]
此处arr[slice(0, 5)]就等价于arr[0:5]
print(arr[0:5])
[0, 1, 2, 3, 4]
但是slice可以间隔提取索引,比如arr[slice(0, 5, 2)],是提取数组arr中索引0到5中的元素,并且是间隔2个元素进行索引
print(arr[slice(0, 5, 2)])
[0, 2, 4]
这样我们可以实现间隔提取数组中元素的操作啦
2.案例2
实现时间序列数据的切片和提取操作 首先我们先导入股票时间序列数据市场股票的市值 然后将时间转换成datetime()格式
df_market_value["datetime"] = pd.to_datetime(df_market_value["datetime"])
然后将时间格式设置成索引
df_market_value = df_market_value.set_index("datetime")
然后提取2016年1月1日-2016年12月31日的切片数据
import pandas as pd
slc = slice(pd.Timestamp("2016-01-01"), pd.Timestamp("2016-12-31"))
df_market_value[slc]
这样就截取了2016年的全部数据 我们也可以间隔5天进行数据的选取 (1)数据导入 (2)转换成时间格式 (3)设置成索引才能进行slice操作
import pandas as pd
df_market_value["datetime"] = pd.to_datetime(df_market_value["datetime"])
df_market_value = df_market_value.set_index("datetime")
slc = slice(pd.Timestamp("2016-01-01"), pd.Timestamp("2016-12-31"), 5)
df_market_value[slc]
|