用到的函数
numpy.random.permutation
随机排列一个序列,返回一个排列的序列。
>>> np.random.permutation(10) array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6]) >>> np.random.permutation([1, 4, 9, 12, 15]) array([15, 1, 9, 4, 12]) >>> arr = np.arange(9).reshape((3, 3)) >>> np.random.permutation(arr) array([[6, 7, 8], [0, 1, 2], [3, 4, 5]])
iloc
Pandas中的 iloc 是用基于整数的下标来进行数据定位/选择
iloc 的语法是 data.iloc[<row selection>, <column selection>], iloc 在Pandas中是用来通过数字来选择数据中具体的某些行和列。你可以设想每一行都有一个对应的下标(0,1,2,...),通过 iloc 我们可以利用这些下标去选择相应的行数据。同理,对于行也一样,想象每一列也有对应的下标(0,1,2,...),通过这些下标也可以选择相应的列数据。
在iloc中一共有 2 个 “参数” -行选择器 和 -列选择器,例如:
# 使用DataFrame 和 iloc 进行单行/列的选择 # 行选择: data.iloc[0] # 数据中的第一行 data.iloc[1] # 数据中的第二行 data.iloc[-1] # 数据中的最后一行 # 列选择: data.iloc[:, 0] # 数据中的第一列 data.iloc[:, 1] # 数据中的第二列 data.iloc[:, -1] # 数据中的最后一列
行列混合选择
iloc 同样可以进行和列的混合选择,例如:
# 使用 iloc 进行行列混合选择 data.iloc[0:5] # 数据中的第 1-5 行 data.iloc[:, 0:2] # 选择数据中的前2列和所有行 data.iloc[[0, 3, 6, 24], [0, 5, 6]] # 选择第 1,4,7,25行 和 第 1,6,7 列 data.iloc[0:5, 5:8] # 选择第1-6行 和 6-9列
使用 iloc 注意以下两点:
如果使用iloc只选择了单独的一行会返回 Series 类型,而如果选择了多行数据则会返回 DataFrame 类型,如果你只选择了一行,但如果想要返回 DataFrame 类型可以传入一个单值list.
当你使用 [1:5] 这种语法对数据进行切片的时候,要注意只选择了 1,2,3,4 这 4 个下标,而 5 并没有被包括进去,即使用[x:y]选择了下标从 x 到 y-1 的数据
实际工作中,其实很少用到 iloc ,除非你想选择第一行( data.iloc[0] ) 或者 最后一行( data.iloc[-1] )
.