NumPy(索引和切片)

基本的索引和切片

 arr = np.arange(10)

 arr[5:8] = 12

 arr_slice = arr[5:8]

 arr_slice[1] = 12345
基本操作

切片[ : ]会给数组中的所有值赋值

[:]效果

ndarray切片的一份副本而非视图,就需要明确地进行复制操作,例如arr[5:8].copy()

二维数组选择元素

多维数组中,如果省略了后面的索引,则返回对象会是一个维度低一点的ndarray

省略索引导致降维

标量值和数组都可以被赋值给arr3[0]

多维数组的修改

切片索引

切片

一次传入多个切片

双切

选取第二行的前两列
选择第三列的前两行
“只有冒号”表示选取整个轴

将整数索引和切片混合

布尔型索引

假设我们有一个用于存储数据的数组以及一个存储姓名的数组(含有重复项)

布尔索引的简单应用

要选择除”Bob”以外的其他值,既可以使用不等于符号(!=),也可以通过~对条件进行否定。

布尔索引

花式索引

花式索引(Fancy indexing)是一个NumPy术语,它指的是利用整数数组进行索引。

生成索引

为了以特定顺序选取行子集,只需传入一个用于指定顺序的整数列表或ndarray即可

指定选取

使用负数索引将会从末尾开始选取行

负数表示倒序

一次传入多个索引数组会有一点特别。它返回的是一个一维数组,其中的元素对应各个索引元组。

arr = np.arange(32).reshape((8, 4))

# 里面的两个列表中前面的一个列表内的参数表示行数,后面的列表表示列数
arr[[1, 5, 7, 2], [0, 3, 1, 2]] 

# 前面的一个列表根据里面列表的数字取行数生成新的列表,后面的列表在前面新生成的列表中继续操作
arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]]
传入多个索引数组

你可能感兴趣的:(NumPy(索引和切片))